| id |
|---|
| 0 |
| name |
| post |
| reward_balance |
| 1,462,732.337 STEEM |
| recent_claims |
| 145,420,961,079,419,163 |
| last_update |
| 2017-06-23 17:05:51 |
| content_constant |
| 2,000,000,000,000 |
| percent_curation_rewards |
| 2,500 |
| percent_content_rewards |
| 10,000 |
| author_reward_curve |
| linear |
| curation_reward_curve |
| square_root |

| created | 1970-01-01 00:00:00 |
|---|---|
| active | 1970-01-01 00:00:00 |
| last_payout | 1970-01-01 00:00:00 |
| depth | 0 |
| children | 0 |
| net_rshares | 0 |
| vote_rshares | 0 |
| children_abs_rshares | 0 |
| max_cashout_time | 1970-01-01 00:00:00 |
| total_vote_weight | 0 |
| reward_weight | 0 |
| total_payout_value | 0.000 STEEM |
| curator_payout_value | 0.000 STEEM |
| author_rewards | 0 |
| net_votes | 0 |
| root_comment | 0 |
| max_accepted_payout | 0.000 STEEM |
| percent_steem_dollars | 0 |
| allow_replies | false |
| allow_votes | false |
| allow_curation_rewards | false |
| beneficiaries | [] |
| root_title | "" |
| total_pending_payout_value | 0.000 STEEM |
| author_reputation | 0 |
| promoted | 0.000 SBD |
| body_length | 0 |
| reblogged_by | [] |
vote your-acct "xxx" "xxx" 100 true
post_comment your-acct "re-xxx-xxx-20170623t120704408z" "xxx" "xxx" "" "your reply.." "{}" true
This is the witnesses category
| created | 2016-04-08 07:36:18 |
|---|---|
| active | 2016-04-08 08:58:24 |
| last_payout | 2016-08-12 10:16:39 |
| depth | 0 |
| children | 2 |
| net_rshares | -491,818,553 |
| vote_rshares | 0 |
| children_abs_rshares | 0 |
| cashout_time | 1969-12-31 23:59:59 |
| max_cashout_time | 1969-12-31 23:59:59 |
| total_vote_weight | 0 |
| reward_weight | 10,000 |
| total_payout_value | 0.160 SBD |
| curator_payout_value | 0.160 SBD |
| author_rewards | 729 |
| net_votes | -2 |
| root_comment | 6 |
| max_accepted_payout | 1,000,000.000 SBD |
| percent_steem_dollars | 10,000 |
| allow_replies | true |
| allow_votes | true |
| allow_curation_rewards | true |
| beneficiaries | [] |
| root_title | Witnesses |
| pending_payout_value | 0.000 SBD |
| total_pending_payout_value | 0.000 STEEM |
| author_reputation | 84,646,244,438,099 |
| promoted | 0.000 SBD |
| body_length | 0 |
| reblogged_by | [] |
| author_curate_reward | "" |
| voter | weight | wgt% | rshares | pct | time |
|---|---|---|---|---|---|
| anonymous | 1,208 | 1,207,773 | 100% | 2016-04-09T17:35:15 | |
| dantheman | 0 | -376,603 | -1% | 2016-04-15T18:25:33 | |
| idradiation | 0 | -247,921,333 | -100% | 2016-07-10T15:28:54 | |
| jalantikus | 0 | -243,897,220 | -100% | 2016-07-12T10:16:39 |
vote your-acct "abit" "witness-category" 100 true
post_comment your-acct "re-abit-witness-category-20170623t120704412z" "abit" "witness-category" "" "your reply.." "{}" true

| created | 2016-04-08 08:56:21 |
|---|---|
| active | 2016-04-08 08:56:21 |
| last_payout | 2016-08-12 10:16:39 |
| depth | 1 |
| children | 0 |
| net_rshares | -361,010,000,000 |
| vote_rshares | 0 |
| children_abs_rshares | 0 |
| cashout_time | 1969-12-31 23:59:59 |
| max_cashout_time | 1969-12-31 23:59:59 |
| total_vote_weight | 0 |
| reward_weight | 10,000 |
| total_payout_value | 0.000 SBD |
| curator_payout_value | 0.000 SBD |
| author_rewards | 0 |
| net_votes | 0 |
| root_comment | 6 |
| max_accepted_payout | 1,000,000.000 SBD |
| percent_steem_dollars | 10,000 |
| allow_replies | true |
| allow_votes | true |
| allow_curation_rewards | true |
| beneficiaries | [] |
| root_title | Witnesses |
| pending_payout_value | 0.000 SBD |
| total_pending_payout_value | 0.000 STEEM |
| author_reputation | 84,646,244,438,099 |
| promoted | 0.000 SBD |
| body_length | 0 |
| reblogged_by | [] |
| author_curate_reward | "" |
| voter | weight | wgt% | rshares | pct | time |
|---|---|---|---|---|---|
| abit | 15.6 | 15,593 | 100% | 2016-04-08T09:03:30 | |
| dantheman | 0 | -376,603 | -1% | 2016-04-13T16:34:06 |
vote your-acct "abit" "abit-witness-post-re1" 100 true
post_comment your-acct "re-abit-abit-witness-post-re1-20170623t120704416z" "abit" "abit-witness-post-re1" "" "your reply.." "{}" true

| created | 2016-04-08 08:58:24 |
|---|---|
| active | 2016-04-08 08:58:24 |
| last_payout | 2016-08-12 10:16:39 |
| depth | 1 |
| children | 0 |
| net_rshares | -360,699,000,000 |
| vote_rshares | 0 |
| children_abs_rshares | 0 |
| cashout_time | 1969-12-31 23:59:59 |
| max_cashout_time | 1969-12-31 23:59:59 |
| total_vote_weight | 0 |
| reward_weight | 10,000 |
| total_payout_value | 0.000 SBD |
| curator_payout_value | 0.000 SBD |
| author_rewards | 0 |
| net_votes | 0 |
| root_comment | 6 |
| max_accepted_payout | 1,000,000.000 SBD |
| percent_steem_dollars | 10,000 |
| allow_replies | true |
| allow_votes | true |
| allow_curation_rewards | true |
| beneficiaries | [] |
| root_title | Witnesses |
| pending_payout_value | 0.000 SBD |
| total_pending_payout_value | 0.000 STEEM |
| author_reputation | 84,646,244,438,099 |
| promoted | 0.000 SBD |
| body_length | 0 |
| reblogged_by | [] |
| author_curate_reward | "" |
| voter | weight | wgt% | rshares | pct | time |
|---|---|---|---|---|---|
| abit | 16 | 15,904 | 100% | 2016-04-08T09:03:18 | |
| dantheman | 0 | -376,603 | -1% | 2016-04-13T17:01:45 |
vote your-acct "abit" "abit-witness-post-re2" 100 true
post_comment your-acct "re-abit-abit-witness-post-re2-20170623t120704419z" "abit" "abit-witness-post-re2" "" "your reply.." "{}" true
This is the miners category
| created | 2016-04-08 07:55:15 |
|---|---|
| active | 2016-04-08 07:55:15 |
| last_payout | 2016-08-12 10:16:42 |
| depth | 0 |
| children | 0 |
| net_rshares | -481,781,440 |
| vote_rshares | 0 |
| children_abs_rshares | 0 |
| cashout_time | 1969-12-31 23:59:59 |
| max_cashout_time | 1969-12-31 23:59:59 |
| total_vote_weight | 0 |
| reward_weight | 10,000 |
| total_payout_value | 0.138 SBD |
| curator_payout_value | 0.139 SBD |
| author_rewards | 632 |
| net_votes | -3 |
| root_comment | 7 |
| max_accepted_payout | 1,000,000.000 SBD |
| percent_steem_dollars | 10,000 |
| allow_replies | true |
| allow_votes | true |
| allow_curation_rewards | true |
| beneficiaries | [] |
| root_title | Miners |
| pending_payout_value | 0.000 SBD |
| total_pending_payout_value | 0.000 STEEM |
| author_reputation | 84,646,244,438,099 |
| promoted | 0.000 SBD |
| body_length | 0 |
| reblogged_by | [] |
| author_curate_reward | "" |
| voter | weight | wgt% | rshares | pct | time |
|---|---|---|---|---|---|
| dantheman | 0 | -375,241 | -1% | 2016-04-08T19:14:27 | |
| anonymous | 725 | 1,233,470 | 100% | 2016-04-09T17:34:42 | |
| donkeypong | 0 | -122,575,903,855 | -100% | 2016-05-19T02:44:09 | |
| idradiation | 0 | -242,861,714 | -100% | 2016-07-10T15:28:57 | |
| jalantikus | 0 | -238,919,726 | -100% | 2016-07-12T10:16:42 |
vote your-acct "abit" "miner-category" 100 true
post_comment your-acct "re-abit-miner-category-20170623t120704423z" "abit" "miner-category" "" "your reply.." "{}" true
Spams come here
| created | 2016-04-08 08:49:15 |
|---|---|
| active | 2016-04-08 08:49:15 |
| last_payout | 2016-08-13 18:32:54 |
| depth | 0 |
| children | 0 |
| net_rshares | -477,016,308 |
| vote_rshares | 0 |
| children_abs_rshares | 0 |
| cashout_time | 1969-12-31 23:59:59 |
| max_cashout_time | 1969-12-31 23:59:59 |
| total_vote_weight | 0 |
| reward_weight | 10,000 |
| total_payout_value | 0.165 SBD |
| curator_payout_value | 0.166 SBD |
| author_rewards | 755 |
| net_votes | -2 |
| root_comment | 9 |
| max_accepted_payout | 1,000,000.000 SBD |
| percent_steem_dollars | 10,000 |
| allow_replies | true |
| allow_votes | true |
| allow_curation_rewards | true |
| beneficiaries | [] |
| root_title | Spams |
| pending_payout_value | 0.000 SBD |
| total_pending_payout_value | 0.000 STEEM |
| author_reputation | 84,646,244,438,099 |
| promoted | 0.000 SBD |
| body_length | 0 |
| reblogged_by | [] |
| author_curate_reward | "" |
| voter | weight | wgt% | rshares | pct | time |
|---|---|---|---|---|---|
| red | 0 | -1,441 | -1% | 2016-04-08T14:50:48 | |
| dantheman | 0 | -375,241 | -1% | 2016-04-08T19:14:00 | |
| anonymous | 724 | 1,233,470 | 100% | 2016-04-09T17:34:45 | |
| idradiation | 0 | -242,861,714 | -100% | 2016-07-10T15:29:06 | |
| jalantikus | 0 | -238,919,726 | -100% | 2016-07-12T10:16:45 | |
| vkoreshkoff | 0 | 4,765,132 | 100% | 2016-07-13T18:32:54 |
vote your-acct "abit" "spam" 100 true
post_comment your-acct "re-abit-spam-20170623t120704427z" "abit" "spam" "" "your reply.." "{}" true

As of 2016, you have to learn 7097 languages to say hello to 6,506,259,160 people.
| created | 2016-04-08 15:39:00 |
|---|---|
| active | 2016-04-08 15:39:00 |
| last_payout | 2016-08-03 00:00:06 |
| depth | 0 |
| children | 0 |
| net_rshares | -37,896,234,000,000 |
| vote_rshares | 0 |
| children_abs_rshares | 0 |
| cashout_time | 1969-12-31 23:59:59 |
| max_cashout_time | 1969-12-31 23:59:59 |
| total_vote_weight | 0 |
| reward_weight | 10,000 |
| total_payout_value | 0.000 SBD |
| curator_payout_value | 0.000 SBD |
| author_rewards | 0 |
| net_votes | 11 |
| root_comment | 20 |
| max_accepted_payout | 1,000,000.000 SBD |
| percent_steem_dollars | 10,000 |
| allow_replies | true |
| allow_votes | true |
| allow_curation_rewards | true |
| beneficiaries | [] |
| root_title | "Hello World!" |
| pending_payout_value | 0.000 SBD |
| total_pending_payout_value | 0.000 STEEM |
| author_reputation | 159,370 |
| promoted | 0.000 SBD |
| body_length | 0 |
| reblogged_by | [] |
| author_curate_reward | "" |
| voter | weight | wgt% | rshares | pct | time |
|---|---|---|---|---|---|
| world | 156 | 156,452 | 100% | 2016-04-08T15:48:00 | |
| dantheman | 0 | -375,241 | -1% | 2016-04-08T19:13:30 | |
| anonymous | 663 | 1,310,562 | 100% | 2016-04-09T17:31:15 | |
| anonymous1 | 0.00104 | 15,297 | 100% | 2016-04-09T17:31:27 | |
| fufubar1 | 0.06 | 60,600 | 100% | 2016-04-09T17:31:42 | |
| xeroc | 0.0034 | 23,446 | 100% | 2016-04-09T17:31:57 | |
| cyrano | 5.8 | 308,734 | 100% | 2016-04-09T17:58:15 | |
| xeldal | 0.000000067 | 701 | 100% | 2016-04-09T18:50:45 | |
| ihashfury | 11.3 | 433,857 | 100% | 2016-04-09T19:53:45 | |
| datasecuritynode | 94 | 1,107,256 | 100% | 2016-04-09T21:20:21 | |
| wackou | 209 | 1,890,683 | 100% | 2016-04-09T21:55:03 | |
| bue-witness | 0.00156 | 37,087 | 100% | 2016-04-10T17:42:42 | |
| lafona-miner | 264 | 2,644,587 | 100% | 2016-04-10T18:44:12 | |
| roadscape | 0.0016 | 48,325 | 100% | 2016-04-11T04:24:06 | |
| hello | 0.45 | 325,020 | 100% | 2016-04-15T10:12:27 | |
| ned | 0 | -936,400 | -1% | 2016-04-16T17:13:33 | |
| dan | 0 | -44,947,200 | -100% | 2016-04-20T22:44:42 | |
| michaelstobiersk | 0 | 0 | 100% | 2016-11-07T04:39:54 | |
| erioni | 0 | 0 | -100% | 2016-11-16T13:19:51 | |
| indram24 | 0 | 0 | 100% | 2017-02-12T12:58:36 | |
| djsonic | 0 | 0 | 100% | 2017-02-23T13:14:15 | |
| coininstant | 0 | 0 | 100% | 2017-03-04T08:01:24 | |
| officialfuzzy | 0 | 0 | 20% | 2017-06-21T15:04:00 |
vote your-acct "hello" "hello" 100 true
post_comment your-acct "re-hello-hello-20170623t120704432z" "hello" "hello" "" "your reply.." "{}" true
Greetings to all human beings!
-- The Internet
| created | 2016-04-10 18:05:15 |
|---|---|
| active | 2016-04-10 18:05:15 |
| last_payout | 2016-08-03 00:00:06 |
| depth | 0 |
| children | 0 |
| net_rshares | 0 |
| vote_rshares | 0 |
| children_abs_rshares | 0 |
| cashout_time | 1969-12-31 23:59:59 |
| max_cashout_time | 1969-12-31 23:59:59 |
| total_vote_weight | 0 |
| reward_weight | 10,000 |
| total_payout_value | 0.428 SBD |
| curator_payout_value | 0.427 SBD |
| author_rewards | 1,950 |
| net_votes | 5 |
| root_comment | 30 |
| max_accepted_payout | 1,000,000.000 SBD |
| percent_steem_dollars | 10,000 |
| allow_replies | true |
| allow_votes | true |
| allow_curation_rewards | true |
| beneficiaries | [] |
| root_title | "Hello World!" |
| pending_payout_value | 0.000 SBD |
| total_pending_payout_value | 0.000 STEEM |
| author_reputation | 159,370 |
| promoted | 0.000 SBD |
| body_length | 0 |
| reblogged_by | [] |
| author_curate_reward | "" |
| voter | weight | wgt% | rshares | pct | time |
|---|---|---|---|---|---|
| anonymous | 1,285 | 1,284,865 | 100% | 2016-04-15T10:12:09 | |
| world | 1.74 | 153,384 | 100% | 2016-04-15T10:12:12 | |
| anonymous1 | 0.0016 | 14,997 | 100% | 2016-04-15T10:12:18 | |
| hello | 10.9 | 325,020 | 100% | 2016-04-15T10:12:21 | |
| fufubar1 | 0.062 | 59,412 | 100% | 2016-04-15T10:12:24 | |
| reddust | 0 | 0 | 100% | 2016-11-04T16:11:33 | |
| shla-rafia | 0 | 0 | 100% | 2016-11-06T15:18:51 | |
| sarita | 0 | 0 | 100% | 2016-11-12T15:12:03 | |
| michaelstobiersk | 0 | 0 | 100% | 2016-11-14T07:02:09 | |
| erioni | 0 | 0 | -100% | 2016-11-16T13:19:27 | |
| simonjay | 0 | 0 | 100% | 2016-12-20T12:14:09 | |
| mithrilweed | 0 | 0 | 100% | 2016-12-21T04:56:33 | |
| barvon | 0 | 0 | 100% | 2017-01-19T11:42:30 | |
| indram24 | 0 | 0 | 100% | 2017-02-12T12:58:33 | |
| djsonic | 0 | 0 | 100% | 2017-02-23T13:14:06 | |
| coininstant | 0 | 0 | 100% | 2017-03-04T08:01:18 |
vote your-acct "hello" "world" 100 true
post_comment your-acct "re-hello-world-20170623t120704436z" "hello" "world" "" "your reply.." "{}" true
Python Steem Libraries Version 1.0 released!
This library allows you to interface with the wallet and/or a steem node
for polling data via RPC calls.
You can download directly from github:
git clone https://github.com/xeroc/python-steem/
cd python-steem
python3 setup.py install --user
Or use pip
pip3 install steem --user
Even though you can connect to a remote full node, you can start a local
node via:
cd <path-to-steem>
./programs/steemd/steemd --rpc-endpoint="127.0.0.1:8090"
Then you can connect a cli_wallet to your full node and open a new
port at 8092:
./programs/cli_wallet/cli_wallet --server-rpc-endpoint=ws://localhost:8090 \
--rpc-http-endpoint=127.0.0.1:8092 \
--rpc-http-allowip=127.0.0.1
We will use both open ports in the example.
from steemapi.steemclient import SteemClient
from pprint import pprint
class Config():
# Port and host of the RPC-HTTP-Endpoint of the wallet
wallet_host = "localhost"
wallet_port = 8092
# Websocket URL to the full node
witness_url = "ws://localhost:8090"
client = SteemClient(Config)
# Calls to the Wallet
pprint(client.wallet.vote("<your-account>", "hello", "world", 100, True))
# Calls to the Node
pprint(client.node.get_trending_categories("", 20))
pprint(client.node.get_content("hello", "world"))
More examples can be found in the examples/ directory.
| last_update | 2016-04-12 07:40:06 |
|---|---|
| created | 2016-04-10 18:24:51 |
| active | 2016-04-27 08:00:21 |
| last_payout | 2016-08-21 21:26:42 |
| depth | 0 |
| children | 3 |
| net_rshares | 0 |
| vote_rshares | 0 |
| children_abs_rshares | 0 |
| cashout_time | 1969-12-31 23:59:59 |
| max_cashout_time | 1969-12-31 23:59:59 |
| total_vote_weight | 0 |
| reward_weight | 10,000 |
| total_payout_value | 63.510 SBD |
| curator_payout_value | 63.453 SBD |
| author_rewards | 288,455 |
| net_votes | 30 |
| root_comment | 31 |
| max_accepted_payout | 1,000,000.000 SBD |
| percent_steem_dollars | 10,000 |
| allow_replies | true |
| allow_votes | true |
| allow_curation_rewards | true |
| beneficiaries | [] |
| root_title | "Python Steem Libraries 0.1" |
| pending_payout_value | 0.000 SBD |
| total_pending_payout_value | 0.000 STEEM |
| author_reputation | 109,708,107,896,351 |
| promoted | 0.000 SBD |
| body_length | 0 |
| reblogged_by | [] |
vote your-acct "xeroc" "python-steem-0-1" 100 true
post_comment your-acct "re-xeroc-python-steem-0-1-20170623t120704442z" "xeroc" "python-steem-0-1" "" "your reply.." "{}" true

Great work Xeroc. Your libraries make working with graphene chains truly a joy.
| created | 2016-04-11 15:33:51 |
|---|---|
| active | 2016-04-27 08:00:21 |
| last_payout | 2016-08-21 21:26:42 |
| depth | 1 |
| children | 1 |
| net_rshares | 0 |
| vote_rshares | 0 |
| children_abs_rshares | 0 |
| cashout_time | 1969-12-31 23:59:59 |
| max_cashout_time | 1969-12-31 23:59:59 |
| total_vote_weight | 0 |
| reward_weight | 10,000 |
| total_payout_value | 0.000 SBD |
| curator_payout_value | 0.000 SBD |
| author_rewards | 0 |
| net_votes | 3 |
| root_comment | 31 |
| max_accepted_payout | 1,000,000.000 SBD |
| percent_steem_dollars | 10,000 |
| allow_replies | true |
| allow_votes | true |
| allow_curation_rewards | true |
| beneficiaries | [] |
| root_title | "Python Steem Libraries 0.1" |
| pending_payout_value | 0.000 SBD |
| total_pending_payout_value | 0.000 STEEM |
| author_reputation | 997,596,889,281 |
| promoted | 0.000 SBD |
| body_length | 0 |
| reblogged_by | [] |
| author_curate_reward | "" |
| voter | weight | wgt% | rshares | pct | time |
|---|---|---|---|---|---|
| officialinfotech | 0.079 | 79,089,600 | 100% | 2016-05-19T16:28:21 | |
| johnerminer | 0 | 876,229,403 | 100% | 2016-07-30T10:41:57 | |
| johnerfx | 0 | 9,501,039,388 | 100% | 2016-07-30T11:46:21 |
vote your-acct "puppies" "re-python-steem-0-1" 100 true
post_comment your-acct "re-puppies-re-python-steem-0-1-20170623t120704446z" "puppies" "re-python-steem-0-1" "" "your reply.." "{}" true

Thank you, I enjoy writing python a lot myself!
| created | 2016-04-27 08:00:21 |
|---|---|
| active | 2016-04-27 08:00:21 |
| last_payout | 2016-08-21 21:26:42 |
| depth | 2 |
| children | 0 |
| net_rshares | 0 |
| vote_rshares | 0 |
| children_abs_rshares | 0 |
| cashout_time | 1969-12-31 23:59:59 |
| max_cashout_time | 1969-12-31 23:59:59 |
| total_vote_weight | 0 |
| reward_weight | 10,000 |
| total_payout_value | 0.000 SBD |
| curator_payout_value | 0.000 SBD |
| author_rewards | 0 |
| net_votes | 2 |
| root_comment | 31 |
| max_accepted_payout | 1,000,000.000 SBD |
| percent_steem_dollars | 10,000 |
| allow_replies | true |
| allow_votes | true |
| allow_curation_rewards | true |
| beneficiaries | [] |
| root_title | "Python Steem Libraries 0.1" |
| pending_payout_value | 0.000 SBD |
| total_pending_payout_value | 0.000 STEEM |
| author_reputation | 109,708,107,896,351 |
| promoted | 0.000 SBD |
| body_length | 0 |
| reblogged_by | [] |
vote your-acct "xeroc" "re-puppies-re-python-stem-0-1" 100 true
post_comment your-acct "re-xeroc-re-puppies-re-python-stem-0-1-20170623t120704449z" "xeroc" "re-puppies-re-python-stem-0-1" "" "your reply.." "{}" true
This is great work xeroc! Thanks for supporting steem!
| created | 2016-04-14 14:55:24 |
|---|---|
| active | 2016-04-14 14:55:24 |
| last_payout | 2016-08-21 21:26:42 |
| depth | 1 |
| children | 0 |
| net_rshares | 0 |
| vote_rshares | 0 |
| children_abs_rshares | 0 |
| cashout_time | 1969-12-31 23:59:59 |
| max_cashout_time | 1969-12-31 23:59:59 |
| total_vote_weight | 0 |
| reward_weight | 10,000 |
| total_payout_value | 0.000 SBD |
| curator_payout_value | 0.000 SBD |
| author_rewards | 0 |
| net_votes | 1 |
| root_comment | 31 |
| max_accepted_payout | 1,000,000.000 SBD |
| percent_steem_dollars | 10,000 |
| allow_replies | true |
| allow_votes | true |
| allow_curation_rewards | true |
| beneficiaries | [] |
| root_title | "Python Steem Libraries 0.1" |
| pending_payout_value | 0.000 SBD |
| total_pending_payout_value | 0.000 STEEM |
| author_reputation | 243,694,000,653,309 |
| promoted | 0.000 SBD |
| body_length | 0 |
| reblogged_by | [] |
| author_curate_reward | "" |
| voter | weight | wgt% | rshares | pct | time |
|---|---|---|---|---|---|
| officialinfotech | 0.077 | 77,441,900 | 100% | 2016-05-19T16:28:33 |
vote your-acct "dantheman" "re-xeroc-python-steem-0-1-20160414t145522693z" 100 true
post_comment your-acct "re-dantheman-re-xeroc-python-steem-0-1-20170623t120704452z" "dantheman" "re-xeroc-python-steem-0-1-20160414t145522693z" "" "your reply.." "{}" true
removed
| last_update | 2016-04-13 00:06:57 |
|---|---|
| created | 2016-04-12 18:42:54 |
| active | 2016-04-13 08:12:39 |
| last_payout | 2016-08-26 03:00:03 |
| depth | 0 |
| children | 2 |
| net_rshares | 0 |
| vote_rshares | 0 |
| children_abs_rshares | 0 |
| cashout_time | 1969-12-31 23:59:59 |
| max_cashout_time | 1969-12-31 23:59:59 |
| total_vote_weight | 0 |
| reward_weight | 10,000 |
| total_payout_value | 0.000 SBD |
| curator_payout_value | 0.000 SBD |
| author_rewards | 0 |
| net_votes | 0 |
| root_comment | 93 |
| max_accepted_payout | 1,000,000.000 SBD |
| percent_steem_dollars | 10,000 |
| allow_replies | true |
| allow_votes | true |
| allow_curation_rewards | true |
| beneficiaries | [] |
| root_title | title2 |
| pending_payout_value | 0.000 SBD |
| total_pending_payout_value | 0.000 STEEM |
| author_reputation | 1,993,860,928,264 |
| promoted | 0.000 SBD |
| body_length | 0 |
| reblogged_by | [] |
vote your-acct "red" "spam" 100 true
post_comment your-acct "re-red-spam-20170623t120704455z" "red" "spam" "" "your reply.." "{}" true
Here goes nothing ...
| created | 2016-04-13 06:36:21 |
|---|---|
| active | 2016-04-13 06:36:21 |
| last_payout | 2016-08-26 03:00:03 |
| depth | 1 |
| children | 0 |
| net_rshares | 0 |
| vote_rshares | 0 |
| children_abs_rshares | 0 |
| cashout_time | 1969-12-31 23:59:59 |
| max_cashout_time | 1969-12-31 23:59:59 |
| total_vote_weight | 0 |
| reward_weight | 10,000 |
| total_payout_value | 0.000 SBD |
| curator_payout_value | 0.000 SBD |
| author_rewards | 0 |
| net_votes | 0 |
| root_comment | 93 |
| max_accepted_payout | 1,000,000.000 SBD |
| percent_steem_dollars | 10,000 |
| allow_replies | true |
| allow_votes | true |
| allow_curation_rewards | true |
| beneficiaries | [] |
| root_title | title2 |
| pending_payout_value | 0.000 SBD |
| total_pending_payout_value | 0.000 STEEM |
| author_reputation | 75,253,737 |
| promoted | 0.000 SBD |
| body_length | 0 |
| reblogged_by | [] |
vote your-acct "salvation" "re-red-spam" 100 true
post_comment your-acct "re-salvation-re-red-spam-20170623t120704458z" "salvation" "re-red-spam" "" "your reply.." "{}" true

You can't totally remove a comment, everyone can still find the original content. It's recorded on the chain.
| created | 2016-04-13 08:12:39 |
|---|---|
| active | 2016-04-13 08:12:39 |
| last_payout | 2016-08-26 03:00:03 |
| depth | 1 |
| children | 0 |
| net_rshares | 0 |
| vote_rshares | 0 |
| children_abs_rshares | 0 |
| cashout_time | 1969-12-31 23:59:59 |
| max_cashout_time | 1969-12-31 23:59:59 |
| total_vote_weight | 0 |
| reward_weight | 10,000 |
| total_payout_value | 0.000 SBD |
| curator_payout_value | 0.000 SBD |
| author_rewards | 0 |
| net_votes | 0 |
| root_comment | 93 |
| max_accepted_payout | 1,000,000.000 SBD |
| percent_steem_dollars | 10,000 |
| allow_replies | true |
| allow_votes | true |
| allow_curation_rewards | true |
| beneficiaries | [] |
| root_title | title2 |
| pending_payout_value | 0.000 SBD |
| total_pending_payout_value | 0.000 STEEM |
| author_reputation | 84,646,244,438,099 |
| promoted | 0.000 SBD |
| body_length | 0 |
| reblogged_by | [] |
vote your-acct "abit" "red-spam-re1" 100 true
post_comment your-acct "re-abit-red-spam-re1-20170623t120704461z" "abit" "red-spam-re1" "" "your reply.." "{}" true

Forum spam is a problem common to all popular forum software. Forum spam is caused by automated software (referred to as “spambots”) that visits forums with the sole purpose of registering many user accounts and/or posting massive amounts of messages. These messages often contain links to commercial websites, phishing websites or even malware.
Forum spambots surf the web looking for guestbooks, wikis, blogs, forums and any other web forms to submit spam links to. These spambots often use OCR technology to bypass CAPTCHAs present. Some spam messages are targeted towards readers and can involve techniques of target marketing or even phishing. These automated schemes can make it more difficult for users to tell real posts from the bot generated ones. Some spam messages also simply contain tags and hyperlinks intended to boost search engine ranking rather than target human readers.
Spam posts may contain anything from a single link to dozens of links. Text content is minimal, usually innocuous and unrelated to the forum's topic. Sometimes the posts may be made in old threads that are revived by the spammer solely for the purpose of spamming links. Posts include some text to prevent the post being caught by automated spam filters that prevent posts which consist solely of external links from being submitted.
Alternatively, the spam links are posted in the user's signature, in which case the spambot will never post. The link sits quietly in the signature field, where it is more likely to be harvested by search engine spiders than discovered by forum administrators and moderators.
Spam prevention and deletions measurably increase the workload of forum administrators and moderators. The amount of time and resources spent keeping a forum spam free contributes significantly to labor cost and the skill required in the running of a public forum. Marginally profitable or smaller forums may be permanently closed by administrators.
How will STEEM fight spam?
References:
| created | 2016-04-13 08:45:09 |
|---|---|
| active | 2016-04-13 16:05:57 |
| last_payout | 2016-08-12 10:16:57 |
| depth | 0 |
| children | 1 |
| net_rshares | -433,402,453,408 |
| vote_rshares | 0 |
| children_abs_rshares | 0 |
| cashout_time | 1969-12-31 23:59:59 |
| max_cashout_time | 1969-12-31 23:59:59 |
| total_vote_weight | 0 |
| reward_weight | 10,000 |
| total_payout_value | 0.000 SBD |
| curator_payout_value | 0.000 SBD |
| author_rewards | 0 |
| net_votes | 2 |
| root_comment | 103 |
| max_accepted_payout | 1,000,000.000 SBD |
| percent_steem_dollars | 10,000 |
| allow_replies | true |
| allow_votes | true |
| allow_curation_rewards | true |
| beneficiaries | [] |
| root_title | Anti-spam |
| pending_payout_value | 0.000 SBD |
| total_pending_payout_value | 0.000 STEEM |
| author_reputation | 84,646,244,438,099 |
| promoted | 0.000 SBD |
| body_length | 0 |
| reblogged_by | [] |
| author_curate_reward | "" |
| voter | weight | wgt% | rshares | pct | time |
|---|---|---|---|---|---|
| afew | 39 | 39,282 | 100% | 2016-04-13T12:12:33 | |
| abit | 22.7 | 61,154 | 100% | 2016-04-13T12:13:00 | |
| dantheman | 235 | 376,603 | 1% | 2016-04-13T16:06:48 | |
| anonymous | 0.067 | 25,697 | 1% | 2016-04-15T11:27:03 | |
| ned | 0 | -936,400 | -1% | 2016-04-16T17:11:54 | |
| idradiation | 0 | -237,802,095 | -100% | 2016-07-10T15:29:24 | |
| jalantikus | 0 | -233,942,232 | -100% | 2016-07-12T10:16:57 | |
| alittle | 0 | 733,290,919 | 100% | 2016-07-29T13:17:57 | |
| alex.chien | 0 | 0 | 100% | 2016-09-01T14:12:06 | |
| mineralwasser | 0 | 0 | 100% | 2016-09-01T14:12:15 | |
| bingo-0 | 0 | 0 | 100% | 2016-09-01T14:12:21 | |
| bingo-1 | 0 | 0 | 100% | 2016-09-01T14:12:27 | |
| rubybian | 0 | 0 | 100% | 2016-09-01T14:12:39 | |
| mrs.agsexplorer | 0 | 0 | 100% | 2016-09-01T14:12:42 | |
| murh | 0 | 0 | 33.01% | 2016-09-01T14:12:42 | |
| barrie | 0 | 0 | 100% | 2016-09-01T14:12:45 | |
| boombastic | 0 | 0 | 100% | 2016-09-01T14:12:48 |
vote your-acct "abit" "anti-spam" 100 true
post_comment your-acct "re-abit-anti-spam-20170623t120704468z" "abit" "anti-spam" "" "your reply.." "{}" true
Steem has several challenges that traditional forum don't have.
That said, Steem has some advantages that other forums lack.
Large investors in STEEM have financial incentives to run bots that automatically vote down posts from known spammers. This creates a kind of shaddow-ban.
Lastly, the steemit.com rendering of blockchain state can automatically minimize / exclude posts with net-negative votes. If the post is shown, links can be disabled.
The user interface will also allow users to follow others. In this way posts downvoted by friends are automatically hidden in the user interface.
Ultimately all the same techniques used to prevent spam on traditional forums can be applied here. The only limitation is that the blockchain never forgets and never deletes posts.
| created | 2016-04-13 16:05:57 |
|---|---|
| active | 2016-04-13 16:05:57 |
| last_payout | 2016-08-12 10:16:57 |
| depth | 1 |
| children | 0 |
| net_rshares | 0 |
| vote_rshares | 0 |
| children_abs_rshares | 0 |
| cashout_time | 1969-12-31 23:59:59 |
| max_cashout_time | 1969-12-31 23:59:59 |
| total_vote_weight | 0 |
| reward_weight | 10,000 |
| total_payout_value | 13.826 SBD |
| curator_payout_value | 13.825 SBD |
| author_rewards | 62,846 |
| net_votes | 3 |
| root_comment | 103 |
| max_accepted_payout | 1,000,000.000 SBD |
| percent_steem_dollars | 10,000 |
| allow_replies | true |
| allow_votes | true |
| allow_curation_rewards | true |
| beneficiaries | [] |
| root_title | Anti-spam |
| pending_payout_value | 0.000 SBD |
| total_pending_payout_value | 0.000 STEEM |
| author_reputation | 243,694,000,653,309 |
| promoted | 0.000 SBD |
| body_length | 0 |
| reblogged_by | [] |
| author_curate_reward | "" |
| voter | weight | wgt% | rshares | pct | time |
|---|---|---|---|---|---|
| dantheman | 377 | 376,603 | 1% | 2016-04-13T16:07:15 | |
| rainman | 15,538 | 16,265,859 | 100% | 2016-04-15T18:34:27 | |
| theoretical | 0 | 70,225,455,000 | 100% | 2016-06-23T22:22:51 |
vote your-acct "dantheman" "steem-has-several-challenges-that-traditional-forum-dont-have" 100 true
post_comment your-acct "re-dantheman-steem-has-several-challenges-that-traditional-forum-dont-have-20170623t120704473z" "dantheman" "steem-has-several-challenges-that-traditional-forum-dont-have" "" "your reply.." "{}" true
In an other article we have discussed the underlying structure of the STEEM API and can now look into monitoring account deposits.
First, we need to run a full node in a trusted environment:
./programs/steemd/steemd --rpc-endpoint=127.0.0.1:8092
We open up the RPC endpoint so that we can interface with the node using RPC-JSON calls.
The RPC call get_config will return the configuration of the blockchain which contains the block interval in seconds. By calling get_dynamic_global_properties, we obtain the current head block number as well as the last irreversible block number. The difference between both is that the last block is last block that has been produced by the network and has thus been confirmed by the block producer. The last irreversible block is that block that has been confirmed by sufficient many block producers so that it can no longer be modified without a hard fork. Every block older than the last reversible block is equivalent to a checkpoint in Bitcoin. Typically they are about 30 to 50 blocks behind the head block.
A particular block can be obtained via the get_block <blocknumber> call and takes the form shown above.
Since the content of a block is unencrypted, all it takes to monitor an account is processing of the content of each block.
The following will show example implementations for monitoring a specific account.
# This library can be obtain from https://github.com/xeroc/python-steem
from steemrpc import SteemRPC
from pprint import pprint
import time
"""
Connection Parameters to steemd daemon.
Start the steemd daemon with the rpc-endpoint parameter:
./programs/steemd/steemd --rpc-endpoint=127.0.0.1:8092
This opens up a RPC port (e.g. at 8092). Currently, authentication
is not yet available, thus, we recommend to restrict access to
localhost. Later we will allow authentication via username and
passpword (both empty now).
"""
rpc = SteemRPC("localhost", 8092, "", "")
"""
Last Block that you have process in your backend.
Processing will continue at `last_block + 1`
"""
last_block = 160900
"""
Deposit account name to monitor
"""
watch_account = "world"
def process_block(block, blockid):
"""
This call processes a block which can carry many transactions
:param Object block: block data
:param number blockid: block number
"""
if "transactions" in block:
for tx in block["transactions"]:
#: Parse operations
for opObj in tx["operations"]:
#: Each operation is an array of the form
#: [type, {data}]
opType = opObj[0]
op = opObj[1]
# we here want to only parse transfers
if opType == "transfer":
process_transfer(op, block, blockid)
def process_transfer(op, block, blockid):
"""
We here process the actual transfer operation.
"""
if op["to"] == watch_account:
print(
"%d | %s | %s -> %s: %s -- %s" % (
blockid,
block["timestamp"],
op["from"],
op["to"],
op["amount"],
op["memo"]
)
)
if __name__ == '__main__':
# Let's find out how often blocks are generated!
config = rpc.get_config()
block_interval = config["STEEMIT_BLOCK_INTERVAL"]
# We are going to loop indefinitely
while True:
# Get chain properies to identify the
# head/last reversible block
props = rpc.get_dynamic_global_properties()
# Get block number
# We here have the choice between
# * head_block_number: the last block
# * last_irreversible_block_num: the block that is confirmed by
# 2/3 of all block producers and is thus irreversible!
# We recommend to use the latter!
# block_number = props['head_block_number']
block_number = props['last_irreversible_block_num']
# We loop through all blocks we may have missed since the last
# block defined above
while (block_number - last_block) > 0:
last_block += 1
# Get full block
block = rpc.get_block(last_block)
# Process block
process_block(block, last_block)
# Sleep for one block
time.sleep(block_interval)
| last_update | 2016-05-15 16:06:06 |
|---|---|
| created | 2016-04-13 16:22:45 |
| active | 2016-05-15 16:06:06 |
| last_payout | 2016-08-03 00:00:06 |
| depth | 0 |
| children | 2 |
| net_rshares | 0 |
| vote_rshares | 0 |
| children_abs_rshares | 0 |
| cashout_time | 1969-12-31 23:59:59 |
| max_cashout_time | 1969-12-31 23:59:59 |
| total_vote_weight | 0 |
| reward_weight | 10,000 |
| total_payout_value | 18.340 SBD |
| curator_payout_value | 18.338 SBD |
| author_rewards | 83,368 |
| net_votes | 16 |
| root_comment | 110 |
| max_accepted_payout | 1,000,000.000 SBD |
| percent_steem_dollars | 10,000 |
| allow_replies | true |
| allow_votes | true |
| allow_curation_rewards | true |
| beneficiaries | [] |
| root_title | "Monitoring Account Deposits in Steem Using Python" |
| pending_payout_value | 0.000 SBD |
| total_pending_payout_value | 0.000 STEEM |
| author_reputation | 109,708,107,896,351 |
| promoted | 0.000 SBD |
| body_length | 0 |
| reblogged_by | [] |
vote your-acct "xeroc" "how-to-monitor-an-account-on-steem" 100 true
post_comment your-acct "re-xeroc-how-to-monitor-an-account-on-steem-20170623t120704478z" "xeroc" "how-to-monitor-an-account-on-steem" "" "your reply.." "{}" true

The downside of this approach is that you basically have to reimplement the complete blockchain logic in your client.
| created | 2016-04-15 16:43:18 |
|---|---|
| active | 2016-04-15 16:43:18 |
| last_payout | 2016-08-03 00:00:06 |
| depth | 1 |
| children | 0 |
| net_rshares | 0 |
| vote_rshares | 0 |
| children_abs_rshares | 0 |
| cashout_time | 1969-12-31 23:59:59 |
| max_cashout_time | 1969-12-31 23:59:59 |
| total_vote_weight | 0 |
| reward_weight | 10,000 |
| total_payout_value | 0.000 SBD |
| curator_payout_value | 0.000 SBD |
| author_rewards | 0 |
| net_votes | 0 |
| root_comment | 110 |
| max_accepted_payout | 1,000,000.000 SBD |
| percent_steem_dollars | 10,000 |
| allow_replies | true |
| allow_votes | true |
| allow_curation_rewards | true |
| beneficiaries | [] |
| root_title | "Monitoring Account Deposits in Steem Using Python" |
| pending_payout_value | 0.000 SBD |
| total_pending_payout_value | 0.000 STEEM |
| author_reputation | 1,729,114,519,654 |
| promoted | 0.000 SBD |
| body_length | 0 |
| reblogged_by | [] |
vote your-acct "cyrano" "re-xeroc-how-to-monitor-an-account-on-steem" 100 true
post_comment your-acct "re-cyrano-re-xeroc-how-to-monitor-an-account-on-steem-20170623t120704481z" "cyrano" "re-xeroc-how-to-monitor-an-account-on-steem" "" "your reply.." "{}" true
Great work on the python tools!
| created | 2016-04-15 22:16:42 |
|---|---|
| active | 2016-04-15 22:16:42 |
| last_payout | 2016-08-03 00:00:06 |
| depth | 1 |
| children | 0 |
| net_rshares | 0 |
| vote_rshares | 0 |
| children_abs_rshares | 0 |
| cashout_time | 1969-12-31 23:59:59 |
| max_cashout_time | 1969-12-31 23:59:59 |
| total_vote_weight | 0 |
| reward_weight | 10,000 |
| total_payout_value | 0.000 SBD |
| curator_payout_value | 0.000 SBD |
| author_rewards | 0 |
| net_votes | 0 |
| root_comment | 110 |
| max_accepted_payout | 1,000,000.000 SBD |
| percent_steem_dollars | 10,000 |
| allow_replies | true |
| allow_votes | true |
| allow_curation_rewards | true |
| beneficiaries | [] |
| root_title | "Monitoring Account Deposits in Steem Using Python" |
| pending_payout_value | 0.000 SBD |
| total_pending_payout_value | 0.000 STEEM |
| author_reputation | 243,694,000,653,309 |
| promoted | 0.000 SBD |
| body_length | 0 |
| reblogged_by | [] |
vote your-acct "dantheman" "re-xeroc-how-to-monitor-an-account-on-steem-20160415t221640335z" 100 true
post_comment your-acct "re-dantheman-re-xeroc-how-to-monitor-an-account-on-steem-20170623t120704484z" "dantheman" "re-xeroc-how-to-monitor-an-account-on-steem-20160415t221640335z" "" "your reply.." "{}" true
This article desribes the API of the STEEM full node (not of the wallet API).
This article assumes that you have a full node running and listening to port 8092, locally. You can achieve this by
./programs/steemd/steemd --rpc-endpoint=127.0.0.1:8092
We open up the RPC endpoint so that we can interface with the node using RPC-JSON calls.
In Graphene, RPC calls are state-less and accessible via regular JSON formated RPC-HTTP-calls. The correct structure of the JSON call is
{
"jsonrpc": "2.0",
"id": 1
"method": "get_account",
"params": [["xeroc", "steemit"]],
}
The get_accounts call is available in the full node's API and takes only one argument which is an array of account ids (here: ["xeroc", "steemit"]).
curl
Such as call can be submitted via curl:
curl --data '{"jsonrpc": "2.0", "method": "get_accounts", "params": [["xeroc","steemit"]], "id": 1}' http://127.0.0.1:8090/rpc
The API will return a properly JSON formated response carrying the same id
as the request to distinguish subsequent calls.
{ "id":1, "result": "data" }
In case of an error, the resulting answer will carry an error attribute and
a detailed description:
{
"id": 0
"error": {
"data": {
"code": error-code,
"name": " .. name of exception .."
"message": " .. message of exception ..",
"stack": [ .. stack trace .. ],
},
"code": 1,
},
}
Even though, the help call does not exist, it gives us an error message that contains all available API calls in the stack trace:
curl --data '{"jsonrpc": "2.0", "method": "help", "params": [], "id": 1}' http://127.0.0.1:8090/rpc
{
"id": 1,
"error": {
"message": <...>,
"data": {
"message": "Assert Exception",
"name": "assert_exception",
"stack": [
{
"data": {
"name": "help",
"api": {
"set_subscribe_callback": 0,
"get_dynamic_global_properties": 12,
"get_accounts": 17,
"get_active_categories": 9,
"get_account_references": 18,
"get_trending_categories": 7,
"get_content": 36,
"get_state": 6,
"get_discussions_by_total_pending_payout": 38,
"cancel_all_subscriptions": 3,
"get_block_header": 4,
"get_active_votes": 35,
"get_current_median_history_price": 15,
"lookup_witness_accounts": 26,
"verify_account_authority": 34,
"get_key_references": 16,
"set_pending_transaction_callback": 1,
"get_required_signatures": 31,
"get_recent_categories": 10,
"get_order_book": 28,
"lookup_accounts": 20,
"get_account_history": 23,
"get_chain_properties": 13,
"get_feed_history": 14,
"verify_authority": 33,
"get_discussions_by_last_update": 40,
"get_conversion_requests": 22,
"get_discussions_in_category_by_last_update": 41,
"get_block": 5,
"get_witness_count": 27,
"get_best_categories": 8,
"get_potential_signatures": 32,
"lookup_account_names": 19,
"get_transaction": 30,
"get_witnesses": 24,
"get_witness_by_account": 25,
"get_account_count": 21,
"get_transaction_hex": 29,
"get_content_replies": 37,
"get_discussions_in_category_by_total_pending_payout": 39,
"get_miner_queue": 43,
"get_active_witnesses": 42,
"set_block_applied_callback": 2,
"get_config": 11
}
},
"context": {
"line": 109,
"hostname": "",
"timestamp": "2016-04-13T16:15:17",
"method": "call",
"thread_name": "th_a",
"level": "error",
"file": "api_connection.hpp"
},
"format": "itr != _by_name.end(): no method with name '${name}'"
}
],
"code": 10
},
"code": 1
}
}
Further documentation about the calls can be found in the sources in libraries/app/include/steemit/app/database_api.hpp.
| created | 2016-04-13 16:25:15 |
|---|---|
| active | 2016-07-21 17:34:03 |
| last_payout | 2016-08-24 05:37:24 |
| depth | 0 |
| children | 3 |
| net_rshares | 0 |
| vote_rshares | 0 |
| children_abs_rshares | 0 |
| cashout_time | 1969-12-31 23:59:59 |
| max_cashout_time | 1969-12-31 23:59:59 |
| total_vote_weight | 0 |
| reward_weight | 10,000 |
| total_payout_value | 2.165 SBD |
| curator_payout_value | 0.493 SBD |
| author_rewards | 9,197 |
| net_votes | 29 |
| root_comment | 111 |
| max_accepted_payout | 1,000,000.000 SBD |
| percent_steem_dollars | 10,000 |
| allow_replies | true |
| allow_votes | true |
| allow_curation_rewards | true |
| beneficiaries | [] |
| root_title | "Steem API" |
| pending_payout_value | 0.000 SBD |
| total_pending_payout_value | 0.000 STEEM |
| author_reputation | 109,708,107,896,351 |
| promoted | 0.000 SBD |
| body_length | 0 |
| reblogged_by | [] |
vote your-acct "xeroc" "steem-api" 100 true
post_comment your-acct "re-xeroc-steem-api-20170623t120704491z" "xeroc" "steem-api" "" "your reply.." "{}" true
@xeroc Hallo, thanks a lot for the post! I'm pretty new to Steemit and Python coding, but I have managed to successfully run some API's off other websites in the past. At the start, where you say ./programs/steemd/steemd --rpc-endpoint=127.0.0.1:8092
can be used to open a RPC endpoint. Do I run that in my CMD? I'm pretty lost. All I basically want is to run script in python, to just print a live list of the activity on the Steemit block chain. Something very similar to http://steemstream.com/ but only in my python window. Please help!
| json_metadata | {"users":["xeroc"],"links":["http://steemstream.com/"]} |
|---|---|
| created | 2016-07-14 11:33:39 |
| active | 2016-07-17 11:28:00 |
| last_payout | 2016-08-24 05:37:24 |
| depth | 1 |
| children | 1 |
| net_rshares | 0 |
| vote_rshares | 0 |
| children_abs_rshares | 0 |
| cashout_time | 1969-12-31 23:59:59 |
| max_cashout_time | 1969-12-31 23:59:59 |
| total_vote_weight | 0 |
| reward_weight | 10,000 |
| total_payout_value | 0.025 SBD |
| curator_payout_value | 0.000 SBD |
| author_rewards | 7 |
| net_votes | 2 |
| root_comment | 111 |
| max_accepted_payout | 1,000,000.000 SBD |
| percent_steem_dollars | 10,000 |
| allow_replies | true |
| allow_votes | true |
| allow_curation_rewards | true |
| beneficiaries | [] |
| root_title | "Steem API" |
| pending_payout_value | 0.000 SBD |
| total_pending_payout_value | 0.000 STEEM |
| author_reputation | 538,081,953,769 |
| promoted | 0.000 SBD |
| body_length | 0 |
| reblogged_by | [] |
| author_curate_reward | "" |
| voter | weight | wgt% | rshares | pct | time |
|---|---|---|---|---|---|
| zebbra2014 | 0 | 2,200,011,657 | 100% | 2016-07-20T06:47:57 | |
| sandwich | 0 | 11,780,835,483 | 100% | 2016-07-20T23:07:09 |
vote your-acct "marcelhattingh" "re-xeroc-steem-api-20160714t113339648z" 100 true
post_comment your-acct "re-marcelhattingh-re-xeroc-steem-api-20170623t120704495z" "marcelhattingh" "re-xeroc-steem-api-20160714t113339648z" "" "your reply.." "{}" true
probably need to get each block as it comes in and display what each block has:
curl http://127.0.0.1:8090": 2.0
, method
: call
, params
: [database_api
, get_block
, [10000]], id
: 3}'
returns:
{id
:3,result
:{previous
:0000270f17162d089d8cbf634b7ce434df782c9c
,timestamp
:2016-03-25T00:34:48
,witness
:itsascam
,transaction_merkle_root
:340b3605652c91cd41456656c1915a7b5b46dffa
,extensions
:[],witness_signature
:20546ff92d26a7d3ba3e3331a95c6389c9018620f9430fdee8857e925bf7fa13806dbadd7371a244706ba3df0e1ffb0db084aa4019950594d6289a11f4256b66b8
,transactions
:[{ref_block_num
:9999,ref_block_prefix
:137172503,expiration
:2016-03-25T01:34:45
,operations
:[[pow
,{worker_account
:steemit59
,block_id
:0000270f17162d089d8cbf634b7ce434df782c9c
,nonce
:2069557240858032527
,work
:{worker
:STM65wH1LZ7BfSHcK69SShnqCAH5xdoSZpGkUjmzHJ5GCuxEK9V5G
,input
:1125c3ab09a55396c55ed60283cd6634d455d7bc1b9efb169952c654923e9f7e
,signature
:20194bba7b31c53f7bc74efd9d0524e71ae87e4b60072313d866dac4c722c30da8365c3c28c972f8b06892cf1c60703d4abf550c24f66098e57a7f9671b41caf42
,work
:0000000435a0bfad8471034a209d7556b4c16d77b22a66970de224f6fedad95a
},props
:{account_creation_fee
:100.000 STEEM
,maximum_block_size
:131072,sbd_interest_rate
:1000}}]],extensions
:[],signatures
:[]}]}}
So you would need a loop that checks for the latest blocknumber and then iterate until you reach that number, then for each block call a parsing function, extracting the info you want to display
| json_metadata | {"links":["http://127.0.0.1:8090"]} |
|---|---|
| last_update | 2016-07-17 11:33:45 |
| created | 2016-07-17 11:28:00 |
| active | 2016-07-17 11:33:45 |
| last_payout | 2016-08-24 05:37:24 |
| depth | 2 |
| children | 0 |
| net_rshares | 0 |
| vote_rshares | 0 |
| children_abs_rshares | 0 |
| cashout_time | 1969-12-31 23:59:59 |
| max_cashout_time | 1969-12-31 23:59:59 |
| total_vote_weight | 0 |
| reward_weight | 10,000 |
| total_payout_value | 0.025 SBD |
| curator_payout_value | 0.000 SBD |
| author_rewards | 7 |
| net_votes | 3 |
| root_comment | 111 |
| max_accepted_payout | 1,000,000.000 SBD |
| percent_steem_dollars | 10,000 |
| allow_replies | true |
| allow_votes | true |
| allow_curation_rewards | true |
| beneficiaries | [] |
| root_title | "Steem API" |
| pending_payout_value | 0.000 SBD |
| total_pending_payout_value | 0.000 STEEM |
| author_reputation | 14,604,963,389,103 |
| promoted | 0.000 SBD |
| body_length | 0 |
| reblogged_by | [] |
| author_curate_reward | "" |
| voter | weight | wgt% | rshares | pct | time |
|---|---|---|---|---|---|
| zebbra2014 | 0 | 2,444,457,397 | 100% | 2016-07-20T06:47:51 | |
| sandwich | 0 | 12,082,908,188 | 100% | 2016-07-20T23:07:06 | |
| iotaardor | 0 | 107,201,870 | 100% | 2016-07-26T01:45:36 |
vote your-acct "jl777" "re-marcelhattingh-re-xeroc-steem-api-20160717t112759269z" 100 true
post_comment your-acct "re-jl777-re-marcelhattingh-re-xeroc-steem-api-20170623t120704502z" "jl777" "re-marcelhattingh-re-xeroc-steem-api-20160717t112759269z" "" "your reply.." "{}" true

method
: get_account
should be method
: get_accounts
... thanks for the post!
| created | 2016-07-21 17:34:03 |
|---|---|
| active | 2016-07-21 17:34:03 |
| last_payout | 2016-08-24 05:37:24 |
| depth | 1 |
| children | 0 |
| net_rshares | 0 |
| vote_rshares | 0 |
| children_abs_rshares | 0 |
| cashout_time | 1969-12-31 23:59:59 |
| max_cashout_time | 1969-12-31 23:59:59 |
| total_vote_weight | 0 |
| reward_weight | 10,000 |
| total_payout_value | 0.000 SBD |
| curator_payout_value | 0.000 SBD |
| author_rewards | 0 |
| net_votes | 2 |
| root_comment | 111 |
| max_accepted_payout | 1,000,000.000 SBD |
| percent_steem_dollars | 10,000 |
| allow_replies | true |
| allow_votes | true |
| allow_curation_rewards | true |
| beneficiaries | [] |
| root_title | "Steem API" |
| pending_payout_value | 0.000 SBD |
| total_pending_payout_value | 0.000 STEEM |
| author_reputation | 585,483,724,751 |
| promoted | 0.000 SBD |
| body_length | 0 |
| reblogged_by | [] |
| author_curate_reward | "" |
| voter | weight | wgt% | rshares | pct | time |
|---|---|---|---|---|---|
| auxon | 0 | 9,881,542,067 | 100% | 2016-07-22T15:48:42 | |
| ausbitbank | 0 | 20,772,042,312 | 100% | 2016-08-23T13:37:06 |
vote your-acct "auxon" "re-xeroc-steem-api-20160721t173402486z" 100 true
post_comment your-acct "re-auxon-re-xeroc-steem-api-20170623t120704506z" "auxon" "re-xeroc-steem-api-20160721t173402486z" "" "your reply.." "{}" true
The underlying technology if STEEM is very similar to the Graphene technology used in other blockchains. It consists of hash-linked blocks that may contain several transactions. In contrast to Bitcoin, each transaction can itself contain several so called operations that perform certain tasks (e.g. transfers, vote and comment operations, vesting operations, and many more).
Operations can easily be identified by their operation type as well as a different structure in the operation data.
For the sake of simplicity, this article will show how to read and interpret transfer operations on order to process customer deposits. In order to distinguish customers, we will make use of memos that can be attached to each transfer. Note, that these memos are stored on the blockchain in plain text.
A transfer operations takes the following form:
{
"from": "hello",
"to": "world",
"amount": "10.000 STEEM",
"memo": "mymemo"
}
where from and to identify the sender and recipient. The amount is a space-separated string that contains a floating point number and the symbol name STEEM. As mentioned above, the sender can attach a memo which is stored on the blockchain in plain text.
Each operation is identified by an operation identifier (e.g. transfer) together with the operation-specific data and are bundled into an array of operations:
[
[operationType, {operation_data}],
[operationType, {operation_data}],
[operationType, {operation_data}],
]
Several operations can be grouped together but they all take the form [operationType, {data}]:
[
["transfer", {
"from": "hello",
"to": "world",
"amount": "10.000 STEEM",
"memo": "mymemo"
}
],
["transfer", {
"from": "world",
"to": "trade",
"amount": "15.000 STEEM",
"memo": "Gift!"
}
]
]
The set of operations is executed in the given order. Given that STEEM has a single threaded business logic, all operations in a transaction are guaranteed to be executed atomically.
The set of operations is stored in a transaction that now carries the required signatures of the accounts involved, an expiration date as well as some parameters required for the TaPOS/DPOS consensus scheme.
[
{"ref_block_num": 29906,
"ref_block_prefix": 1137201336,
"expiration": "2016-03-30T07:15:00",
"operations": [[
"transfer",{
"from": "hello",
"to": "world",
"amount": "10.000 STEEM",
"memo": "mymemo"
}
]
],
"extensions": [],
"signatures": ["20326......"]
}
]
Several transactions from different entities are then grouped into a block by the block producers (e.g. witnesses and POW miners). The block carries the usual blockchain parameters, such as the transaction merkle root, hash of the previous block as well as the transactions.
{
"previous": "000274d2b850c8433f4c908a12cc3d33e69a9191",
"timestamp": "2016-03-30T07:14:33",
"witness": "batel",
"transaction_merkle_root": "f55d5d65e27b80306c8e33791eb2b24f58a94839",
"extensions": [],
"witness_signature": "203b5ae231c4cf339367240551964cd8a00b85554dfa1362e270a78fa322737371416b00d1d7da434f86ad77a82b6cc1dd2255ca6325b731185fe2c59514e37b29",
"transactions": [{
"ref_block_num": 29906,
"ref_block_prefix": 1137201336,
"expiration": "2016-03-30T07:15:00",
"operations": [[
"transfer",{
"from": "hello",
"to": "world",
"amount": "10.000 STEEM",
"memo": "mymemo"
}
]
],
"extensions": [],
"signatures": [
"20326d2fe6e6ba5169a3aa2f1e07ff1636e84310e95a40af12483af21a3d3c5e9564565ede62659c2c78a0d9a65439ad4171a9373687b86a550aa0df9d23ade425"
]
}
],
"block_id": "000274d3399c50585c47036a7d62fd6d8c5b30ad",
"signing_key": "STM767UyP27Tuak3MwJxfNcF8JH1CM2YMxtCAZoz8A5S8VZKQfZ8p",
"transaction_ids": [
"64d45b5497252395e38ed23344575b5253b257c3"
]
}
Furthermore, the call get_block <blocknumber> returns the transaction ids (i.e. the hashes of the signed transaction produced by the sender) that uniquely identify a transaction and thus the containing operations.
| created | 2016-04-13 16:27:03 |
|---|---|
| active | 2016-04-13 16:27:03 |
| last_payout | 2016-08-03 00:00:06 |
| depth | 0 |
| children | 0 |
| net_rshares | 0 |
| vote_rshares | 0 |
| children_abs_rshares | 0 |
| cashout_time | 1969-12-31 23:59:59 |
| max_cashout_time | 1969-12-31 23:59:59 |
| total_vote_weight | 0 |
| reward_weight | 10,000 |
| total_payout_value | 21.304 SBD |
| curator_payout_value | 21.301 SBD |
| author_rewards | 96,839 |
| net_votes | 29 |
| root_comment | 112 |
| max_accepted_payout | 1,000,000.000 SBD |
| percent_steem_dollars | 10,000 |
| allow_replies | true |
| allow_votes | true |
| allow_curation_rewards | true |
| beneficiaries | [] |
| root_title | "The Steem API" |
| pending_payout_value | 0.000 SBD |
| total_pending_payout_value | 0.000 STEEM |
| author_reputation | 109,708,107,896,351 |
| promoted | 0.000 SBD |
| body_length | 0 |
| reblogged_by | [] |
vote your-acct "xeroc" "steem-blockchain-data-structure" 100 true
post_comment your-acct "re-xeroc-steem-blockchain-data-structure-20170623t120704517z" "xeroc" "steem-blockchain-data-structure" "" "your reply.." "{}" true

Tests come here
| created | 2016-04-20 08:37:09 |
|---|---|
| active | 2016-04-20 08:37:09 |
| last_payout | 2016-08-12 10:17:00 |
| depth | 0 |
| children | 0 |
| net_rshares | -1,000,561,744,327 |
| vote_rshares | 0 |
| children_abs_rshares | 0 |
| cashout_time | 1969-12-31 23:59:59 |
| max_cashout_time | 1969-12-31 23:59:59 |
| total_vote_weight | 0 |
| reward_weight | 10,000 |
| total_payout_value | 0.000 SBD |
| curator_payout_value | 0.000 SBD |
| author_rewards | 0 |
| net_votes | -7 |
| root_comment | 271 |
| max_accepted_payout | 1,000,000.000 SBD |
| percent_steem_dollars | 10,000 |
| allow_replies | true |
| allow_votes | true |
| allow_curation_rewards | true |
| beneficiaries | [] |
| root_title | Tests |
| pending_payout_value | 0.000 SBD |
| total_pending_payout_value | 0.000 STEEM |
| author_reputation | 84,646,244,438,099 |
| promoted | 0.000 SBD |
| body_length | 0 |
| reblogged_by | [] |
| author_curate_reward | "" |
| voter | weight | wgt% | rshares | pct | time |
|---|---|---|---|---|---|
| dantheman | 0 | -379,669 | -1% | 2016-04-20T13:59:18 | |
| nextgenwitness | 0 | -5,178 | -1% | 2016-04-20T17:25:36 | |
| justin | 0 | -15,024 | -1% | 2016-04-20T17:29:12 | |
| donalddrumpf | 0 | -100 | -1% | 2016-04-20T20:24:36 | |
| berniesanders | 0 | -600,119 | -1% | 2016-04-20T22:30:36 | |
| idradiation | 0 | -237,802,095 | -100% | 2016-07-10T15:29:27 | |
| jalantikus | 0 | -233,942,232 | -100% | 2016-07-12T10:17:00 |
vote your-acct "abit" "test" 100 true
post_comment your-acct "re-abit-test-20170623t120704524z" "abit" "test" "" "your reply.." "{}" true