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 DelegationsDeleg
+4.876SP
Detailed Balance
| STEEM | ||
| balance | 0.000STEEM | STEEM |
| market_balance | 0.000STEEM | STEEM |
| savings_balance | 0.000STEEM | STEEM |
| reward_steem_balance | 0.000STEEM | STEEM |
| STEEM POWER | ||
| Own SP | 0.125SP | SP |
| Delegated Out | 0.000SP | SP |
| Delegation In | 4.876SP | SP |
| Effective Power | 5.001SP | SP |
| Reward SP (pending) | 0.000SP | SP |
| SBD | ||
| sbd_balance | 0.000SBD | SBD |
| sbd_conversions | 0.000SBD | SBD |
| sbd_market_balance | 0.000SBD | SBD |
| savings_sbd_balance | 0.000SBD | SBD |
| reward_sbd_balance | 0.000SBD | SBD |
{
"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
| name | danjger |
| id | 1065920 |
| rank | 247,427 |
| reputation | 104687346 |
| created | 2018-07-05T14:24:54 |
| recovery_account | steem |
| proxy | None |
| post_count | 2 |
| comment_count | 0 |
| lifetime_vote_count | 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 |
| proxied_vsf_votes | 0, 0, 0, 0 |
| can_vote | 1 |
| voting_power | 0 |
| delayed_votes | 0 |
| balance | 0.000 STEEM |
| savings_balance | 0.000 STEEM |
| sbd_balance | 0.000 SBD |
| savings_sbd_balance | 0.000 SBD |
| vesting_shares | 202.957141 VESTS |
| delegated_vesting_shares | 0.000000 VESTS |
| received_vesting_shares | 7940.702665 VESTS |
| reward_vesting_balance | 0.000000 VESTS |
| vesting_balance | 0.000 STEEM |
| vesting_withdraw_rate | 0.000000 VESTS |
| next_vesting_withdrawal | 1969-12-31T23:59:59 |
| withdrawn | 0 |
| to_withdraw | 0 |
| withdraw_routes | 0 |
| savings_withdraw_requests | 0 |
| last_account_recovery | 1970-01-01T00:00:00 |
| reset_account | null |
| last_owner_update | 1970-01-01T00:00:00 |
| last_account_update | 2018-07-05T14:27:30 |
| mined | No |
| sbd_seconds | 0 |
| sbd_last_interest_payment | 1970-01-01T00:00:00 |
| savings_sbd_last_interest_payment | 1970-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
| Incoming | Outgoing |
|---|---|
Empty | Empty |
{
"incoming": [],
"outgoing": []
}From Date
To Date
2026/05/17 23:12:36
2026/05/17 23:12:36
| delegator | steem |
| delegatee | danjger |
| vesting shares | 7940.702665 VESTS |
| Transaction Info | Block #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"
}
]
}2026/05/11 23:38:45
2026/05/11 23:38:45
| delegator | steem |
| delegatee | danjger |
| vesting shares | 5228.492260 VESTS |
| Transaction Info | Block #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"
}
]
}2026/04/25 22:35:18
2026/04/25 22:35:18
| delegator | steem |
| delegatee | danjger |
| vesting shares | 7953.218421 VESTS |
| Transaction Info | Block #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"
}
]
}2026/01/23 05:00:39
2026/01/23 05:00:39
| delegator | steem |
| delegatee | danjger |
| vesting shares | 5270.039079 VESTS |
| Transaction Info | Block #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"
}
]
}2024/12/17 00:20:27
2024/12/17 00:20:27
| delegator | steem |
| delegatee | danjger |
| vesting shares | 5434.258276 VESTS |
| Transaction Info | Block #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"
}
]
}2023/11/13 16:04:15
2023/11/13 16:04:15
| delegator | steem |
| delegatee | danjger |
| vesting shares | 5603.391808 VESTS |
| Transaction Info | Block #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"
}
]
}2023/09/21 20:36:24
2023/09/21 20:36:24
| delegator | steem |
| delegatee | danjger |
| vesting shares | 8540.670594 VESTS |
| Transaction Info | Block #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"
}
]
}2022/11/03 10:33:24
2022/11/03 10:33:24
| delegator | steem |
| delegatee | danjger |
| vesting shares | 8762.352032 VESTS |
| Transaction Info | Block #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"
}
]
}2022/01/17 09:55:00
2022/01/17 09:55:00
| delegator | steem |
| delegatee | danjger |
| vesting shares | 8982.885263 VESTS |
| Transaction Info | Block #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"
}
]
}2021/06/13 23:52:36
2021/06/13 23:52:36
| delegator | steem |
| delegatee | danjger |
| vesting shares | 9166.653921 VESTS |
| Transaction Info | Block #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"
}
]
}2020/12/11 10:13:06
2020/12/11 10:13:06
| delegator | steem |
| delegatee | danjger |
| vesting shares | 9354.075895 VESTS |
| Transaction Info | Block #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"
}
]
}2020/12/06 03:50:15
2020/12/06 03:50:15
| delegator | steem |
| delegatee | danjger |
| vesting shares | 1912.543513 VESTS |
| Transaction Info | Block #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"
}
]
}2020/12/05 11:47:30
2020/12/05 11:47:30
| delegator | steem |
| delegatee | danjger |
| vesting shares | 9360.442534 VESTS |
| Transaction Info | Block #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"
}
]
}2020/11/02 13:42:39
2020/11/02 13:42:39
| delegator | steem |
| delegatee | danjger |
| vesting shares | 1920.017158 VESTS |
| Transaction Info | Block #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"
}
]
}2020/05/09 04:46:39
2020/05/09 04:46:39
| delegator | steem |
| delegatee | danjger |
| vesting shares | 9563.089108 VESTS |
| Transaction Info | Block #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"
}
]
}2020/05/08 08:14:15
2020/05/08 08:14:15
| delegator | steem |
| delegatee | danjger |
| vesting shares | 1953.311140 VESTS |
| Transaction Info | Block #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"
}
]
}2019/10/01 15:50:15
2019/10/01 15:50:15
| delegator | steem |
| delegatee | danjger |
| vesting shares | 9687.633599 VESTS |
| Transaction Info | Block #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
2019/07/05 16:44:00
| 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! <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 Info | Block #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\"]}"
}
]
}2018/10/23 20:27:03
2018/10/23 20:27:03
| delegator | steem |
| delegatee | danjger |
| vesting shares | 9885.456539 VESTS |
| Transaction Info | Block #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"
}
]
}danjgerpublished a new post: rest-interface-in-node-js-part-22018/07/24 18:44:57
danjgerpublished a new post: rest-interface-in-node-js-part-2
2018/07/24 18:44:57
| 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 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 Info | Block #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
2018/07/05 16:48:48
| 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 | |
| Transaction Info | Block #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": ""
}
]
}introduce.botupvoted (0.32%) @danjger / restful-sql-query-interface-part-12018/07/05 16:48:33
introduce.botupvoted (0.32%) @danjger / restful-sql-query-interface-part-1
2018/07/05 16:48:33
| voter | introduce.bot |
| author | danjger |
| permlink | restful-sql-query-interface-part-1 |
| weight | 32 (0.32%) |
| Transaction Info | Block #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
}
]
}2018/07/05 15:58:30
2018/07/05 15:58:30
| delegator | steem |
| delegatee | danjger |
| vesting shares | 30240.524774 VESTS |
| Transaction Info | Block #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"
}
]
}alphabotupvoted (1.00%) @danjger / restful-sql-query-interface-part-12018/07/05 15:30:12
alphabotupvoted (1.00%) @danjger / restful-sql-query-interface-part-1
2018/07/05 15:30:12
| voter | alphabot |
| author | danjger |
| permlink | restful-sql-query-interface-part-1 |
| weight | 100 (1.00%) |
| Transaction Info | Block #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
}
]
}danjgerpublished a new post: restful-sql-query-interface-part-12018/07/05 15:29:57
danjgerpublished a new post: restful-sql-query-interface-part-1
2018/07/05 15:29:57
| 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 @@ +!%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 Info | Block #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\"]}"
}
]
}ax3upvoted (1.00%) @danjger / restful-sql-query-interface-part-12018/07/05 15:26:39
ax3upvoted (1.00%) @danjger / restful-sql-query-interface-part-1
2018/07/05 15:26:39
| voter | ax3 |
| author | danjger |
| permlink | restful-sql-query-interface-part-1 |
| weight | 100 (1.00%) |
| Transaction Info | Block #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
}
]
}danjgerpublished a new post: restful-sql-query-interface-part-12018/07/05 15:26:27
danjgerpublished a new post: restful-sql-query-interface-part-1
2018/07/05 15:26:27
| 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 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 Info | Block #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 properties2018/07/05 14:27:30
danjgerupdated their account properties
2018/07/05 14:27:30
| account | danjger |
| memo key | STM8DomMwwTu5Vx9Le78NqaoTmMFSGcGS4hYaZLepPuXsGNvffbPF |
| json metadata | {"profile":{"name":"Dan G","location":"United States","website":"http://GetToKnowInfo.com"}} |
| Transaction Info | Block #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\"}}"
}
]
}2018/07/05 14:24:54
2018/07/05 14:24:54
| 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 | [] |
| Transaction Info | Block #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": []
}
]
}Manabar
Voting Power100.00%
Downvote Power100.00%
Resource Credits100.00%
Reputation Progress0.00%
{
"voting_manabar": {
"current_mana": "8143659806",
"last_update_time": 1779059556
},
"downvote_manabar": {
"current_mana": 2035914951,
"last_update_time": 1779059556
},
"rc_account": {
"account": "danjger",
"rc_manabar": {
"current_mana": "10164408779",
"last_update_time": 1779059556
},
"max_rc_creation_adjustment": {
"amount": "2020748973",
"precision": 6,
"nai": "@@000000037"
},
"max_rc": "10164408779"
}
}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.
[]