Ecoer Logo
VOTING POWER100.00%
DOWNVOTE POWER100.00%
RESOURCE CREDITS100.00%
REPUTATION PROGRESS0.00%
Net Worth
0.007USD
STEEM
0.000STEEM
SBD
0.000SBD
Effective Power
5.001SP
├── Own SP
0.125SP
└── Incoming Deleg
+4.876SP

Detailed Balance

STEEM
balance
0.000STEEM
market_balance
0.000STEEM
savings_balance
0.000STEEM
reward_steem_balance
0.000STEEM
STEEM POWER
Own SP
0.125SP
Delegated Out
0.000SP
Delegation In
4.876SP
Effective Power
5.001SP
Reward SP (pending)
0.000SP
SBD
sbd_balance
0.000SBD
sbd_conversions
0.000SBD
sbd_market_balance
0.000SBD
savings_sbd_balance
0.000SBD
reward_sbd_balance
0.000SBD
{
  "balance": "0.000 STEEM",
  "savings_balance": "0.000 STEEM",
  "reward_steem_balance": "0.000 STEEM",
  "vesting_shares": "202.957141 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "7940.702665 VESTS",
  "sbd_balance": "0.000 SBD",
  "savings_sbd_balance": "0.000 SBD",
  "reward_sbd_balance": "0.000 SBD",
  "conversions": []
}

Account Info

namedanjger
id1065920
rank247,427
reputation104687346
created2018-07-05T14:24:54
recovery_accountsteem
proxyNone
post_count2
comment_count0
lifetime_vote_count0
witnesses_voted_for0
last_post2018-07-24T18:44:57
last_root_post2018-07-24T18:44:57
last_vote_time1970-01-01T00:00:00
proxied_vsf_votes0, 0, 0, 0
can_vote1
voting_power0
delayed_votes0
balance0.000 STEEM
savings_balance0.000 STEEM
sbd_balance0.000 SBD
savings_sbd_balance0.000 SBD
vesting_shares202.957141 VESTS
delegated_vesting_shares0.000000 VESTS
received_vesting_shares7940.702665 VESTS
reward_vesting_balance0.000000 VESTS
vesting_balance0.000 STEEM
vesting_withdraw_rate0.000000 VESTS
next_vesting_withdrawal1969-12-31T23:59:59
withdrawn0
to_withdraw0
withdraw_routes0
savings_withdraw_requests0
last_account_recovery1970-01-01T00:00:00
reset_accountnull
last_owner_update1970-01-01T00:00:00
last_account_update2018-07-05T14:27:30
minedNo
sbd_seconds0
sbd_last_interest_payment1970-01-01T00:00:00
savings_sbd_last_interest_payment1970-01-01T00:00:00
{
  "id": 1065920,
  "name": "danjger",
  "owner": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM5CU9gypATFzE71dzaSYVMWJGBiDbiQCKPWEie7JJRSiUo47m1t",
        1
      ]
    ]
  },
  "active": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM6RirJpdxddbRiASzVv4HY9AXwphQFxBn5ogrdkz62JtFay5tF4",
        1
      ]
    ]
  },
  "posting": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM62WM35bPVmZvBy96Bn5KLXtRxFooKfUazY5hBHSmxhVCx4QVjT",
        1
      ]
    ]
  },
  "memo_key": "STM8DomMwwTu5Vx9Le78NqaoTmMFSGcGS4hYaZLepPuXsGNvffbPF",
  "json_metadata": "{\"profile\":{\"name\":\"Dan G\",\"location\":\"United States\",\"website\":\"http://GetToKnowInfo.com\"}}",
  "posting_json_metadata": "{\"profile\":{\"name\":\"Dan G\",\"location\":\"United States\",\"website\":\"http://GetToKnowInfo.com\"}}",
  "proxy": "",
  "last_owner_update": "1970-01-01T00:00:00",
  "last_account_update": "2018-07-05T14:27:30",
  "created": "2018-07-05T14:24:54",
  "mined": false,
  "recovery_account": "steem",
  "last_account_recovery": "1970-01-01T00:00:00",
  "reset_account": "null",
  "comment_count": 0,
  "lifetime_vote_count": 0,
  "post_count": 2,
  "can_vote": true,
  "voting_manabar": {
    "current_mana": "8143659806",
    "last_update_time": 1779059556
  },
  "downvote_manabar": {
    "current_mana": 2035914951,
    "last_update_time": 1779059556
  },
  "voting_power": 0,
  "balance": "0.000 STEEM",
  "savings_balance": "0.000 STEEM",
  "sbd_balance": "0.000 SBD",
  "sbd_seconds": "0",
  "sbd_seconds_last_update": "1970-01-01T00:00:00",
  "sbd_last_interest_payment": "1970-01-01T00:00:00",
  "savings_sbd_balance": "0.000 SBD",
  "savings_sbd_seconds": "0",
  "savings_sbd_seconds_last_update": "1970-01-01T00:00:00",
  "savings_sbd_last_interest_payment": "1970-01-01T00:00:00",
  "savings_withdraw_requests": 0,
  "reward_sbd_balance": "0.000 SBD",
  "reward_steem_balance": "0.000 STEEM",
  "reward_vesting_balance": "0.000000 VESTS",
  "reward_vesting_steem": "0.000 STEEM",
  "vesting_shares": "202.957141 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "7940.702665 VESTS",
  "vesting_withdraw_rate": "0.000000 VESTS",
  "next_vesting_withdrawal": "1969-12-31T23:59:59",
  "withdrawn": 0,
  "to_withdraw": 0,
  "withdraw_routes": 0,
  "curation_rewards": 0,
  "posting_rewards": 0,
  "proxied_vsf_votes": [
    0,
    0,
    0,
    0
  ],
  "witnesses_voted_for": 0,
  "last_post": "2018-07-24T18:44:57",
  "last_root_post": "2018-07-24T18:44:57",
  "last_vote_time": "1970-01-01T00:00:00",
  "post_bandwidth": 0,
  "pending_claimed_accounts": 0,
  "vesting_balance": "0.000 STEEM",
  "reputation": 104687346,
  "transfer_history": [],
  "market_history": [],
  "post_history": [],
  "vote_history": [],
  "other_history": [],
  "witness_votes": [],
  "tags_usage": [],
  "guest_bloggers": [],
  "rank": 247427
}

Withdraw Routes

IncomingOutgoing
Empty
Empty
{
  "incoming": [],
  "outgoing": []
}
From Date
To Date
steemdelegated 4.876 SP to @danjger
2026/05/17 23:12:36
delegatorsteem
delegateedanjger
vesting shares7940.702665 VESTS
Transaction InfoBlock #106142201/Trx 4222732e2f63a1b451f3ddede0e897b000b86269
View Raw JSON Data
{
  "trx_id": "4222732e2f63a1b451f3ddede0e897b000b86269",
  "block": 106142201,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2026-05-17T23:12:36",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "danjger",
      "vesting_shares": "7940.702665 VESTS"
    }
  ]
}
steemdelegated 3.211 SP to @danjger
2026/05/11 23:38:45
delegatorsteem
delegateedanjger
vesting shares5228.492260 VESTS
Transaction InfoBlock #105970690/Trx 562a59a52707e391aae6bfd416187fcd78d59192
View Raw JSON Data
{
  "trx_id": "562a59a52707e391aae6bfd416187fcd78d59192",
  "block": 105970690,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2026-05-11T23:38:45",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "danjger",
      "vesting_shares": "5228.492260 VESTS"
    }
  ]
}
steemdelegated 4.884 SP to @danjger
2026/04/25 22:35:18
delegatorsteem
delegateedanjger
vesting shares7953.218421 VESTS
Transaction InfoBlock #105509886/Trx 1b826e6ccd453854fbbfc9414cc4be704aa9b054
View Raw JSON Data
{
  "trx_id": "1b826e6ccd453854fbbfc9414cc4be704aa9b054",
  "block": 105509886,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2026-04-25T22:35:18",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "danjger",
      "vesting_shares": "7953.218421 VESTS"
    }
  ]
}
steemdelegated 3.236 SP to @danjger
2026/01/23 05:00:39
delegatorsteem
delegateedanjger
vesting shares5270.039079 VESTS
Transaction InfoBlock #102848467/Trx a1da5796a6e99d5fccb031eed5e5f2ce3d918c36
View Raw JSON Data
{
  "trx_id": "a1da5796a6e99d5fccb031eed5e5f2ce3d918c36",
  "block": 102848467,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2026-01-23T05:00:39",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "danjger",
      "vesting_shares": "5270.039079 VESTS"
    }
  ]
}
steemdelegated 3.337 SP to @danjger
2024/12/17 00:20:27
delegatorsteem
delegateedanjger
vesting shares5434.258276 VESTS
Transaction InfoBlock #91294889/Trx 3317302061354925999c37f66124ce7d54632595
View Raw JSON Data
{
  "trx_id": "3317302061354925999c37f66124ce7d54632595",
  "block": 91294889,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2024-12-17T00:20:27",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "danjger",
      "vesting_shares": "5434.258276 VESTS"
    }
  ]
}
steemdelegated 3.441 SP to @danjger
2023/11/13 16:04:15
delegatorsteem
delegateedanjger
vesting shares5603.391808 VESTS
Transaction InfoBlock #79849121/Trx 3fb8efa5d7d0533ba6e20896fb5d5af0ee804751
View Raw JSON Data
{
  "trx_id": "3fb8efa5d7d0533ba6e20896fb5d5af0ee804751",
  "block": 79849121,
  "trx_in_block": 7,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2023-11-13T16:04:15",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "danjger",
      "vesting_shares": "5603.391808 VESTS"
    }
  ]
}
steemdelegated 5.245 SP to @danjger
2023/09/21 20:36:24
delegatorsteem
delegateedanjger
vesting shares8540.670594 VESTS
Transaction InfoBlock #78346367/Trx f3ae7aa0e441c3c78c94e580ba76a62b844668fb
View Raw JSON Data
{
  "trx_id": "f3ae7aa0e441c3c78c94e580ba76a62b844668fb",
  "block": 78346367,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2023-09-21T20:36:24",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "danjger",
      "vesting_shares": "8540.670594 VESTS"
    }
  ]
}
steemdelegated 5.381 SP to @danjger
2022/11/03 10:33:24
delegatorsteem
delegateedanjger
vesting shares8762.352032 VESTS
Transaction InfoBlock #69111892/Trx 0b04a3ed0b0ebf5d20b41f9036dde18b51074e58
View Raw JSON Data
{
  "trx_id": "0b04a3ed0b0ebf5d20b41f9036dde18b51074e58",
  "block": 69111892,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-11-03T10:33:24",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "danjger",
      "vesting_shares": "8762.352032 VESTS"
    }
  ]
}
steemdelegated 5.516 SP to @danjger
2022/01/17 09:55:00
delegatorsteem
delegateedanjger
vesting shares8982.885263 VESTS
Transaction InfoBlock #60808172/Trx da0a789d2ec1e9f70c24228a737de7f97845db35
View Raw JSON Data
{
  "trx_id": "da0a789d2ec1e9f70c24228a737de7f97845db35",
  "block": 60808172,
  "trx_in_block": 13,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-01-17T09:55:00",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "danjger",
      "vesting_shares": "8982.885263 VESTS"
    }
  ]
}
steemdelegated 5.629 SP to @danjger
2021/06/13 23:52:36
delegatorsteem
delegateedanjger
vesting shares9166.653921 VESTS
Transaction InfoBlock #54606609/Trx de48f5d5e5447d4b7ad18acf7fccb05fe3c541a7
View Raw JSON Data
{
  "trx_id": "de48f5d5e5447d4b7ad18acf7fccb05fe3c541a7",
  "block": 54606609,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2021-06-13T23:52:36",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "danjger",
      "vesting_shares": "9166.653921 VESTS"
    }
  ]
}
steemdelegated 5.744 SP to @danjger
2020/12/11 10:13:06
delegatorsteem
delegateedanjger
vesting shares9354.075895 VESTS
Transaction InfoBlock #49354111/Trx 2a5d8c8023565a3330e1dd604509463d84745c33
View Raw JSON Data
{
  "trx_id": "2a5d8c8023565a3330e1dd604509463d84745c33",
  "block": 49354111,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-12-11T10:13:06",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "danjger",
      "vesting_shares": "9354.075895 VESTS"
    }
  ]
}
steemdelegated 1.174 SP to @danjger
2020/12/06 03:50:15
delegatorsteem
delegateedanjger
vesting shares1912.543513 VESTS
Transaction InfoBlock #49205673/Trx 596104d142a296c5454ec84da4ae093985d84e92
View Raw JSON Data
{
  "trx_id": "596104d142a296c5454ec84da4ae093985d84e92",
  "block": 49205673,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-12-06T03:50:15",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "danjger",
      "vesting_shares": "1912.543513 VESTS"
    }
  ]
}
steemdelegated 5.748 SP to @danjger
2020/12/05 11:47:30
delegatorsteem
delegateedanjger
vesting shares9360.442534 VESTS
Transaction InfoBlock #49186781/Trx 82df685f7696e9cce0dcf2935e00a4d88d6a4273
View Raw JSON Data
{
  "trx_id": "82df685f7696e9cce0dcf2935e00a4d88d6a4273",
  "block": 49186781,
  "trx_in_block": 4,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-12-05T11:47:30",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "danjger",
      "vesting_shares": "9360.442534 VESTS"
    }
  ]
}
steemdelegated 1.179 SP to @danjger
2020/11/02 13:42:39
delegatorsteem
delegateedanjger
vesting shares1920.017158 VESTS
Transaction InfoBlock #48255533/Trx 5ba19a3d5306bd6c0aad443a757e900b791c15a5
View Raw JSON Data
{
  "trx_id": "5ba19a3d5306bd6c0aad443a757e900b791c15a5",
  "block": 48255533,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-11-02T13:42:39",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "danjger",
      "vesting_shares": "1920.017158 VESTS"
    }
  ]
}
steemdelegated 5.873 SP to @danjger
2020/05/09 04:46:39
delegatorsteem
delegateedanjger
vesting shares9563.089108 VESTS
Transaction InfoBlock #43215911/Trx 68b475cdb0f66e6bbb17843a138e393aa9270d93
View Raw JSON Data
{
  "trx_id": "68b475cdb0f66e6bbb17843a138e393aa9270d93",
  "block": 43215911,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-05-09T04:46:39",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "danjger",
      "vesting_shares": "9563.089108 VESTS"
    }
  ]
}
steemdelegated 1.200 SP to @danjger
2020/05/08 08:14:15
delegatorsteem
delegateedanjger
vesting shares1953.311140 VESTS
Transaction InfoBlock #43191839/Trx 6ab4d0c91edc060f1322414836fa70b342ee6708
View Raw JSON Data
{
  "trx_id": "6ab4d0c91edc060f1322414836fa70b342ee6708",
  "block": 43191839,
  "trx_in_block": 9,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-05-08T08:14:15",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "danjger",
      "vesting_shares": "1953.311140 VESTS"
    }
  ]
}
steemdelegated 5.949 SP to @danjger
2019/10/01 15:50:15
delegatorsteem
delegateedanjger
vesting shares9687.633599 VESTS
Transaction InfoBlock #36906766/Trx 59390ff48650b072d28cb83a52b6f6e9fbb640b9
View Raw JSON Data
{
  "trx_id": "59390ff48650b072d28cb83a52b6f6e9fbb640b9",
  "block": 36906766,
  "trx_in_block": 5,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-10-01T15:50:15",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "danjger",
      "vesting_shares": "9687.633599 VESTS"
    }
  ]
}
2019/07/05 16:44:00
parent authordanjger
parent permlinkrest-interface-in-node-js-part-2
authorsteemitboard
permlinksteemitboard-notify-danjger-20190705t164359000z
title
bodyCongratulations @danjger! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@danjger/birthday1.png</td><td>Happy Birthday! - You are on the Steem blockchain for 1 year!</td></tr></table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@danjger) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=danjger)_</sub> ###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!
json metadata{"image":["https://steemitboard.com/img/notify.png"]}
Transaction InfoBlock #34400958/Trx 7a6dd26ab456555ebe9656d094c7c33683125883
View Raw JSON Data
{
  "trx_id": "7a6dd26ab456555ebe9656d094c7c33683125883",
  "block": 34400958,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-07-05T16:44:00",
  "op": [
    "comment",
    {
      "parent_author": "danjger",
      "parent_permlink": "rest-interface-in-node-js-part-2",
      "author": "steemitboard",
      "permlink": "steemitboard-notify-danjger-20190705t164359000z",
      "title": "",
      "body": "Congratulations @danjger! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@danjger/birthday1.png</td><td>Happy Birthday! - You are on the Steem blockchain for 1 year!</td></tr></table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@danjger) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=danjger)_</sub>\n\n\n###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes!",
      "json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}"
    }
  ]
}
steemdelegated 6.071 SP to @danjger
2018/10/23 20:27:03
delegatorsteem
delegateedanjger
vesting shares9885.456539 VESTS
Transaction InfoBlock #27068949/Trx 413a7e80735ce7042f9defde4b49d2b69a41927a
View Raw JSON Data
{
  "trx_id": "413a7e80735ce7042f9defde4b49d2b69a41927a",
  "block": 27068949,
  "trx_in_block": 11,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-10-23T20:27:03",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "danjger",
      "vesting_shares": "9885.456539 VESTS"
    }
  ]
}
2018/07/24 18:44:57
parent author
parent permlinkrest
authordanjger
permlinkrest-interface-in-node-js-part-2
titleREST Interface in Node.js (Part 2)
body# Working with Node.js and creating web services We need to use some npm modules to assist in the standing up of a web service. The most obvious choice right now is `express`. There are other choices but for this project we will use something tried and true. I am also using `compression`, `body-parser` and `express-validator` in my server.js ## Node.js endpoint considerations With the single threaded nature of the main event loop in Node and Javascript in general we have to be careful with what we attempt to do in the main thread. ### No blocking operations We cannot block for anything and we must always use async routines when possible. If we stick with a lean main event loop we can service a much larger number of requests per thread. This is the place to be the most careful. Even running mildly complex business logic in the main event loop will be an issue. ### Stick a Fork in it. When a piece of code is going to occupy the thread for more than a handful of lines of execution I suggest forking a child to handle that work and return with status via a pipe or reading stdout on completion. There are many ways of accomplishing this and I will cover that in a future article. Child processes are where you can get much better performance out of Javascript since that is the second best way to unlock multithreaded processing. The first is of course to use all the async I/O methods. The main goal here is to free up the event loop to go do other work for other requests.
json metadata{"tags":["rest","api","sql","business","computer"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #24463730/Trx fc6522032e79f1f30b74cd238cff230b0ae05342
View Raw JSON Data
{
  "trx_id": "fc6522032e79f1f30b74cd238cff230b0ae05342",
  "block": 24463730,
  "trx_in_block": 12,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-07-24T18:44:57",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "rest",
      "author": "danjger",
      "permlink": "rest-interface-in-node-js-part-2",
      "title": "REST Interface in Node.js (Part 2)",
      "body": "# Working with Node.js and creating web services\nWe need to use some npm modules to assist in the standing up of a web service. The most obvious choice right now is `express`. There are other choices but for this project we will use something tried and true. I am also using `compression`, `body-parser` and `express-validator` in my server.js\n## Node.js endpoint considerations\nWith the single threaded nature of the main event loop in Node and Javascript in general we have to be careful with what we attempt to do in the main thread. \n### No blocking operations\nWe cannot block for anything and we must always use async routines when possible. If we stick with a lean main event loop we can service a much larger number of  requests per thread. This is the place to be the most careful. Even running mildly complex business logic in the main event loop will be an issue.\n### Stick a Fork in it.\nWhen a piece of code is going to occupy the thread for more than a handful of lines of execution I suggest forking a child to handle that work and return with status via a pipe or reading stdout on completion. There are many ways of accomplishing this and I will cover that in a future article. Child processes are where you can get much better performance out of Javascript since that is the second best way to unlock multithreaded processing. The first is of course to use all the async I/O methods. The main goal here is to free up the event loop to go do other work for other requests.",
      "json_metadata": "{\"tags\":[\"rest\",\"api\",\"sql\",\"business\",\"computer\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
2018/07/05 16:48:48
parent authordanjger
parent permlinkrestful-sql-query-interface-part-1
authorintroduce.bot
permlinkintroduce-bot-re-danjgerrestful-sql-query-interface-part-1
title
body✅ @danjger, I gave you an upvote on your post! **Please give me a follow** and I will give you a follow in return and possible future votes!<br><br>Thank you in advance!
json metadata
Transaction InfoBlock #23914509/Trx 55c91ee6991ab4a671bdcb07fc1d73baf88afe02
View Raw JSON Data
{
  "trx_id": "55c91ee6991ab4a671bdcb07fc1d73baf88afe02",
  "block": 23914509,
  "trx_in_block": 46,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-07-05T16:48:48",
  "op": [
    "comment",
    {
      "parent_author": "danjger",
      "parent_permlink": "restful-sql-query-interface-part-1",
      "author": "introduce.bot",
      "permlink": "introduce-bot-re-danjgerrestful-sql-query-interface-part-1",
      "title": "",
      "body": "✅  @danjger, I gave you an upvote on your post! **Please give me a follow** and I will give you a follow in return and possible future votes!<br><br>Thank you in advance!",
      "json_metadata": ""
    }
  ]
}
2018/07/05 16:48:33
voterintroduce.bot
authordanjger
permlinkrestful-sql-query-interface-part-1
weight32 (0.32%)
Transaction InfoBlock #23914504/Trx 1df09da6d4090e0443c679b8ff31dbeea8be1582
View Raw JSON Data
{
  "trx_id": "1df09da6d4090e0443c679b8ff31dbeea8be1582",
  "block": 23914504,
  "trx_in_block": 15,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-07-05T16:48:33",
  "op": [
    "vote",
    {
      "voter": "introduce.bot",
      "author": "danjger",
      "permlink": "restful-sql-query-interface-part-1",
      "weight": 32
    }
  ]
}
steemdelegated 18.570 SP to @danjger
2018/07/05 15:58:30
delegatorsteem
delegateedanjger
vesting shares30240.524774 VESTS
Transaction InfoBlock #23913505/Trx c4997df00dd21bb0dc85e8b044f91766389c28a6
View Raw JSON Data
{
  "trx_id": "c4997df00dd21bb0dc85e8b044f91766389c28a6",
  "block": 23913505,
  "trx_in_block": 29,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-07-05T15:58:30",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "danjger",
      "vesting_shares": "30240.524774 VESTS"
    }
  ]
}
2018/07/05 15:30:12
voteralphabot
authordanjger
permlinkrestful-sql-query-interface-part-1
weight100 (1.00%)
Transaction InfoBlock #23912940/Trx 57669e322bc0ed7d63664860094aaef3ce292d05
View Raw JSON Data
{
  "trx_id": "57669e322bc0ed7d63664860094aaef3ce292d05",
  "block": 23912940,
  "trx_in_block": 36,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-07-05T15:30:12",
  "op": [
    "vote",
    {
      "voter": "alphabot",
      "author": "danjger",
      "permlink": "restful-sql-query-interface-part-1",
      "weight": 100
    }
  ]
}
2018/07/05 15:29:57
parent author
parent permlinkrest
authordanjger
permlinkrestful-sql-query-interface-part-1
titleRESTful SQL query interface (Part 1)
body@@ -1,8 +1,101 @@ +!%5B%5D(https://cdn.steemitimages.com/DQme1HPL8gG9C4AemvU3mXqWdhuoTSAUpf1UkHZtrM82i2Y/image.png)%0A # The RE
json metadata{"tags":["rest","api","sql","business","computer"],"app":"steemit/0.1","format":"markdown","image":["https://cdn.steemitimages.com/DQme1HPL8gG9C4AemvU3mXqWdhuoTSAUpf1UkHZtrM82i2Y/image.png"]}
Transaction InfoBlock #23912935/Trx 3dc621fadc9caa5fcdc48b60c99b8f4ce815f7cc
View Raw JSON Data
{
  "trx_id": "3dc621fadc9caa5fcdc48b60c99b8f4ce815f7cc",
  "block": 23912935,
  "trx_in_block": 59,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-07-05T15:29:57",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "rest",
      "author": "danjger",
      "permlink": "restful-sql-query-interface-part-1",
      "title": "RESTful SQL query interface (Part 1)",
      "body": "@@ -1,8 +1,101 @@\n+!%5B%5D(https://cdn.steemitimages.com/DQme1HPL8gG9C4AemvU3mXqWdhuoTSAUpf1UkHZtrM82i2Y/image.png)%0A\n # The RE\n",
      "json_metadata": "{\"tags\":[\"rest\",\"api\",\"sql\",\"business\",\"computer\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\",\"image\":[\"https://cdn.steemitimages.com/DQme1HPL8gG9C4AemvU3mXqWdhuoTSAUpf1UkHZtrM82i2Y/image.png\"]}"
    }
  ]
}
2018/07/05 15:26:39
voterax3
authordanjger
permlinkrestful-sql-query-interface-part-1
weight100 (1.00%)
Transaction InfoBlock #23912869/Trx bca549fbd1eb569436ac975a53cfdf76a78a6373
View Raw JSON Data
{
  "trx_id": "bca549fbd1eb569436ac975a53cfdf76a78a6373",
  "block": 23912869,
  "trx_in_block": 15,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-07-05T15:26:39",
  "op": [
    "vote",
    {
      "voter": "ax3",
      "author": "danjger",
      "permlink": "restful-sql-query-interface-part-1",
      "weight": 100
    }
  ]
}
2018/07/05 15:26:27
parent author
parent permlinkrest
authordanjger
permlinkrestful-sql-query-interface-part-1
titleRESTful SQL query interface (Part 1)
body# The REST SQL Quest Recently I've been searching for a generic REST API pattern (in server-side javascript) that maps to typical SQL queries and DML commands like Insert, Update, and Delete. Taking the CRUD to the to the specific SQL syntax and allowing for a more complex criteria and data selectivity. # WTF TLA? Loads of acronyms and initialisms in here so I'll apologize up-front but a simple web search will usually tame most of those beasts. I also suggest looking up the definition of _acronym_ and find out which of the above could truly be called one. # SQL and DML For clarification on SQL though, I am not trying to solve any specific SQL implementation but to have a framework to allows for internal adjustments to target one or another with minimal work. I'm not wanting to build something as complex as the PERL DBI:DBD system but something that, given an adept coder of javascript, could be adapted to most SQL implementations. # Coding Language and SQL syntax considerations I'll be developing this in Node.js 8.11.3 and initially targeting MySQL 5.7. The intent is to stick with Node.js and to allow for flexibility in the target SQL. I'd like to use as little extra code as possible but also use any logical modules out there that can make the project more reliable and robust. # Design Goals I am looking for a REST syntax that does more than simple key=value comparisons. The only explicitly defined REST syntax for GET is the use of the _noun/{id}_ document and the _noun/_ collection URL patterns. ## Extend the GET I need to define a robust method of extending the GET collection via the query parameters so that users of the API can narrow down on the data they want without violating the principles if a truly RESTful system. I need a way to include _OR_, grouping, aggregation, limits, and other SQL specific criteria. ## Extend PUT, PATCH,POST, and DELETE There are defined uses of each of these REST methods and I wish to keep in line with them but extend them somewhat to include the use of collection operations versus only document operations. Example: `Delete from table where attribute=value` ## Reduce Data Waste I am looking to reduce the amount of data coming back from the query in order to reduce the amount of data being transferred over the network. Being able to select only the columns desired as well as performing data transformations on the server side would eliminate a excess data and empower more SQL functionality. Lastly, I want to look at the structure of the data that is returned to determine if data size and parsing efficiencies can be gained through alternate formatting. # Next UP I'll be looking at the REST end of the Node.js code. Please feel free to comment and critique since this is a shard learning process. ### A small bit about me I'm a veteran computer programmer and lover of algorithms. I work in small companies and love solving business challenges with software and services.
json metadata{"tags":["rest","api","sql","business","computer"],"app":"steemit/0.1","format":"markdown"}
Transaction InfoBlock #23912865/Trx f06eb4689e5d1fcd2b2967b2633c349e0f0f662d
View Raw JSON Data
{
  "trx_id": "f06eb4689e5d1fcd2b2967b2633c349e0f0f662d",
  "block": 23912865,
  "trx_in_block": 23,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-07-05T15:26:27",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "rest",
      "author": "danjger",
      "permlink": "restful-sql-query-interface-part-1",
      "title": "RESTful SQL query interface (Part 1)",
      "body": "# The REST SQL Quest\nRecently I've been searching for a generic REST API pattern (in server-side javascript) that maps to typical SQL queries and DML commands like Insert, Update, and Delete. Taking the CRUD to the to the specific SQL syntax and allowing for a more complex criteria and data selectivity. \n# WTF TLA?\nLoads of acronyms and initialisms in here so I'll apologize up-front but a simple web search will usually tame most of those beasts. I also suggest looking up the definition of _acronym_ and find out which of the above could truly be called one.\n# SQL and DML\nFor clarification on SQL though, I am not trying to solve any specific SQL implementation but to have a framework to allows for internal adjustments to target one or another with minimal work. I'm not wanting to build something as complex as the PERL DBI:DBD system but something that, given an adept coder of javascript, could be adapted to most SQL implementations.\n# Coding Language and SQL syntax considerations\nI'll be developing this in Node.js 8.11.3 and initially targeting MySQL 5.7. The intent is to stick with Node.js and to allow for flexibility in the target SQL. I'd like to use as little extra code as possible but also use any logical modules out there that can make the project more reliable and robust.\n# Design Goals\nI am looking for a REST syntax that does more than simple key=value comparisons. The only explicitly defined REST syntax for GET is the use of the _noun/{id}_ document and the _noun/_ collection URL patterns. \n## Extend the GET\nI need to define a robust method of extending the GET collection via the query parameters so that users of the API can narrow down on the data they want without violating the principles if a truly RESTful system. I need a way to include _OR_, grouping, aggregation, limits, and other SQL specific criteria.\n## Extend PUT, PATCH,POST, and DELETE\nThere are defined uses of each of these REST methods and I wish to keep in line with them but extend them somewhat to include the use of collection operations versus only document operations. Example: `Delete from table where attribute=value`\n## Reduce Data Waste\nI am looking to reduce the amount of data coming back from the query in order to reduce the amount of data being transferred over the network. Being able to select only the columns desired as well as performing data transformations on the server side would eliminate a excess data and empower more SQL functionality. Lastly, I want to look at the structure of the data that is returned to determine if data size and parsing efficiencies can be gained through alternate formatting.\n# Next UP\nI'll be looking at the REST end of the Node.js code.\n\nPlease feel free to comment and critique since this is a shard learning process.\n\n### A small bit about me\nI'm a veteran computer programmer and lover of algorithms. I work in small companies and love solving business challenges with software and services.",
      "json_metadata": "{\"tags\":[\"rest\",\"api\",\"sql\",\"business\",\"computer\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
    }
  ]
}
danjgerupdated their account properties
2018/07/05 14:27:30
accountdanjger
memo keySTM8DomMwwTu5Vx9Le78NqaoTmMFSGcGS4hYaZLepPuXsGNvffbPF
json metadata{"profile":{"name":"Dan G","location":"United States","website":"http://GetToKnowInfo.com"}}
Transaction InfoBlock #23911686/Trx 0526dc48c6cd07f7b456dc0730ba5a034ab87499
View Raw JSON Data
{
  "trx_id": "0526dc48c6cd07f7b456dc0730ba5a034ab87499",
  "block": 23911686,
  "trx_in_block": 38,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-07-05T14:27:30",
  "op": [
    "account_update",
    {
      "account": "danjger",
      "memo_key": "STM8DomMwwTu5Vx9Le78NqaoTmMFSGcGS4hYaZLepPuXsGNvffbPF",
      "json_metadata": "{\"profile\":{\"name\":\"Dan G\",\"location\":\"United States\",\"website\":\"http://GetToKnowInfo.com\"}}"
    }
  ]
}
steemcreated a new account: @danjger
2018/07/05 14:24:54
fee0.100 STEEM
delegation30690.000000 VESTS
creatorsteem
new account namedanjger
owner{"weight_threshold":1,"account_auths":[],"key_auths":[["STM5CU9gypATFzE71dzaSYVMWJGBiDbiQCKPWEie7JJRSiUo47m1t",1]]}
active{"weight_threshold":1,"account_auths":[],"key_auths":[["STM6RirJpdxddbRiASzVv4HY9AXwphQFxBn5ogrdkz62JtFay5tF4",1]]}
posting{"weight_threshold":1,"account_auths":[],"key_auths":[["STM62WM35bPVmZvBy96Bn5KLXtRxFooKfUazY5hBHSmxhVCx4QVjT",1]]}
memo keySTM8DomMwwTu5Vx9Le78NqaoTmMFSGcGS4hYaZLepPuXsGNvffbPF
json metadata{}
extensions[]
Transaction InfoBlock #23911634/Trx e8c6b6da077b374968c6688afae51a9fb3b7bf70
View Raw JSON Data
{
  "trx_id": "e8c6b6da077b374968c6688afae51a9fb3b7bf70",
  "block": 23911634,
  "trx_in_block": 5,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-07-05T14:24:54",
  "op": [
    "account_create_with_delegation",
    {
      "fee": "0.100 STEEM",
      "delegation": "30690.000000 VESTS",
      "creator": "steem",
      "new_account_name": "danjger",
      "owner": {
        "weight_threshold": 1,
        "account_auths": [],
        "key_auths": [
          [
            "STM5CU9gypATFzE71dzaSYVMWJGBiDbiQCKPWEie7JJRSiUo47m1t",
            1
          ]
        ]
      },
      "active": {
        "weight_threshold": 1,
        "account_auths": [],
        "key_auths": [
          [
            "STM6RirJpdxddbRiASzVv4HY9AXwphQFxBn5ogrdkz62JtFay5tF4",
            1
          ]
        ]
      },
      "posting": {
        "weight_threshold": 1,
        "account_auths": [],
        "key_auths": [
          [
            "STM62WM35bPVmZvBy96Bn5KLXtRxFooKfUazY5hBHSmxhVCx4QVjT",
            1
          ]
        ]
      },
      "memo_key": "STM8DomMwwTu5Vx9Le78NqaoTmMFSGcGS4hYaZLepPuXsGNvffbPF",
      "json_metadata": "{}",
      "extensions": []
    }
  ]
}

Account Metadata

POSTING JSON METADATA
profile{"name":"Dan G","location":"United States","website":"http://GetToKnowInfo.com"}
JSON METADATA
profile{"name":"Dan G","location":"United States","website":"http://GetToKnowInfo.com"}
{
  "posting_json_metadata": {
    "profile": {
      "name": "Dan G",
      "location": "United States",
      "website": "http://GetToKnowInfo.com"
    }
  },
  "json_metadata": {
    "profile": {
      "name": "Dan G",
      "location": "United States",
      "website": "http://GetToKnowInfo.com"
    }
  }
}

Auth Keys

Owner
Single Signature
Public Keys
STM5CU9gypATFzE71dzaSYVMWJGBiDbiQCKPWEie7JJRSiUo47m1t1/1
Active
Single Signature
Public Keys
STM6RirJpdxddbRiASzVv4HY9AXwphQFxBn5ogrdkz62JtFay5tF41/1
Posting
Single Signature
Public Keys
STM62WM35bPVmZvBy96Bn5KLXtRxFooKfUazY5hBHSmxhVCx4QVjT1/1
Memo
STM8DomMwwTu5Vx9Le78NqaoTmMFSGcGS4hYaZLepPuXsGNvffbPF
{
  "owner": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM5CU9gypATFzE71dzaSYVMWJGBiDbiQCKPWEie7JJRSiUo47m1t",
        1
      ]
    ]
  },
  "active": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM6RirJpdxddbRiASzVv4HY9AXwphQFxBn5ogrdkz62JtFay5tF4",
        1
      ]
    ]
  },
  "posting": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM62WM35bPVmZvBy96Bn5KLXtRxFooKfUazY5hBHSmxhVCx4QVjT",
        1
      ]
    ]
  },
  "memo": "STM8DomMwwTu5Vx9Le78NqaoTmMFSGcGS4hYaZLepPuXsGNvffbPF"
}

Witness Votes

0 / 30
No active witness votes.
[]