Ecoer Logo

@fblife

36

steemitcn.com - Steemit中国,致力于打造国内steemiter交流的社区。

steemit.com/@fblife
VOTING POWER100.00%
DOWNVOTE POWER100.00%
RESOURCE CREDITS100.00%
REPUTATION PROGRESS30.26%
Net Worth
1.913USD
STEEM
0.001STEEM
SBD
3.810SBD
Effective Power
5.001SP
├── Own SP
0.630SP
└── Incoming Deleg
+4.371SP

Detailed Balance

STEEM
balance
0.001STEEM
market_balance
0.000STEEM
savings_balance
0.000STEEM
reward_steem_balance
0.000STEEM
STEEM POWER
Own SP
0.630SP
Delegated Out
0.000SP
Delegation In
4.371SP
Effective Power
5.001SP
Reward SP (pending)
0.972SP
SBD
sbd_balance
0.000SBD
sbd_conversions
0.000SBD
sbd_market_balance
0.000SBD
savings_sbd_balance
0.000SBD
reward_sbd_balance
3.810SBD
{
  "balance": "0.001 STEEM",
  "savings_balance": "0.000 STEEM",
  "reward_steem_balance": "0.000 STEEM",
  "vesting_shares": "1025.450100 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "7118.209706 VESTS",
  "sbd_balance": "0.000 SBD",
  "savings_sbd_balance": "0.000 SBD",
  "reward_sbd_balance": "3.810 SBD",
  "conversions": []
}

Account Info

namefblife
id496999
rank647,819
reputation18023868529
created2017-12-15T03:03:48
recovery_accountsteem
proxyNone
post_count99
comment_count0
lifetime_vote_count0
witnesses_voted_for0
last_post2018-04-16T03:16:30
last_root_post2018-04-16T03:16:30
last_vote_time2018-01-12T10:05:24
proxied_vsf_votes0, 0, 0, 0
can_vote1
voting_power0
delayed_votes0
balance0.001 STEEM
savings_balance0.000 STEEM
sbd_balance0.000 SBD
savings_sbd_balance0.000 SBD
vesting_shares1025.450100 VESTS
delegated_vesting_shares0.000000 VESTS
received_vesting_shares7118.209706 VESTS
reward_vesting_balance1991.022527 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-01-10T05:24:09
minedNo
sbd_seconds0
sbd_last_interest_payment1970-01-01T00:00:00
savings_sbd_last_interest_payment1970-01-01T00:00:00
{
  "id": 496999,
  "name": "fblife",
  "owner": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM84nPXmCeVRvtnxYkQXDv1XiuYDR1bvmp6zTMKEbQEFQYNYMyEi",
        1
      ]
    ]
  },
  "active": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM58WzpKpLLfBQA2d4XiuQteB2saM8ctwnHu9ini6JJMo9F3QKQB",
        1
      ]
    ]
  },
  "posting": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM5FTSTMnC5ZTa43gvncWFkJqJ7qkUWYd9zLqtEWwWxuupGWEFbp",
        1
      ]
    ]
  },
  "memo_key": "STM5vMnNuqUu3q8KSWzRbRxi3VdnhZKRqq3z3xKNyAkrTtEM8tiAV",
  "json_metadata": "{\"profile\":{\"profile_image\":\"http://img4.fblife.com/FrhbImrEFLk8cWueohD6DBn-fvwB?imageView2/2/w/728/q/100\",\"about\":\"steemitcn.com - Steemit中国,致力于打造国内steemiter交流的社区。\",\"location\":\"beijing\",\"website\":\"http://www.steemitcn.com\"}}",
  "posting_json_metadata": "{\"profile\":{\"profile_image\":\"http://img4.fblife.com/FrhbImrEFLk8cWueohD6DBn-fvwB?imageView2/2/w/728/q/100\",\"about\":\"steemitcn.com - Steemit中国,致力于打造国内steemiter交流的社区。\",\"location\":\"beijing\",\"website\":\"http://www.steemitcn.com\"}}",
  "proxy": "",
  "last_owner_update": "1970-01-01T00:00:00",
  "last_account_update": "2018-01-10T05:24:09",
  "created": "2017-12-15T03:03:48",
  "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": 99,
  "can_vote": true,
  "voting_manabar": {
    "current_mana": "8143659806",
    "last_update_time": 1779063306
  },
  "downvote_manabar": {
    "current_mana": 2035914951,
    "last_update_time": 1779063306
  },
  "voting_power": 0,
  "balance": "0.001 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": "3.810 SBD",
  "reward_steem_balance": "0.000 STEEM",
  "reward_vesting_balance": "1991.022527 VESTS",
  "reward_vesting_steem": "0.972 STEEM",
  "vesting_shares": "1025.450100 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "7118.209706 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": 5,
  "posting_rewards": 1910,
  "proxied_vsf_votes": [
    0,
    0,
    0,
    0
  ],
  "witnesses_voted_for": 0,
  "last_post": "2018-04-16T03:16:30",
  "last_root_post": "2018-04-16T03:16:30",
  "last_vote_time": "2018-01-12T10:05:24",
  "post_bandwidth": 0,
  "pending_claimed_accounts": 0,
  "vesting_balance": "0.000 STEEM",
  "reputation": "18023868529",
  "transfer_history": [],
  "market_history": [],
  "post_history": [],
  "vote_history": [],
  "other_history": [],
  "witness_votes": [],
  "tags_usage": [],
  "guest_bloggers": [],
  "rank": 647819
}

Withdraw Routes

IncomingOutgoing
Empty
Empty
{
  "incoming": [],
  "outgoing": []
}
From Date
To Date
steemdelegated 4.371 SP to @fblife
2026/05/18 00:15:06
delegatorsteem
delegateefblife
vesting shares7118.209706 VESTS
Transaction InfoBlock #106143448/Trx 51f45f724da320bcf6137ed15bda1bbac473c090
View Raw JSON Data
{
  "trx_id": "51f45f724da320bcf6137ed15bda1bbac473c090",
  "block": 106143448,
  "trx_in_block": 6,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2026-05-18T00:15:06",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "fblife",
      "vesting_shares": "7118.209706 VESTS"
    }
  ]
}
steemdelegated 2.706 SP to @fblife
2026/05/12 03:50:21
delegatorsteem
delegateefblife
vesting shares4405.999301 VESTS
Transaction InfoBlock #105975709/Trx 41b3a8f6b27c30d23b9596f5c9df7e1d1bbe0fd0
View Raw JSON Data
{
  "trx_id": "41b3a8f6b27c30d23b9596f5c9df7e1d1bbe0fd0",
  "block": 105975709,
  "trx_in_block": 22,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2026-05-12T03:50:21",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "fblife",
      "vesting_shares": "4405.999301 VESTS"
    }
  ]
}
steemdelegated 4.379 SP to @fblife
2026/04/25 23:36:00
delegatorsteem
delegateefblife
vesting shares7130.725462 VESTS
Transaction InfoBlock #105511098/Trx e0b04fc72c2e455d37f7a38f1cc227f37f410865
View Raw JSON Data
{
  "trx_id": "e0b04fc72c2e455d37f7a38f1cc227f37f410865",
  "block": 105511098,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2026-04-25T23:36:00",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "fblife",
      "vesting_shares": "7130.725462 VESTS"
    }
  ]
}
steemdelegated 2.731 SP to @fblife
2026/01/23 07:47:45
delegatorsteem
delegateefblife
vesting shares4447.546120 VESTS
Transaction InfoBlock #102851802/Trx f802551a43269ea482bbfc3af7e6106c111b00ec
View Raw JSON Data
{
  "trx_id": "f802551a43269ea482bbfc3af7e6106c111b00ec",
  "block": 102851802,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2026-01-23T07:47:45",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "fblife",
      "vesting_shares": "4447.546120 VESTS"
    }
  ]
}
steemdelegated 2.832 SP to @fblife
2024/12/17 03:06:51
delegatorsteem
delegateefblife
vesting shares4611.765317 VESTS
Transaction InfoBlock #91298211/Trx 2853954186d097894529e2ea0138172354803611
View Raw JSON Data
{
  "trx_id": "2853954186d097894529e2ea0138172354803611",
  "block": 91298211,
  "trx_in_block": 4,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2024-12-17T03:06:51",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "fblife",
      "vesting_shares": "4611.765317 VESTS"
    }
  ]
}
steemdelegated 2.936 SP to @fblife
2023/11/13 18:49:39
delegatorsteem
delegateefblife
vesting shares4780.898849 VESTS
Transaction InfoBlock #79852412/Trx 6f58de69b86738c8c91659084f64e0461b1ec6bb
View Raw JSON Data
{
  "trx_id": "6f58de69b86738c8c91659084f64e0461b1ec6bb",
  "block": 79852412,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2023-11-13T18:49:39",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "fblife",
      "vesting_shares": "4780.898849 VESTS"
    }
  ]
}
steemdelegated 4.740 SP to @fblife
2023/09/21 21:49:30
delegatorsteem
delegateefblife
vesting shares7718.177635 VESTS
Transaction InfoBlock #78347821/Trx c821db33c186df0abf7b464343347f07e8ad1c47
View Raw JSON Data
{
  "trx_id": "c821db33c186df0abf7b464343347f07e8ad1c47",
  "block": 78347821,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2023-09-21T21:49:30",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "fblife",
      "vesting_shares": "7718.177635 VESTS"
    }
  ]
}
ldsn001upvoted (50.00%) @fblife / 4uslux
2022/11/08 11:52:30
voterldsn001
authorfblife
permlink4uslux
weight5000 (50.00%)
Transaction InfoBlock #69256777/Trx 2ed3f3bdbffaecf9d28c5cccd41269e62144606b
View Raw JSON Data
{
  "trx_id": "2ed3f3bdbffaecf9d28c5cccd41269e62144606b",
  "block": 69256777,
  "trx_in_block": 4,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-11-08T11:52:30",
  "op": [
    "vote",
    {
      "voter": "ldsn001",
      "author": "fblife",
      "permlink": "4uslux",
      "weight": 5000
    }
  ]
}
ldsn001upvoted (50.00%) @fblife / go-ethereum
2022/11/08 08:46:36
voterldsn001
authorfblife
permlinkgo-ethereum
weight5000 (50.00%)
Transaction InfoBlock #69253096/Trx d7a2b5e0e8d052b122f8534471d71592e863a41d
View Raw JSON Data
{
  "trx_id": "d7a2b5e0e8d052b122f8534471d71592e863a41d",
  "block": 69253096,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-11-08T08:46:36",
  "op": [
    "vote",
    {
      "voter": "ldsn001",
      "author": "fblife",
      "permlink": "go-ethereum",
      "weight": 5000
    }
  ]
}
ldsn001upvoted (50.00%) @fblife / 4ukgc3
2022/11/08 04:56:18
voterldsn001
authorfblife
permlink4ukgc3
weight5000 (50.00%)
Transaction InfoBlock #69248540/Trx 6574332112d83f5e8a78ac25e6e0ad2fe8d260b8
View Raw JSON Data
{
  "trx_id": "6574332112d83f5e8a78ac25e6e0ad2fe8d260b8",
  "block": 69248540,
  "trx_in_block": 6,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-11-08T04:56:18",
  "op": [
    "vote",
    {
      "voter": "ldsn001",
      "author": "fblife",
      "permlink": "4ukgc3",
      "weight": 5000
    }
  ]
}
ldsn001upvoted (50.00%) @fblife / elf
2022/11/06 23:44:45
voterldsn001
authorfblife
permlinkelf
weight5000 (50.00%)
Transaction InfoBlock #69213659/Trx 73b38c17b49104cec34affec5126a40f14611559
View Raw JSON Data
{
  "trx_id": "73b38c17b49104cec34affec5126a40f14611559",
  "block": 69213659,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-11-06T23:44:45",
  "op": [
    "vote",
    {
      "voter": "ldsn001",
      "author": "fblife",
      "permlink": "elf",
      "weight": 5000
    }
  ]
}
ldsn001upvoted (50.00%) @fblife / 4i9tj1
2022/11/06 17:25:57
voterldsn001
authorfblife
permlink4i9tj1
weight5000 (50.00%)
Transaction InfoBlock #69206117/Trx 282eb4d93745af3a208ae3dd305b2e0285b17db2
View Raw JSON Data
{
  "trx_id": "282eb4d93745af3a208ae3dd305b2e0285b17db2",
  "block": 69206117,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-11-06T17:25:57",
  "op": [
    "vote",
    {
      "voter": "ldsn001",
      "author": "fblife",
      "permlink": "4i9tj1",
      "weight": 5000
    }
  ]
}
ldsn001upvoted (50.00%) @fblife / u3pza-2018
2022/11/06 13:22:57
voterldsn001
authorfblife
permlinku3pza-2018
weight5000 (50.00%)
Transaction InfoBlock #69201281/Trx 48441d6d3557682b13469a65ea22c71a4d4e333e
View Raw JSON Data
{
  "trx_id": "48441d6d3557682b13469a65ea22c71a4d4e333e",
  "block": 69201281,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-11-06T13:22:57",
  "op": [
    "vote",
    {
      "voter": "ldsn001",
      "author": "fblife",
      "permlink": "u3pza-2018",
      "weight": 5000
    }
  ]
}
ldsn001upvoted (50.00%) @fblife / hygnt-2018
2022/11/06 08:51:54
voterldsn001
authorfblife
permlinkhygnt-2018
weight5000 (50.00%)
Transaction InfoBlock #69195883/Trx a1e8f85b19ac3f31cd94912202e5a227bcd3ba25
View Raw JSON Data
{
  "trx_id": "a1e8f85b19ac3f31cd94912202e5a227bcd3ba25",
  "block": 69195883,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-11-06T08:51:54",
  "op": [
    "vote",
    {
      "voter": "ldsn001",
      "author": "fblife",
      "permlink": "hygnt-2018",
      "weight": 5000
    }
  ]
}
ldsn001upvoted (50.00%) @fblife / 2018-pro
2022/11/06 05:00:27
voterldsn001
authorfblife
permlink2018-pro
weight5000 (50.00%)
Transaction InfoBlock #69191274/Trx ea5e1666edba558fd76337e13f008c266f47662a
View Raw JSON Data
{
  "trx_id": "ea5e1666edba558fd76337e13f008c266f47662a",
  "block": 69191274,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-11-06T05:00:27",
  "op": [
    "vote",
    {
      "voter": "ldsn001",
      "author": "fblife",
      "permlink": "2018-pro",
      "weight": 5000
    }
  ]
}
ldsn001upvoted (50.00%) @fblife / 4fse4y
2022/11/06 00:39:15
voterldsn001
authorfblife
permlink4fse4y
weight5000 (50.00%)
Transaction InfoBlock #69186070/Trx 1710cbfc2d20617a526f4f29cb31144bc19ecc0d
View Raw JSON Data
{
  "trx_id": "1710cbfc2d20617a526f4f29cb31144bc19ecc0d",
  "block": 69186070,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-11-06T00:39:15",
  "op": [
    "vote",
    {
      "voter": "ldsn001",
      "author": "fblife",
      "permlink": "4fse4y",
      "weight": 5000
    }
  ]
}
ldsn001upvoted (50.00%) @fblife / 3fqfwg
2022/11/05 21:47:00
voterldsn001
authorfblife
permlink3fqfwg
weight5000 (50.00%)
Transaction InfoBlock #69182636/Trx 5f6e34856deddf3b2b18b7ec3c0c13f78e108f4d
View Raw JSON Data
{
  "trx_id": "5f6e34856deddf3b2b18b7ec3c0c13f78e108f4d",
  "block": 69182636,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-11-05T21:47:00",
  "op": [
    "vote",
    {
      "voter": "ldsn001",
      "author": "fblife",
      "permlink": "3fqfwg",
      "weight": 5000
    }
  ]
}
2022/11/05 21:46:24
voterldsn001
authorfblife
permlink6tzzmx-steemitcn-com
weight5000 (50.00%)
Transaction InfoBlock #69182624/Trx 37907a9738c16ec1d02073526a8a41a6f1d21ff6
View Raw JSON Data
{
  "trx_id": "37907a9738c16ec1d02073526a8a41a6f1d21ff6",
  "block": 69182624,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-11-05T21:46:24",
  "op": [
    "vote",
    {
      "voter": "ldsn001",
      "author": "fblife",
      "permlink": "6tzzmx-steemitcn-com",
      "weight": 5000
    }
  ]
}
ldsn001upvoted (50.00%) @fblife / 5qdapj-2018
2022/11/05 20:56:57
voterldsn001
authorfblife
permlink5qdapj-2018
weight5000 (50.00%)
Transaction InfoBlock #69181641/Trx b3f5a6344b6e8b1a68c42def8bcbddff98cc091c
View Raw JSON Data
{
  "trx_id": "b3f5a6344b6e8b1a68c42def8bcbddff98cc091c",
  "block": 69181641,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-11-05T20:56:57",
  "op": [
    "vote",
    {
      "voter": "ldsn001",
      "author": "fblife",
      "permlink": "5qdapj-2018",
      "weight": 5000
    }
  ]
}
ldsn001upvoted (50.00%) @fblife / steemitcn-com
2022/11/05 19:58:18
voterldsn001
authorfblife
permlinksteemitcn-com
weight5000 (50.00%)
Transaction InfoBlock #69180474/Trx 5753b76b0bba3685eb8e69a06dbc365a4a9d7ab6
View Raw JSON Data
{
  "trx_id": "5753b76b0bba3685eb8e69a06dbc365a4a9d7ab6",
  "block": 69180474,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-11-05T19:58:18",
  "op": [
    "vote",
    {
      "voter": "ldsn001",
      "author": "fblife",
      "permlink": "steemitcn-com",
      "weight": 5000
    }
  ]
}
ldsn001upvoted (50.00%) @fblife / 5axlqs
2022/11/05 19:45:15
voterldsn001
authorfblife
permlink5axlqs
weight5000 (50.00%)
Transaction InfoBlock #69180214/Trx 65e62e657ebe6d7a89c609260969af62623e116b
View Raw JSON Data
{
  "trx_id": "65e62e657ebe6d7a89c609260969af62623e116b",
  "block": 69180214,
  "trx_in_block": 10,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-11-05T19:45:15",
  "op": [
    "vote",
    {
      "voter": "ldsn001",
      "author": "fblife",
      "permlink": "5axlqs",
      "weight": 5000
    }
  ]
}
ldsn001upvoted (50.00%) @fblife / dbxes-2018
2022/11/05 19:17:24
voterldsn001
authorfblife
permlinkdbxes-2018
weight5000 (50.00%)
Transaction InfoBlock #69179659/Trx 0e4999d74af9f95b94550ecabf5376c1f6971e10
View Raw JSON Data
{
  "trx_id": "0e4999d74af9f95b94550ecabf5376c1f6971e10",
  "block": 69179659,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-11-05T19:17:24",
  "op": [
    "vote",
    {
      "voter": "ldsn001",
      "author": "fblife",
      "permlink": "dbxes-2018",
      "weight": 5000
    }
  ]
}
ldsn001upvoted (50.00%) @fblife / 4prhgw-2018
2022/11/05 19:13:42
voterldsn001
authorfblife
permlink4prhgw-2018
weight5000 (50.00%)
Transaction InfoBlock #69179585/Trx 70e588d73df97d51a5d75d28871b8ffbd92e5ba4
View Raw JSON Data
{
  "trx_id": "70e588d73df97d51a5d75d28871b8ffbd92e5ba4",
  "block": 69179585,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-11-05T19:13:42",
  "op": [
    "vote",
    {
      "voter": "ldsn001",
      "author": "fblife",
      "permlink": "4prhgw-2018",
      "weight": 5000
    }
  ]
}
ldsn001upvoted (50.00%) @fblife / 23tkqa
2022/11/05 17:47:48
voterldsn001
authorfblife
permlink23tkqa
weight5000 (50.00%)
Transaction InfoBlock #69177879/Trx d4650de6c0124ff9d62455f4abe773a93aa0eb0e
View Raw JSON Data
{
  "trx_id": "d4650de6c0124ff9d62455f4abe773a93aa0eb0e",
  "block": 69177879,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-11-05T17:47:48",
  "op": [
    "vote",
    {
      "voter": "ldsn001",
      "author": "fblife",
      "permlink": "23tkqa",
      "weight": 5000
    }
  ]
}
ldsn001upvoted (50.00%) @fblife / 2017-2018
2022/11/05 17:06:36
voterldsn001
authorfblife
permlink2017-2018
weight5000 (50.00%)
Transaction InfoBlock #69177058/Trx 705879fdca8108600877758d83e5bc951e397f99
View Raw JSON Data
{
  "trx_id": "705879fdca8108600877758d83e5bc951e397f99",
  "block": 69177058,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-11-05T17:06:36",
  "op": [
    "vote",
    {
      "voter": "ldsn001",
      "author": "fblife",
      "permlink": "2017-2018",
      "weight": 5000
    }
  ]
}
ldsn001upvoted (50.00%) @fblife / 7
2022/11/05 16:43:45
voterldsn001
authorfblife
permlink7
weight5000 (50.00%)
Transaction InfoBlock #69176603/Trx bc6af72791d5dbe3056ea7f7bc90a439e77e40b9
View Raw JSON Data
{
  "trx_id": "bc6af72791d5dbe3056ea7f7bc90a439e77e40b9",
  "block": 69176603,
  "trx_in_block": 6,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-11-05T16:43:45",
  "op": [
    "vote",
    {
      "voter": "ldsn001",
      "author": "fblife",
      "permlink": "7",
      "weight": 5000
    }
  ]
}
ldsn001upvoted (50.00%) @fblife / rrcoin-19-63
2022/11/05 16:43:33
voterldsn001
authorfblife
permlinkrrcoin-19-63
weight5000 (50.00%)
Transaction InfoBlock #69176599/Trx 9ef1187dbfb381a32468b8297182a48ddcc453d4
View Raw JSON Data
{
  "trx_id": "9ef1187dbfb381a32468b8297182a48ddcc453d4",
  "block": 69176599,
  "trx_in_block": 3,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-11-05T16:43:33",
  "op": [
    "vote",
    {
      "voter": "ldsn001",
      "author": "fblife",
      "permlink": "rrcoin-19-63",
      "weight": 5000
    }
  ]
}
steemdelegated 4.876 SP to @fblife
2022/11/03 11:37:24
delegatorsteem
delegateefblife
vesting shares7939.859073 VESTS
Transaction InfoBlock #69113164/Trx 850d972d8e815637c30c11aa4f96596eb7d4c7c9
View Raw JSON Data
{
  "trx_id": "850d972d8e815637c30c11aa4f96596eb7d4c7c9",
  "block": 69113164,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-11-03T11:37:24",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "fblife",
      "vesting_shares": "7939.859073 VESTS"
    }
  ]
}
steemdelegated 5.011 SP to @fblife
2022/01/17 10:53:39
delegatorsteem
delegateefblife
vesting shares8160.392304 VESTS
Transaction InfoBlock #60809337/Trx dd9538795c5965d49fc0cb5d64d5fd1a62387f94
View Raw JSON Data
{
  "trx_id": "dd9538795c5965d49fc0cb5d64d5fd1a62387f94",
  "block": 60809337,
  "trx_in_block": 14,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2022-01-17T10:53:39",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "fblife",
      "vesting_shares": "8160.392304 VESTS"
    }
  ]
}
steemdelegated 5.124 SP to @fblife
2021/06/14 00:49:03
delegatorsteem
delegateefblife
vesting shares8344.160962 VESTS
Transaction InfoBlock #54607728/Trx 38dfacdcfe16c62c3742c5fbf28f7103f2b411cd
View Raw JSON Data
{
  "trx_id": "38dfacdcfe16c62c3742c5fbf28f7103f2b411cd",
  "block": 54607728,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2021-06-14T00:49:03",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "fblife",
      "vesting_shares": "8344.160962 VESTS"
    }
  ]
}
steemdelegated 5.239 SP to @fblife
2020/12/11 11:07:39
delegatorsteem
delegateefblife
vesting shares8531.582936 VESTS
Transaction InfoBlock #49355182/Trx cfd43d903befb1d68a1490a984a3833690af61f8
View Raw JSON Data
{
  "trx_id": "cfd43d903befb1d68a1490a984a3833690af61f8",
  "block": 49355182,
  "trx_in_block": 7,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-12-11T11:07:39",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "fblife",
      "vesting_shares": "8531.582936 VESTS"
    }
  ]
}
steemdelegated 1.174 SP to @fblife
2020/12/06 04:45:00
delegatorsteem
delegateefblife
vesting shares1912.543513 VESTS
Transaction InfoBlock #49206750/Trx be110e28b9de9d2f2bd9a47989f4422a02882392
View Raw JSON Data
{
  "trx_id": "be110e28b9de9d2f2bd9a47989f4422a02882392",
  "block": 49206750,
  "trx_in_block": 0,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-12-06T04:45:00",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "fblife",
      "vesting_shares": "1912.543513 VESTS"
    }
  ]
}
steemdelegated 5.243 SP to @fblife
2020/12/05 14:45:51
delegatorsteem
delegateefblife
vesting shares8537.790790 VESTS
Transaction InfoBlock #49190280/Trx cc2fae2c0a5f28867fa586886f0c8dcda27e0019
View Raw JSON Data
{
  "trx_id": "cc2fae2c0a5f28867fa586886f0c8dcda27e0019",
  "block": 49190280,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-12-05T14:45:51",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "fblife",
      "vesting_shares": "8537.790790 VESTS"
    }
  ]
}
steemdelegated 1.179 SP to @fblife
2020/11/02 15:39:12
delegatorsteem
delegateefblife
vesting shares1920.017158 VESTS
Transaction InfoBlock #48257817/Trx b02aba5137b886984e59f573e83922e203cb421b
View Raw JSON Data
{
  "trx_id": "b02aba5137b886984e59f573e83922e203cb421b",
  "block": 48257817,
  "trx_in_block": 8,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-11-02T15:39:12",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "fblife",
      "vesting_shares": "1920.017158 VESTS"
    }
  ]
}
steemdelegated 5.368 SP to @fblife
2020/05/09 05:42:15
delegatorsteem
delegateefblife
vesting shares8740.596149 VESTS
Transaction InfoBlock #43216995/Trx 01915275b108ec3ce9598cbdcf8c367925b3f4fe
View Raw JSON Data
{
  "trx_id": "01915275b108ec3ce9598cbdcf8c367925b3f4fe",
  "block": 43216995,
  "trx_in_block": 7,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-05-09T05:42:15",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "fblife",
      "vesting_shares": "8740.596149 VESTS"
    }
  ]
}
steemdelegated 1.200 SP to @fblife
2020/05/08 09:18:21
delegatorsteem
delegateefblife
vesting shares1953.311140 VESTS
Transaction InfoBlock #43193091/Trx 64c18d719e65f6e7f1cdb2e4920a507e61a21073
View Raw JSON Data
{
  "trx_id": "64c18d719e65f6e7f1cdb2e4920a507e61a21073",
  "block": 43193091,
  "trx_in_block": 6,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2020-05-08T09:18:21",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "fblife",
      "vesting_shares": "1953.311140 VESTS"
    }
  ]
}
2019/12/15 04:22:18
parent authorfblife
parent permlinkapp
authorsteemitboard
permlinksteemitboard-notify-fblife-20191215t042218000z
title
bodyCongratulations @fblife! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@fblife/birthday2.png</td><td>Happy Birthday! - You are on the Steem blockchain for 2 years!</td></tr></table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@fblife) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=fblife)_</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 #39048853/Trx b3de7bb4be4180d5cc645c834e353a2dffdd83cb
View Raw JSON Data
{
  "trx_id": "b3de7bb4be4180d5cc645c834e353a2dffdd83cb",
  "block": 39048853,
  "trx_in_block": 7,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-12-15T04:22:18",
  "op": [
    "comment",
    {
      "parent_author": "fblife",
      "parent_permlink": "app",
      "author": "steemitboard",
      "permlink": "steemitboard-notify-fblife-20191215t042218000z",
      "title": "",
      "body": "Congratulations @fblife! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@fblife/birthday2.png</td><td>Happy Birthday! - You are on the Steem blockchain for 2 years!</td></tr></table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@fblife) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=fblife)_</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 5.476 SP to @fblife
2019/07/05 18:54:18
delegatorsteem
delegateefblife
vesting shares8917.733699 VESTS
Transaction InfoBlock #34403564/Trx 67b415d05426831ad1e57c379bdc4bc0363568b1
View Raw JSON Data
{
  "trx_id": "67b415d05426831ad1e57c379bdc4bc0363568b1",
  "block": 34403564,
  "trx_in_block": 46,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2019-07-05T18:54:18",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "fblife",
      "vesting_shares": "8917.733699 VESTS"
    }
  ]
}
2018/12/15 04:01:03
parent authorfblife
parent permlinkapp
authorsteemitboard
permlinksteemitboard-notify-fblife-20181215t040102000z
title
bodyCongratulations @fblife! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@fblife/birthday1.png</td><td>1 Year on Steemit</td></tr></table> <sub>_[Click here to view your Board of Honor](https://steemitboard.com/@fblife)_</sub> > Support [SteemitBoard's project](https://steemit.com/@steemitboard)! **[Vote for its witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1)** and **get one more award**!
json metadata{"image":["https://steemitboard.com/img/notify.png"]}
Transaction InfoBlock #28574686/Trx 45b67ce9070bfd50b1b871011943a596d90541d2
View Raw JSON Data
{
  "trx_id": "45b67ce9070bfd50b1b871011943a596d90541d2",
  "block": 28574686,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-12-15T04:01:03",
  "op": [
    "comment",
    {
      "parent_author": "fblife",
      "parent_permlink": "app",
      "author": "steemitboard",
      "permlink": "steemitboard-notify-fblife-20181215t040102000z",
      "title": "",
      "body": "Congratulations @fblife! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@fblife/birthday1.png</td><td>1 Year on Steemit</td></tr></table>\n\n<sub>_[Click here to view your Board of Honor](https://steemitboard.com/@fblife)_</sub>\n\n\n> Support [SteemitBoard's project](https://steemit.com/@steemitboard)! **[Vote for its witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1)** and **get one more award**!",
      "json_metadata": "{\"image\":[\"https://steemitboard.com/img/notify.png\"]}"
    }
  ]
}
2018/08/02 06:15:39
parent authorfblife
parent permlinkapp
authorlucaslee
permlinkre-fblife-app-20180802t061430651z
title
bodyMy invitation code: 1716942 Come join FCoin Fire Bull video, the first "reward mining + income dividend + repurchase destruction" mode; Daily share of 1.36 million FB = RMB my invitation code: 1716942! Dividends are now available to receive Alipay daily for withdrawal! The real gold and silver speed is added! Download now: http://www.duipai.tv/static/firebull/share-download.html? roomId = 1716942 我的邀请码:1716942快来加入FCoin火牛视频,首创“打赏挖矿+收入分红+回购销毁”模式; 每日瓜分136万FB =人民币我的邀请码:1716942!现已开启分红每日领取支付宝可提取!实实在在的真金白银速度加入! 马上下载:http://www.duipai.tv/static/firebull/share-download.html?roomId = 1716942
json metadata{"tags":["fengchao"],"links":["http://www.duipai.tv/static/firebull/share-download.html?"],"app":"steemit/0.1"}
Transaction InfoBlock #24707361/Trx 2488be8c420ae7a3587772cb1d35a36939f868a0
View Raw JSON Data
{
  "trx_id": "2488be8c420ae7a3587772cb1d35a36939f868a0",
  "block": 24707361,
  "trx_in_block": 45,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-08-02T06:15:39",
  "op": [
    "comment",
    {
      "parent_author": "fblife",
      "parent_permlink": "app",
      "author": "lucaslee",
      "permlink": "re-fblife-app-20180802t061430651z",
      "title": "",
      "body": "My invitation code: 1716942 Come join FCoin Fire Bull video, the first \"reward mining + income dividend + repurchase destruction\" mode;\nDaily share of 1.36 million FB = RMB my invitation code: 1716942! Dividends are now available to receive Alipay daily for withdrawal! The real gold and silver speed is added!\nDownload now: http://www.duipai.tv/static/firebull/share-download.html? roomId = 1716942\n我的邀请码:1716942快来加入FCoin火牛视频,首创“打赏挖矿+收入分红+回购销毁”模式; \n每日瓜分136万FB =人民币我的邀请码:1716942!现已开启分红每日领取支付宝可提取!实实在在的真金白银速度加入!\n马上下载:http://www.duipai.tv/static/firebull/share-download.html?roomId = 1716942",
      "json_metadata": "{\"tags\":[\"fengchao\"],\"links\":[\"http://www.duipai.tv/static/firebull/share-download.html?\"],\"app\":\"steemit/0.1\"}"
    }
  ]
}
2018/08/02 06:14:33
parent authorfblife
parent permlinkapp
authorlucaslee
permlinkre-fblife-app-20180802t061430651z
title
bodyMy invitation code: 1716942 Come join FCoin Fire Bull video, the first "reward mining + income dividend + repurchase destruction" mode; Daily share of 1.36 million FB = RMB my invitation code: 1716942! Dividends are now available to receive Alipay daily for withdrawal! The real gold and silver speed is added! Download now: http://www.duipai.tv/static/firebull/share-download.html? roomId = 1716942 我的邀请码:1716942快来加入FCoin火牛视频,首创“打赏挖矿+收入分红+回购销毁”模式; 每日瓜分136万FB =人民币我的邀请码:1716942!现已开启分红每日领取支付宝可提取!实实在在的真金白银速度加入! 马上下载:http://www.duipai.tv/static/firebull/share-download.html?roomId = 1716942
json metadata{"tags":["fengchao"],"links":["http://www.duipai.tv/static/firebull/share-download.html?"],"app":"steemit/0.1"}
Transaction InfoBlock #24707339/Trx f04a8ac42c827405f90c45a662326460e41161f8
View Raw JSON Data
{
  "trx_id": "f04a8ac42c827405f90c45a662326460e41161f8",
  "block": 24707339,
  "trx_in_block": 14,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-08-02T06:14:33",
  "op": [
    "comment",
    {
      "parent_author": "fblife",
      "parent_permlink": "app",
      "author": "lucaslee",
      "permlink": "re-fblife-app-20180802t061430651z",
      "title": "",
      "body": "My invitation code: 1716942 Come join FCoin Fire Bull video, the first \"reward mining + income dividend + repurchase destruction\" mode;\nDaily share of 1.36 million FB = RMB my invitation code: 1716942! Dividends are now available to receive Alipay daily for withdrawal! The real gold and silver speed is added!\nDownload now: http://www.duipai.tv/static/firebull/share-download.html? roomId = 1716942\n我的邀请码:1716942快来加入FCoin火牛视频,首创“打赏挖矿+收入分红+回购销毁”模式; \n每日瓜分136万FB =人民币我的邀请码:1716942!现已开启分红每日领取支付宝可提取!实实在在的真金白银速度加入!\n马上下载:http://www.duipai.tv/static/firebull/share-download.html?roomId = 1716942",
      "json_metadata": "{\"tags\":[\"fengchao\"],\"links\":[\"http://www.duipai.tv/static/firebull/share-download.html?\"],\"app\":\"steemit/0.1\"}"
    }
  ]
}
2018/07/21 17:04:36
parent authorfblife
parent permlinkeos-eth
authorlucid
permlinkre-fblife-eos-eth-20180721t170340962z
title
body政府很善意,善意得要蒙上你的眼睛和耳朵了。
json metadata{"tags":["cn"],"app":"steemit/0.1"}
Transaction InfoBlock #24375403/Trx b7bc2153c13d7838802813d81133ca4c244db117
View Raw JSON Data
{
  "trx_id": "b7bc2153c13d7838802813d81133ca4c244db117",
  "block": 24375403,
  "trx_in_block": 11,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-07-21T17:04:36",
  "op": [
    "comment",
    {
      "parent_author": "fblife",
      "parent_permlink": "eos-eth",
      "author": "lucid",
      "permlink": "re-fblife-eos-eth-20180721t170340962z",
      "title": "",
      "body": "政府很善意,善意得要蒙上你的眼睛和耳朵了。",
      "json_metadata": "{\"tags\":[\"cn\"],\"app\":\"steemit/0.1\"}"
    }
  ]
}
steemdelegated 5.598 SP to @fblife
2018/07/16 08:26:51
delegatorsteem
delegateefblife
vesting shares9116.635743 VESTS
Transaction InfoBlock #24221161/Trx 9365327973ff346faa7a7b9d6c2508b026f81642
View Raw JSON Data
{
  "trx_id": "9365327973ff346faa7a7b9d6c2508b026f81642",
  "block": 24221161,
  "trx_in_block": 15,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-07-16T08:26:51",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "fblife",
      "vesting_shares": "9116.635743 VESTS"
    }
  ]
}
2018/06/09 05:40:21
parent authorfblife
parent permlinkdapp
authorpaperhs
permlinkre-fblife-dapp-20180609t054019206z
title
bodysteemit上代码看起来好难受
json metadata{"tags":["cn"],"app":"steemit/0.1"}
Transaction InfoBlock #23162973/Trx 4b3ad62a1b410e60c5e0e7a3360862f8daff8020
View Raw JSON Data
{
  "trx_id": "4b3ad62a1b410e60c5e0e7a3360862f8daff8020",
  "block": 23162973,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-06-09T05:40:21",
  "op": [
    "comment",
    {
      "parent_author": "fblife",
      "parent_permlink": "dapp",
      "author": "paperhs",
      "permlink": "re-fblife-dapp-20180609t054019206z",
      "title": "",
      "body": "steemit上代码看起来好难受",
      "json_metadata": "{\"tags\":[\"cn\"],\"app\":\"steemit/0.1\"}"
    }
  ]
}
steemdelegated 18.124 SP to @fblife
2018/05/06 06:22:51
delegatorsteem
delegateefblife
vesting shares29513.914329 VESTS
Transaction InfoBlock #22185206/Trx aabe278c1f91eeb7f7a2ba884481516f6cb27943
View Raw JSON Data
{
  "trx_id": "aabe278c1f91eeb7f7a2ba884481516f6cb27943",
  "block": 22185206,
  "trx_in_block": 56,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-05-06T06:22:51",
  "op": [
    "delegate_vesting_shares",
    {
      "delegator": "steem",
      "delegatee": "fblife",
      "vesting_shares": "29513.914329 VESTS"
    }
  ]
}
2018/04/17 02:40:00
parent authorfblife
parent permlink4uslux
authorjimi2018
permlinkre-fblife-4uslux-20180417t024229430z
title
body谢谢楼主分享!推荐一个区块链新手入门的以太坊DApp开发教程: http://xc.hubwiz.com/course/5a952991adb3847553d205d1?affid=20180417steemit
json metadata{"tags":["cn"],"links":["http://xc.hubwiz.com/course/5a952991adb3847553d205d1?affid=20180417steemit"],"app":"steemit/0.1"}
Transaction InfoBlock #21634314/Trx 38c0fd21dc7a144de9f7d9e742bbf326c25e6ceb
View Raw JSON Data
{
  "trx_id": "38c0fd21dc7a144de9f7d9e742bbf326c25e6ceb",
  "block": 21634314,
  "trx_in_block": 1,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-17T02:40:00",
  "op": [
    "comment",
    {
      "parent_author": "fblife",
      "parent_permlink": "4uslux",
      "author": "jimi2018",
      "permlink": "re-fblife-4uslux-20180417t024229430z",
      "title": "",
      "body": "谢谢楼主分享!推荐一个区块链新手入门的以太坊DApp开发教程:\nhttp://xc.hubwiz.com/course/5a952991adb3847553d205d1?affid=20180417steemit",
      "json_metadata": "{\"tags\":[\"cn\"],\"links\":[\"http://xc.hubwiz.com/course/5a952991adb3847553d205d1?affid=20180417steemit\"],\"app\":\"steemit/0.1\"}"
    }
  ]
}
fblifepublished a new post: app
2018/04/16 03:16:30
parent author
parent permlinkfengchao
authorfblife
permlinkapp
title“蜂巢星球”,无需下载APP,手机即可挖矿
body<html> <p>蜂巢星球,基于用户贡献经济的价值平台。</p> <p>我们的宗旨:让价值贡献者得到真正的价值。</p> <p>在互联网上,我们每个人都在无时不刻产生各种行为,这些都是个人的重要数据资产,但是这些资产在过去并不曾被个体重视。而今蜂巢星球为您构建星球居民身份,帮助您利用这些资产,同时发现更深层的价值,使得个人信息价值得以公平公正的体现。<br> </p> <p><img src="http://img4.fblife.com/Fq2mXNH56UtrKhbMRDOLwabVIyOa?imageView2/2/w/728/q/100" width="258" height="258"/></p> <p><br> 什么是燃料</p> <p> 燃料是用户挖矿的奖励,每次挖矿都会获得不同数量的燃料,不同的地点产生的燃料值也不同,地点的热度是燃料值的一个重要因素。</p> <p> 燃料可以提升用户获取F币的数量。</p> <p><br></p> <p>什么是F币</p> <p> F币是一种特殊的价值币,也是用户挖矿的奖励,F币可用于星球上的消费和兑换等</p> <p> 用户拥有的燃料值影响F币的产出,燃料值越多获得的F币越多。</p> <p> </p> <p> F币总量有限(21亿),F币每年产量固定,且逐年递减,9年后F币不在产出。随着时间的推移获取难度越来越大,因此前期参与更有优势。</p> <p><br></p> <p> 假设每日发放F币总数为 X</p> <p> 用户每日获取F币数量 = X * (用户的燃料值/所有用户的总燃料值)</p> <p><br></p> <p>关于星球车</p> <p> 星球车说明</p> <p> 每辆汽车都独一无二的基因,即完全不同的车牌编码,可以通过车牌来识别唯一的车辆。</p> <p> 星球车同时有两种不同的属性:普通属性+改装属性。这8个改装属性确定车的等级:普通、稀有、卓越、史诗、神话、传说。</p> <p> </p> <p> 如何得到</p> <p> 用户挖矿会随机获得星球车,不同的时间、地点、用户信息获取的星球车也不相同。</p> <p> 系统每产出100个F币会生成一辆星球车。</p> <p><br></p> <p> 怎么玩儿</p> <p> 用户挖到星球车后,可以出售。</p> <p> 在市场上可以通过F币买到心仪的星球车。<br> </p> <p> 特别提示:</p> <p> 星球车作为一种稀有资源,请谨慎交易。</p> <p><br></p> </html>
json metadata{"tags":["fengchao","fengchaoxingqiu","dapp","wakuang","blockchain"],"image":["http://img4.fblife.com/Fq2mXNH56UtrKhbMRDOLwabVIyOa?imageView2/2/w/728/q/100"],"app":"steemit/0.1","format":"html"}
Transaction InfoBlock #21606247/Trx 4b1384b4490bc480f4fb95c7f63499c88ca23b48
View Raw JSON Data
{
  "trx_id": "4b1384b4490bc480f4fb95c7f63499c88ca23b48",
  "block": 21606247,
  "trx_in_block": 19,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-04-16T03:16:30",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "fengchao",
      "author": "fblife",
      "permlink": "app",
      "title": "“蜂巢星球”,无需下载APP,手机即可挖矿",
      "body": "<html>\n<p>蜂巢星球,基于用户贡献经济的价值平台。</p>\n<p>我们的宗旨:让价值贡献者得到真正的价值。</p>\n<p>在互联网上,我们每个人都在无时不刻产生各种行为,这些都是个人的重要数据资产,但是这些资产在过去并不曾被个体重视。而今蜂巢星球为您构建星球居民身份,帮助您利用这些资产,同时发现更深层的价值,使得个人信息价值得以公平公正的体现。<br>\n</p>\n<p><img src=\"http://img4.fblife.com/Fq2mXNH56UtrKhbMRDOLwabVIyOa?imageView2/2/w/728/q/100\" width=\"258\" height=\"258\"/></p>\n<p><br>\n什么是燃料</p>\n<p>\t燃料是用户挖矿的奖励,每次挖矿都会获得不同数量的燃料,不同的地点产生的燃料值也不同,地点的热度是燃料值的一个重要因素。</p>\n<p>\t燃料可以提升用户获取F币的数量。</p>\n<p><br></p>\n<p>什么是F币</p>\n<p>\tF币是一种特殊的价值币,也是用户挖矿的奖励,F币可用于星球上的消费和兑换等</p>\n<p>\t用户拥有的燃料值影响F币的产出,燃料值越多获得的F币越多。</p>\n<p>\t</p>\n<p>\tF币总量有限(21亿),F币每年产量固定,且逐年递减,9年后F币不在产出。随着时间的推移获取难度越来越大,因此前期参与更有优势。</p>\n<p><br></p>\n<p>\t假设每日发放F币总数为 X</p>\n<p>\t用户每日获取F币数量 = X * (用户的燃料值/所有用户的总燃料值)</p>\n<p><br></p>\n<p>关于星球车</p>\n<p>\t星球车说明</p>\n<p>\t每辆汽车都独一无二的基因,即完全不同的车牌编码,可以通过车牌来识别唯一的车辆。</p>\n<p>\t星球车同时有两种不同的属性:普通属性+改装属性。这8个改装属性确定车的等级:普通、稀有、卓越、史诗、神话、传说。</p>\n<p>\t</p>\n<p>\t如何得到</p>\n<p>\t用户挖矿会随机获得星球车,不同的时间、地点、用户信息获取的星球车也不相同。</p>\n<p>\t系统每产出100个F币会生成一辆星球车。</p>\n<p><br></p>\n<p>\t怎么玩儿</p>\n<p>\t用户挖到星球车后,可以出售。</p>\n<p>\t在市场上可以通过F币买到心仪的星球车。<br>\n</p>\n<p>\t特别提示:</p>\n<p>\t星球车作为一种稀有资源,请谨慎交易。</p>\n<p><br></p>\n</html>",
      "json_metadata": "{\"tags\":[\"fengchao\",\"fengchaoxingqiu\",\"dapp\",\"wakuang\",\"blockchain\"],\"image\":[\"http://img4.fblife.com/Fq2mXNH56UtrKhbMRDOLwabVIyOa?imageView2/2/w/728/q/100\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
    }
  ]
}
2018/03/17 13:55:15
parent authorfblife
parent permlinkdapp
authorjimi2018
permlinkre-fblife-dapp-20180317t135722140z
title
body推荐一个适合新手的以太坊开发DApp教程: http://xc.hubwiz.com/course/5a952991adb3847553d205d1?affid=20180317steemit
json metadata{"tags":["cn"],"links":["http://xc.hubwiz.com/course/5a952991adb3847553d205d1?affid=20180317steemit"],"app":"steemit/0.1"}
Transaction InfoBlock #20756004/Trx 9af0934a6f74ee2cb4448ad812f4354feabafb45
View Raw JSON Data
{
  "trx_id": "9af0934a6f74ee2cb4448ad812f4354feabafb45",
  "block": 20756004,
  "trx_in_block": 11,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-17T13:55:15",
  "op": [
    "comment",
    {
      "parent_author": "fblife",
      "parent_permlink": "dapp",
      "author": "jimi2018",
      "permlink": "re-fblife-dapp-20180317t135722140z",
      "title": "",
      "body": "推荐一个适合新手的以太坊开发DApp教程:\nhttp://xc.hubwiz.com/course/5a952991adb3847553d205d1?affid=20180317steemit",
      "json_metadata": "{\"tags\":[\"cn\"],\"links\":[\"http://xc.hubwiz.com/course/5a952991adb3847553d205d1?affid=20180317steemit\"],\"app\":\"steemit/0.1\"}"
    }
  ]
}
2018/03/12 17:05:09
parent authorfblife
parent permlink4uslux
authorcnbuddy
permlinkre-fblife-4uslux-20180312t170508908z
title
body过年好!cn区点赞机器人 @cnbuddy 感谢你对cn区作出成长的贡献。倘若你不喜欢我的留言,请回复“取消”。
json metadata
Transaction InfoBlock #20615939/Trx f2ee143fe6440618b32a30d9c8183c1091e312df
View Raw JSON Data
{
  "trx_id": "f2ee143fe6440618b32a30d9c8183c1091e312df",
  "block": 20615939,
  "trx_in_block": 9,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-12T17:05:09",
  "op": [
    "comment",
    {
      "parent_author": "fblife",
      "parent_permlink": "4uslux",
      "author": "cnbuddy",
      "permlink": "re-fblife-4uslux-20180312t170508908z",
      "title": "",
      "body": "过年好!cn区点赞机器人 @cnbuddy 感谢你对cn区作出成长的贡献。倘若你不喜欢我的留言,请回复“取消”。",
      "json_metadata": ""
    }
  ]
}
fblifereceived 0.150 SBD, 0.075 SP author reward for @fblife / 4uslux
2018/03/11 12:05:12
authorfblife
permlink4uslux
sbd payout0.150 SBD
steem payout0.000 STEEM
vesting payout122.515393 VESTS
Transaction InfoBlock #20581192/Virtual Operation #34
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 20581192,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 34,
  "timestamp": "2018-03-11T12:05:12",
  "op": [
    "author_reward",
    {
      "author": "fblife",
      "permlink": "4uslux",
      "sbd_payout": "0.150 SBD",
      "steem_payout": "0.000 STEEM",
      "vesting_payout": "122.515393 VESTS"
    }
  ]
}
fblifereceived 0.013 SBD, 0.008 SP author reward for @fblife / dapp
2018/03/10 10:00:06
authorfblife
permlinkdapp
sbd payout0.013 SBD
steem payout0.000 STEEM
vesting payout12.252239 VESTS
Transaction InfoBlock #20549962/Virtual Operation #3
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 20549962,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 3,
  "timestamp": "2018-03-10T10:00:06",
  "op": [
    "author_reward",
    {
      "author": "fblife",
      "permlink": "dapp",
      "sbd_payout": "0.013 SBD",
      "steem_payout": "0.000 STEEM",
      "vesting_payout": "12.252239 VESTS"
    }
  ]
}
fblifereceived 0.079 SBD, 0.033 SP author reward for @fblife / go-ethereum
2018/03/08 09:14:21
authorfblife
permlinkgo-ethereum
sbd payout0.079 SBD
steem payout0.000 STEEM
vesting payout53.098712 VESTS
Transaction InfoBlock #20491514/Virtual Operation #12
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 20491514,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 12,
  "timestamp": "2018-03-08T09:14:21",
  "op": [
    "author_reward",
    {
      "author": "fblife",
      "permlink": "go-ethereum",
      "sbd_payout": "0.079 SBD",
      "steem_payout": "0.000 STEEM",
      "vesting_payout": "53.098712 VESTS"
    }
  ]
}
fblifereceived 0.010 SBD, 0.005 SP author reward for @fblife / 4ukgc3
2018/03/05 11:13:36
authorfblife
permlink4ukgc3
sbd payout0.010 SBD
steem payout0.000 STEEM
vesting payout8.170285 VESTS
Transaction InfoBlock #20407644/Virtual Operation #16
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 20407644,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 16,
  "timestamp": "2018-03-05T11:13:36",
  "op": [
    "author_reward",
    {
      "author": "fblife",
      "permlink": "4ukgc3",
      "sbd_payout": "0.010 SBD",
      "steem_payout": "0.000 STEEM",
      "vesting_payout": "8.170285 VESTS"
    }
  ]
}
skenanupvoted (48.00%) @fblife / 4uslux
2018/03/05 01:17:39
voterskenan
authorfblife
permlink4uslux
weight4800 (48.00%)
Transaction InfoBlock #20395727/Trx 6f033e626b09d59d8544aa6775cc797ae6ed2651
View Raw JSON Data
{
  "trx_id": "6f033e626b09d59d8544aa6775cc797ae6ed2651",
  "block": 20395727,
  "trx_in_block": 22,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-05T01:17:39",
  "op": [
    "vote",
    {
      "voter": "skenan",
      "author": "fblife",
      "permlink": "4uslux",
      "weight": 4800
    }
  ]
}
cnbuddyupvoted (0.10%) @fblife / 4uslux
2018/03/04 22:42:24
votercnbuddy
authorfblife
permlink4uslux
weight10 (0.10%)
Transaction InfoBlock #20392624/Trx 18529800feed372a9e8cc2d41ceae810797c719c
View Raw JSON Data
{
  "trx_id": "18529800feed372a9e8cc2d41ceae810797c719c",
  "block": 20392624,
  "trx_in_block": 22,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-04T22:42:24",
  "op": [
    "vote",
    {
      "voter": "cnbuddy",
      "author": "fblife",
      "permlink": "4uslux",
      "weight": 10
    }
  ]
}
songtiejunupvoted (10.00%) @fblife / 4uslux
2018/03/04 13:20:36
votersongtiejun
authorfblife
permlink4uslux
weight1000 (10.00%)
Transaction InfoBlock #20381391/Trx ba5ed4310e0f83647889b4b7aaafe1af33d93342
View Raw JSON Data
{
  "trx_id": "ba5ed4310e0f83647889b4b7aaafe1af33d93342",
  "block": 20381391,
  "trx_in_block": 18,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-04T13:20:36",
  "op": [
    "vote",
    {
      "voter": "songtiejun",
      "author": "fblife",
      "permlink": "4uslux",
      "weight": 1000
    }
  ]
}
2018/03/04 13:20:33
parent authorfblife
parent permlink4uslux
authorsongtiejun
permlinkre-fblife-4uslux-20180304t132030382z
title
body发行的代币在两个自己注册的账号之间转账,需要支付手续费吗
json metadata{"tags":["cn"],"app":"steemit/0.1"}
Transaction InfoBlock #20381390/Trx 5c171f130f0150585239e4f7c9aba5c955087b33
View Raw JSON Data
{
  "trx_id": "5c171f130f0150585239e4f7c9aba5c955087b33",
  "block": 20381390,
  "trx_in_block": 60,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-04T13:20:33",
  "op": [
    "comment",
    {
      "parent_author": "fblife",
      "parent_permlink": "4uslux",
      "author": "songtiejun",
      "permlink": "re-fblife-4uslux-20180304t132030382z",
      "title": "",
      "body": "发行的代币在两个自己注册的账号之间转账,需要支付手续费吗",
      "json_metadata": "{\"tags\":[\"cn\"],\"app\":\"steemit/0.1\"}"
    }
  ]
}
fblifepublished a new post: 4uslux
2018/03/04 12:05:12
parent author
parent permlinkcn
authorfblife
permlink4uslux
title以太坊开发:如何发行代币
body<html> <p><img src="https://steemitimages.com/0x0/https://steemit-production-imageproxy-thumbnail.s3.amazonaws.com/U5dtkiK8PQtxARgkc4GPFogPo9sg4dV_1680x8400" width="600" height="355"/></p> <p>本文的目的是创建一个我们自己的支持ERC-20标准的代币。</p> <p><br></p> <p>一、关键词</p> <p><br></p> <p>Truffle</p> <p>Truffle 是当前最活跃的 Ethereum 开发框架,具有调试、部署和测试智能合约等功能。此次建立加密代币的教程就是基于 Truffle 框架的开发。</p> <p><br></p> <p>ganache</p> <p>在开发阶段需要测试,ganache 可以模拟智能合约所需要的以太坊区块链测试环境。</p> <p>ganache 有桌面客户端以及命令行工具,本篇教程使用的是命令行工具搭配 Chrome 的 MetaMask 来进行测试。</p> <p><br></p> <p>OpenZeppelin</p> <p>Zeppelin是一种构建安全智能合约的开源架构,我们使用OpenZeppelin函数库来创建一个简易发币合约。</p> <p><br></p> <p>二、环境配置</p> <p><br></p> <p>$ npm install -g truffle</p> <p>$ npm install -g ganache-cli</p> <p><br></p> <p>三、初始化项目</p> <p><br></p> <p>$ mkdir coin-workspace</p> <p>$ cd coin-workspace</p> <p>$ truffle unbox tutorialtoken</p> <p><br></p> <p>在项目的根目录使用 npm 安装</p> <p>$ npm install zeppelin-solidity</p> <p><br></p> <p>四、运行ganache</p> <p><br></p> <p>在我们部署智能合约之前,首先需要有一个以太坊区块链测试环境。新开一个命令行工具,输入以下命令:</p> <p>$ ganache-cli</p> <p><br></p> <p>将会在本地生成以太坊区块链环境,会自动创建 10 个账号(Accounts),以及每个账号对应的私钥(Private Keys),每个账号中拥有 100 个测试用的以太币(Ether),我这里本地监听的端口是8454。</p> <p><br></p> <p>五、创建部署智能合约</p> <p><br></p> <p>1. 我们在contracts目录下新建一个 TutorialToken.sol 的文件(或者也可以用 truffle create contract TutorialToken.sol 命令来建立)。</p> <p>写入以下内容:</p> <p><br></p> <p>+++++++++++++++++++++++++++++</p> <p><br></p> <p>pragma solidity ^0.4.2; // 指明目前使用的solidity版本,不同版本可能会编译出不同的bytecode</p> <p><br></p> <p>import 'zeppelin-solidity/contracts/token/ERC20/StandardToken.sol';</p> <p><br></p> <p>// contract 关键字类似于其它语言的class。可以理解为TutorialToken继承了Contract类,具有智能合约的特性。is 关键字类型于其它语言的extends,TutorialToken 继承了 StandardToken 的属性及方法。</p> <p>contract TutorialToken is StandardToken {</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;string public name = 'DogToken'; &nbsp;&nbsp;&nbsp;&nbsp;// 设置代币名称</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;string public symbol = 'TT'; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 设置代币代号</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;uint8 public decimals = 2; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 设置代币最小交易单位(精度)</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;uint public INITIAL_SUPPLY = 10000; // 设置代币发行量</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;function TutorialToken() public {</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;totalSupply_ = INITIAL_SUPPLY; &nbsp;&nbsp;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;balances[msg.sender] = INITIAL_SUPPLY;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;}</p> <p>}</p> <p><br></p> <p>+++++++++++++++++++++++++++++</p> <p><br></p> <p>2. 在 migrations/ 目录下,我们可以看到 truffle 框架提供了方便部署合约的脚本。接下来我们创建 2_deploy_contracts.js 的文件。</p> <p>写入以下内容:</p> <p><br></p> <p>+++++++++++++++++++++++++++++</p> <p><br></p> <p>var TutorialToken = artifacts.require("TutorialToken");</p> <p><br></p> <p>module.exports = function(deployer) {</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;deployer.deploy(TutorialToken);</p> <p>};</p> <p><br></p> <p>+++++++++++++++++++++++++++++</p> <p><br></p> <p>3. 修改项目根目录的truffle.js文件</p> <p><br></p> <p>+++++++++++++++++++++++++++++</p> <p><br></p> <p>module.exports = {</p> <p>&nbsp;&nbsp;// See &lt;http://truffleframework.com/docs/advanced/configuration&gt;</p> <p>&nbsp;&nbsp;// for more about customizing your Truffle configuration!</p> <p>&nbsp;&nbsp;networks: {</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;development: {</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;host: "localhost",</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;port: 8545,</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;network_id: "*" // Match any network id</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;}</p> <p>&nbsp;&nbsp;}</p> <p>};</p> <p><br></p> <p>+++++++++++++++++++++++++++++</p> <p><br></p> <p>编译和部署智能合约</p> <p>$ truffle compile</p> <p>$ truffle migrate</p> <p><br></p> <p>六、安装及配置 MetaMask</p> <p><br></p> <p>MetaMask是一款在谷歌浏览器Chrome上使用的插件类型的以太坊钱包,该钱包不需要下载,只需要在谷歌浏览器添加对应的扩展程序即可,非常轻量级,使用起来也非常方便。</p> <p><br></p> <p>具体安装请自行google</p> <p><br></p> <p>操作流程说明:</p> <p>1. 安装好后连接本地运行的ganache服务(我是在远程服务器上运行的,然后通过nginx做了个代理)</p> <p>2. 使用私匙导入功能导入两个ganache生成的账号</p> <p>3. 然后可以在两个账号之间发送代币</p> <p><br></p> </html>
json metadata{"tags":["cn","eth","ethereum","go-ethereum","blockchain"],"image":["https://steemitimages.com/0x0/https://steemit-production-imageproxy-thumbnail.s3.amazonaws.com/U5dtkiK8PQtxARgkc4GPFogPo9sg4dV_1680x8400"],"links":["http://truffleframework.com/docs/advanced/configuration"],"app":"steemit/0.1","format":"html"}
Transaction InfoBlock #20379884/Trx a91ac1f60459d82dbd9120301828b4c56a708505
View Raw JSON Data
{
  "trx_id": "a91ac1f60459d82dbd9120301828b4c56a708505",
  "block": 20379884,
  "trx_in_block": 53,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-04T12:05:12",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "cn",
      "author": "fblife",
      "permlink": "4uslux",
      "title": "以太坊开发:如何发行代币",
      "body": "<html>\n<p><img src=\"https://steemitimages.com/0x0/https://steemit-production-imageproxy-thumbnail.s3.amazonaws.com/U5dtkiK8PQtxARgkc4GPFogPo9sg4dV_1680x8400\" width=\"600\" height=\"355\"/></p>\n<p>本文的目的是创建一个我们自己的支持ERC-20标准的代币。</p>\n<p><br></p>\n<p>一、关键词</p>\n<p><br></p>\n<p>Truffle</p>\n<p>Truffle 是当前最活跃的 Ethereum 开发框架,具有调试、部署和测试智能合约等功能。此次建立加密代币的教程就是基于 Truffle 框架的开发。</p>\n<p><br></p>\n<p>ganache</p>\n<p>在开发阶段需要测试,ganache 可以模拟智能合约所需要的以太坊区块链测试环境。</p>\n<p>ganache 有桌面客户端以及命令行工具,本篇教程使用的是命令行工具搭配 Chrome 的 MetaMask 来进行测试。</p>\n<p><br></p>\n<p>OpenZeppelin</p>\n<p>Zeppelin是一种构建安全智能合约的开源架构,我们使用OpenZeppelin函数库来创建一个简易发币合约。</p>\n<p><br></p>\n<p>二、环境配置</p>\n<p><br></p>\n<p>$ npm install -g truffle</p>\n<p>$ npm install -g ganache-cli</p>\n<p><br></p>\n<p>三、初始化项目</p>\n<p><br></p>\n<p>$ mkdir coin-workspace</p>\n<p>$ cd coin-workspace</p>\n<p>$ truffle unbox tutorialtoken</p>\n<p><br></p>\n<p>在项目的根目录使用 npm 安装</p>\n<p>$ npm install zeppelin-solidity</p>\n<p><br></p>\n<p>四、运行ganache</p>\n<p><br></p>\n<p>在我们部署智能合约之前,首先需要有一个以太坊区块链测试环境。新开一个命令行工具,输入以下命令:</p>\n<p>$ ganache-cli</p>\n<p><br></p>\n<p>将会在本地生成以太坊区块链环境,会自动创建 10 个账号(Accounts),以及每个账号对应的私钥(Private Keys),每个账号中拥有 100 个测试用的以太币(Ether),我这里本地监听的端口是8454。</p>\n<p><br></p>\n<p>五、创建部署智能合约</p>\n<p><br></p>\n<p>1. 我们在contracts目录下新建一个 TutorialToken.sol 的文件(或者也可以用 truffle create contract TutorialToken.sol 命令来建立)。</p>\n<p>写入以下内容:</p>\n<p><br></p>\n<p>+++++++++++++++++++++++++++++</p>\n<p><br></p>\n<p>pragma solidity ^0.4.2; // 指明目前使用的solidity版本,不同版本可能会编译出不同的bytecode</p>\n<p><br></p>\n<p>import 'zeppelin-solidity/contracts/token/ERC20/StandardToken.sol';</p>\n<p><br></p>\n<p>// contract 关键字类似于其它语言的class。可以理解为TutorialToken继承了Contract类,具有智能合约的特性。is 关键字类型于其它语言的extends,TutorialToken 继承了 StandardToken 的属性及方法。</p>\n<p>contract TutorialToken is StandardToken {</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;string public name = 'DogToken'; &nbsp;&nbsp;&nbsp;&nbsp;// 设置代币名称</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;string public symbol = 'TT'; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 设置代币代号</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;uint8 public decimals = 2; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 设置代币最小交易单位(精度)</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;uint public INITIAL_SUPPLY = 10000; // 设置代币发行量</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;function TutorialToken() public {</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;totalSupply_ = INITIAL_SUPPLY; &nbsp;&nbsp;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;balances[msg.sender] = INITIAL_SUPPLY;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;}</p>\n<p>}</p>\n<p><br></p>\n<p>+++++++++++++++++++++++++++++</p>\n<p><br></p>\n<p>2. 在 migrations/ 目录下,我们可以看到 truffle 框架提供了方便部署合约的脚本。接下来我们创建 2_deploy_contracts.js 的文件。</p>\n<p>写入以下内容:</p>\n<p><br></p>\n<p>+++++++++++++++++++++++++++++</p>\n<p><br></p>\n<p>var TutorialToken = artifacts.require(\"TutorialToken\");</p>\n<p><br></p>\n<p>module.exports = function(deployer) {</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;deployer.deploy(TutorialToken);</p>\n<p>};</p>\n<p><br></p>\n<p>+++++++++++++++++++++++++++++</p>\n<p><br></p>\n<p>3. 修改项目根目录的truffle.js文件</p>\n<p><br></p>\n<p>+++++++++++++++++++++++++++++</p>\n<p><br></p>\n<p>module.exports = {</p>\n<p>&nbsp;&nbsp;// See &lt;http://truffleframework.com/docs/advanced/configuration&gt;</p>\n<p>&nbsp;&nbsp;// for more about customizing your Truffle configuration!</p>\n<p>&nbsp;&nbsp;networks: {</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;development: {</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;host: \"localhost\",</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;port: 8545,</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;network_id: \"*\" // Match any network id</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;}</p>\n<p>&nbsp;&nbsp;}</p>\n<p>};</p>\n<p><br></p>\n<p>+++++++++++++++++++++++++++++</p>\n<p><br></p>\n<p>编译和部署智能合约</p>\n<p>$ truffle compile</p>\n<p>$ truffle migrate</p>\n<p><br></p>\n<p>六、安装及配置 MetaMask</p>\n<p><br></p>\n<p>MetaMask是一款在谷歌浏览器Chrome上使用的插件类型的以太坊钱包,该钱包不需要下载,只需要在谷歌浏览器添加对应的扩展程序即可,非常轻量级,使用起来也非常方便。</p>\n<p><br></p>\n<p>具体安装请自行google</p>\n<p><br></p>\n<p>操作流程说明:</p>\n<p>1. 安装好后连接本地运行的ganache服务(我是在远程服务器上运行的,然后通过nginx做了个代理)</p>\n<p>2. 使用私匙导入功能导入两个ganache生成的账号</p>\n<p>3. 然后可以在两个账号之间发送代币</p>\n<p><br></p>\n</html>",
      "json_metadata": "{\"tags\":[\"cn\",\"eth\",\"ethereum\",\"go-ethereum\",\"blockchain\"],\"image\":[\"https://steemitimages.com/0x0/https://steemit-production-imageproxy-thumbnail.s3.amazonaws.com/U5dtkiK8PQtxARgkc4GPFogPo9sg4dV_1680x8400\"],\"links\":[\"http://truffleframework.com/docs/advanced/configuration\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
    }
  ]
}
2018/03/03 10:00:36
parent authorfblife
parent permlinkdapp
authorcn-naughty.boy
permlink20180303t100035553z-post
title
body@fblife, 这个不错,赞了!
json metadata{"tags":["cn"]}
Transaction InfoBlock #20348598/Trx 27c6dd805dc0e1eacb860ea36b67932635689ddd
View Raw JSON Data
{
  "trx_id": "27c6dd805dc0e1eacb860ea36b67932635689ddd",
  "block": 20348598,
  "trx_in_block": 25,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-03T10:00:36",
  "op": [
    "comment",
    {
      "parent_author": "fblife",
      "parent_permlink": "dapp",
      "author": "cn-naughty.boy",
      "permlink": "20180303t100035553z-post",
      "title": "",
      "body": "@fblife, 这个不错,赞了!",
      "json_metadata": "{\"tags\":[\"cn\"]}"
    }
  ]
}
cn-naughty.boyupvoted (30.64%) @fblife / dapp
2018/03/03 10:00:33
votercn-naughty.boy
authorfblife
permlinkdapp
weight3064 (30.64%)
Transaction InfoBlock #20348597/Trx dac386c996f71d0ffdb751e14c753efa658fa017
View Raw JSON Data
{
  "trx_id": "dac386c996f71d0ffdb751e14c753efa658fa017",
  "block": 20348597,
  "trx_in_block": 47,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-03T10:00:33",
  "op": [
    "vote",
    {
      "voter": "cn-naughty.boy",
      "author": "fblife",
      "permlink": "dapp",
      "weight": 3064
    }
  ]
}
kukuxaupvoted (100.00%) @fblife / dapp
2018/03/03 10:00:24
voterkukuxa
authorfblife
permlinkdapp
weight10000 (100.00%)
Transaction InfoBlock #20348594/Trx 55658fbd37c5743dd7f6af166b33fe10ba2ef605
View Raw JSON Data
{
  "trx_id": "55658fbd37c5743dd7f6af166b33fe10ba2ef605",
  "block": 20348594,
  "trx_in_block": 50,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-03T10:00:24",
  "op": [
    "vote",
    {
      "voter": "kukuxa",
      "author": "fblife",
      "permlink": "dapp",
      "weight": 10000
    }
  ]
}
fblifepublished a new post: dapp
2018/03/03 10:00:06
parent author
parent permlinkcn
authorfblife
permlinkdapp
title以太坊开发:如何开发一个简易Dapp
body<html> <p><img src="https://steemit-production-imageproxy-thumbnail.s3.amazonaws.com/U5dtkiK8PQtxARgkc4GPFogPo9sg4dV_1680x8400" width="600" height="355"/></p> <p><br></p> <p>我们这里写一个简单的投票智能合约,可以通过Dapp对给定的候选人投票并计算每个候选人获得的票数。</p> <p><br></p> <p>一、环境配置</p> <p>安装nodejs,npm,git,web3,solc,testrpc等等</p> <p><br></p> <p>二、运行testrpc</p> <p>先运行testrpc(会自动生成十个账户,并且每个账户中都会初始有100个以太币)</p> <p><br></p> <p>三、用Solidity编写智能合约并使用solc编译</p> <p><br></p> <p>先写一个投票智能合约,这个合约有四个方法,分别是构造方法,查询票数,投票,和判断是否是候选人,逻辑非常简单,甚至不需要懂得Solidity语法都可以看得懂。</p> <p><br></p> <p>Voting.sol 代码:</p> <p><br></p> <p>pragma solidity ^0.4.11;</p> <p>// We have to specify what version of compiler this code will compile with</p> <p><br></p> <p>contract Voting {</p> <p>&nbsp;&nbsp;/* mapping field below is equivalent to an associative array or hash.</p> <p>&nbsp;&nbsp;The key of the mapping is candidate name stored as type bytes32 and value is</p> <p>&nbsp;&nbsp;an unsigned integer to store the vote count</p> <p>&nbsp;&nbsp;*/</p> <p>&nbsp;&nbsp;</p> <p>&nbsp;&nbsp;mapping (bytes32 =&gt; uint8) public votesReceived;</p> <p>&nbsp;&nbsp;</p> <p>&nbsp;&nbsp;/* Solidity doesn't let you pass in an array of strings in the constructor (yet).</p> <p>&nbsp;&nbsp;We will use an array of bytes32 instead to store the list of candidates</p> <p>&nbsp;&nbsp;*/</p> <p>&nbsp;&nbsp;</p> <p>&nbsp;&nbsp;bytes32[] public candidateList;</p> <p><br></p> <p>&nbsp;&nbsp;/* This is the constructor which will be called once when you</p> <p>&nbsp;&nbsp;deploy the contract to the blockchain. When we deploy the contract,</p> <p>&nbsp;&nbsp;we will pass an array of candidates who will be contesting in the election</p> <p>&nbsp;&nbsp;*/</p> <p>&nbsp;&nbsp;function Voting(bytes32[] candidateNames) {</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;candidateList = candidateNames;</p> <p>&nbsp;&nbsp;}</p> <p><br></p> <p>&nbsp;&nbsp;// This function returns the total votes a candidate has received so far</p> <p>&nbsp;&nbsp;function totalVotesFor(bytes32 candidate) returns (uint8) {</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;if (validCandidate(candidate) == false) throw;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;return votesReceived[candidate];</p> <p>&nbsp;&nbsp;}</p> <p><br></p> <p>&nbsp;&nbsp;// This function increments the vote count for the specified candidate. This</p> <p>&nbsp;&nbsp;// is equivalent to casting a vote</p> <p>&nbsp;&nbsp;function voteForCandidate(bytes32 candidate) {</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;if (validCandidate(candidate) == false) throw;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;votesReceived[candidate] += 1;</p> <p>&nbsp;&nbsp;}</p> <p><br></p> <p>&nbsp;&nbsp;function validCandidate(bytes32 candidate) returns (bool) {</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;for(uint i = 0; i &lt; candidateList.length; i++) {</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (candidateList[i] == candidate) {</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;}</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;return false;</p> <p>&nbsp;&nbsp;}</p> <p>}</p> <p><br></p> <p>然后新开窗口进入node,然后输入以下语句:</p> <p><br></p> <p>先初始化一个web3对象,并可以利用这个web3对象来和区块链进行交互。比如,可以通过这个web3对象来查询它所连接到的区块链的账户信息</p> <p>&gt; Web3 = require('web3')</p> <p>&gt; web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));</p> <p><br></p> <p>查看当前的账号(testrpc已生成)</p> <p>&gt; web3.eth.accounts</p> <p><br></p> <p>编译上面的智能合约代码并存到compiledCode当中</p> <p>&gt; solc = require('solc')</p> <p>&gt; code = fs.readFileSync('Voting.sol').toString()</p> <p>&gt; compiledCode = solc.compile(code)</p> <p><br></p> <p>四、部署智能合约</p> <p><br></p> <p>abiDefinition中保存的是该智能合约的界面信息,JSON.parse() 方法解析一个JSON字符串,构造由字符串描述的JavaScript值或对象。也就是说,把JSON字符串解析为JavaScript值。</p> <p>&gt; abiDefinition = JSON.parse(compiledCode.contracts[':Voting'].interface)</p> <p><br></p> <p>初始化一个投票合约对象</p> <p>&gt; VotingContract = web3.eth.contract(abiDefinition)</p> <p><br></p> <p>将这些字节码存到byteCode这个变量中去</p> <p>&gt; byteCode = compiledCode.contracts[':Voting'].bytecode</p> <p><br></p> <p>将这个合约部署到以太链</p> <p>&gt; deployedContract = VotingContract.new(['Rama','Nick','Jose'],{data: byteCode, from: web3.eth.accounts[0], gas: 4700000})</p> <p><br></p> <p>获取这个合约的地址</p> <p>&gt; deployedContract.address</p> <p>&gt; contractInstance = VotingContract.at(deployedContract.address)</p> <p><br></p> <p>五、在控制台中与智能合约进行交互</p> <p>&gt; contractInstance.totalVotesFor.call('Rama')</p> <p>&gt; contractInstance.voteForCandidate('Rama', {from: web3.eth.accounts[0]})</p> <p>&gt; contractInstance.voteForCandidate('Rama', {from: web3.eth.accounts[0]})</p> <p>&gt; contractInstance.totalVotesFor.call('Rama').toLocaleString()</p> <p><br></p> <p>六、利用网页与智能合约进行交互</p> <p><br></p> <p>在上一步的交互中我们是在nodejs中进行投票和查询的,现在我们就要把这些命令写到js中,并写一个简单的html文件,通过网页来与智能合约进行交互。html和js文件见下。把这两个文件放到与Voting.sol同级别的目录下。</p> <p><br></p> <p>index.html</p> <p><br></p> <p>&lt;!DOCTYPE html&gt;</p> <p>&lt;html&gt;</p> <p>&lt;head&gt;</p> <p>&nbsp;&nbsp;&lt;title&gt;Hello World DApp&lt;/title&gt;</p> <p>&nbsp;&nbsp;&lt;link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'&gt;</p> <p>&nbsp;&nbsp;&lt;link href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css' rel='stylesheet' type='text/css'&gt;</p> <p>&lt;/head&gt;</p> <p>&lt;body class="container"&gt;</p> <p>&nbsp;&nbsp;&lt;h1&gt;SSC VOTING APPLICATION&lt;/h1&gt;</p> <p>&nbsp;&nbsp;&lt;div class="table-responsive"&gt;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&lt;table class="table table-bordered"&gt;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;thead&gt;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;th&gt;Candidate&lt;/th&gt;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;th&gt;Votes&lt;/th&gt;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/thead&gt;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tbody&gt;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;Rama&lt;/td&gt;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td id="candidate-1"&gt;&lt;/td&gt;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;Nick&lt;/td&gt;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td id="candidate-2"&gt;&lt;/td&gt;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;Jose&lt;/td&gt;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td id="candidate-3"&gt;&lt;/td&gt;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tbody&gt;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/table&gt;</p> <p>&nbsp;&nbsp;&lt;/div&gt;</p> <p>&nbsp;&nbsp;&lt;input type="text" id="candidate" /&gt;</p> <p>&nbsp;&nbsp;&lt;a href="#" onclick="voteForCandidate()" class="btn btn-primary"&gt;Vote&lt;/a&gt;</p> <p>&lt;/body&gt;</p> <p>&lt;script src="https://cdn.rawgit.com/ethereum/web3.js/develop/dist/web3.js"&gt;&lt;/script&gt;</p> <p>&lt;script src="https://code.jquery.com/jquery-3.1.1.slim.min.js"&gt;&lt;/script&gt;</p> <p>&lt;script src="./index.js"&gt;&lt;/script&gt;</p> <p>&lt;/html&gt;</p> <p><br></p> <p>index.js</p> <p><br></p> <p>web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));</p> <p>abi = JSON.parse('[{"constant":false,"inputs":[{"name":"candidate","type":"bytes32"}],"name":"totalVotesFor","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"candidate","type":"bytes32"}],"name":"validCandidate","outputs":[{"name":"","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"votesReceived","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"x","type":"bytes32"}],"name":"bytes32ToString","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"candidateList","outputs":[{"name":"","type":"bytes32"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"candidate","type":"bytes32"}],"name":"voteForCandidate","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"contractOwner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"inputs":[{"name":"candidateNames","type":"bytes32[]"}],"payable":false,"type":"constructor"}]')</p> <p>VotingContract = web3.eth.contract(abi);</p> <p>//在你的控制台中, 执行contractInstance.address,并将获得的地址替换下面这个0x413a...地址</p> <p>contractInstance = VotingContract.at('0x4131a0f92d36932d3ec3b7a0581546f2e662ad0b');</p> <p>candidates = {"Rama": "candidate-1", "Nick": "candidate-2", "Jose": "candidate-3"}</p> <p><br></p> <p>function voteForCandidate(candidate) {</p> <p>&nbsp;&nbsp;candidateName = $("#candidate").val();</p> <p>&nbsp;&nbsp;contractInstance.voteForCandidate(candidateName, {from: web3.eth.accounts[0]}, function() {</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;let div_id = candidates[candidateName];</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;$("#" + div_id).html(contractInstance.totalVotesFor.call(candidateName).toString());</p> <p>&nbsp;&nbsp;});</p> <p>}</p> <p><br></p> <p>$(document).ready(function() {</p> <p>&nbsp;&nbsp;candidateNames = Object.keys(candidates);</p> <p>&nbsp;&nbsp;for (var i = 0; i &lt; candidateNames.length; i++) {</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;let name = candidateNames[i];</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;let val = contractInstance.totalVotesFor.call(name).toString()</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;$("#" + candidates[name]).html(val);</p> <p>&nbsp;&nbsp;}</p> <p>});</p> <p><br></p> <p>在index.js中把合约的地址替换之后打开index.html即可在网页上进行我们的投票操作,同时可以通过MetaMask看到我们的交易和以太币的变动情况。</p> </html>
json metadata{"tags":["cn","eth","ethereum","go-ethereum","blockchain"],"image":["https://steemit-production-imageproxy-thumbnail.s3.amazonaws.com/U5dtkiK8PQtxARgkc4GPFogPo9sg4dV_1680x8400"],"links":["http://localhost:8545","https://fonts.googleapis.com/css?family=Open+Sans:400,700","https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css","https://cdn.rawgit.com/ethereum/web3.js/develop/dist/web3.js","https://code.jquery.com/jquery-3.1.1.slim.min.js"],"app":"steemit/0.1","format":"html"}
Transaction InfoBlock #20348588/Trx 94636e748081f6c6b4228cde742c16940c00e868
View Raw JSON Data
{
  "trx_id": "94636e748081f6c6b4228cde742c16940c00e868",
  "block": 20348588,
  "trx_in_block": 7,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-03T10:00:06",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "cn",
      "author": "fblife",
      "permlink": "dapp",
      "title": "以太坊开发:如何开发一个简易Dapp",
      "body": "<html>\n<p><img src=\"https://steemit-production-imageproxy-thumbnail.s3.amazonaws.com/U5dtkiK8PQtxARgkc4GPFogPo9sg4dV_1680x8400\" width=\"600\" height=\"355\"/></p>\n<p><br></p>\n<p>我们这里写一个简单的投票智能合约,可以通过Dapp对给定的候选人投票并计算每个候选人获得的票数。</p>\n<p><br></p>\n<p>一、环境配置</p>\n<p>安装nodejs,npm,git,web3,solc,testrpc等等</p>\n<p><br></p>\n<p>二、运行testrpc</p>\n<p>先运行testrpc(会自动生成十个账户,并且每个账户中都会初始有100个以太币)</p>\n<p><br></p>\n<p>三、用Solidity编写智能合约并使用solc编译</p>\n<p><br></p>\n<p>先写一个投票智能合约,这个合约有四个方法,分别是构造方法,查询票数,投票,和判断是否是候选人,逻辑非常简单,甚至不需要懂得Solidity语法都可以看得懂。</p>\n<p><br></p>\n<p>Voting.sol 代码:</p>\n<p><br></p>\n<p>pragma solidity ^0.4.11;</p>\n<p>// We have to specify what version of compiler this code will compile with</p>\n<p><br></p>\n<p>contract Voting {</p>\n<p>&nbsp;&nbsp;/* mapping field below is equivalent to an associative array or hash.</p>\n<p>&nbsp;&nbsp;The key of the mapping is candidate name stored as type bytes32 and value is</p>\n<p>&nbsp;&nbsp;an unsigned integer to store the vote count</p>\n<p>&nbsp;&nbsp;*/</p>\n<p>&nbsp;&nbsp;</p>\n<p>&nbsp;&nbsp;mapping (bytes32 =&gt; uint8) public votesReceived;</p>\n<p>&nbsp;&nbsp;</p>\n<p>&nbsp;&nbsp;/* Solidity doesn't let you pass in an array of strings in the constructor (yet).</p>\n<p>&nbsp;&nbsp;We will use an array of bytes32 instead to store the list of candidates</p>\n<p>&nbsp;&nbsp;*/</p>\n<p>&nbsp;&nbsp;</p>\n<p>&nbsp;&nbsp;bytes32[] public candidateList;</p>\n<p><br></p>\n<p>&nbsp;&nbsp;/* This is the constructor which will be called once when you</p>\n<p>&nbsp;&nbsp;deploy the contract to the blockchain. When we deploy the contract,</p>\n<p>&nbsp;&nbsp;we will pass an array of candidates who will be contesting in the election</p>\n<p>&nbsp;&nbsp;*/</p>\n<p>&nbsp;&nbsp;function Voting(bytes32[] candidateNames) {</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;candidateList = candidateNames;</p>\n<p>&nbsp;&nbsp;}</p>\n<p><br></p>\n<p>&nbsp;&nbsp;// This function returns the total votes a candidate has received so far</p>\n<p>&nbsp;&nbsp;function totalVotesFor(bytes32 candidate) returns (uint8) {</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;if (validCandidate(candidate) == false) throw;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;return votesReceived[candidate];</p>\n<p>&nbsp;&nbsp;}</p>\n<p><br></p>\n<p>&nbsp;&nbsp;// This function increments the vote count for the specified candidate. This</p>\n<p>&nbsp;&nbsp;// is equivalent to casting a vote</p>\n<p>&nbsp;&nbsp;function voteForCandidate(bytes32 candidate) {</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;if (validCandidate(candidate) == false) throw;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;votesReceived[candidate] += 1;</p>\n<p>&nbsp;&nbsp;}</p>\n<p><br></p>\n<p>&nbsp;&nbsp;function validCandidate(bytes32 candidate) returns (bool) {</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;for(uint i = 0; i &lt; candidateList.length; i++) {</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if (candidateList[i] == candidate) {</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return true;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;}</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;return false;</p>\n<p>&nbsp;&nbsp;}</p>\n<p>}</p>\n<p><br></p>\n<p>然后新开窗口进入node,然后输入以下语句:</p>\n<p><br></p>\n<p>先初始化一个web3对象,并可以利用这个web3对象来和区块链进行交互。比如,可以通过这个web3对象来查询它所连接到的区块链的账户信息</p>\n<p>&gt; Web3 = require('web3')</p>\n<p>&gt; web3 = new Web3(new Web3.providers.HttpProvider(\"http://localhost:8545\"));</p>\n<p><br></p>\n<p>查看当前的账号(testrpc已生成)</p>\n<p>&gt; web3.eth.accounts</p>\n<p><br></p>\n<p>编译上面的智能合约代码并存到compiledCode当中</p>\n<p>&gt; solc = require('solc')</p>\n<p>&gt; code = fs.readFileSync('Voting.sol').toString()</p>\n<p>&gt; compiledCode = solc.compile(code)</p>\n<p><br></p>\n<p>四、部署智能合约</p>\n<p><br></p>\n<p>abiDefinition中保存的是该智能合约的界面信息,JSON.parse() 方法解析一个JSON字符串,构造由字符串描述的JavaScript值或对象。也就是说,把JSON字符串解析为JavaScript值。</p>\n<p>&gt; abiDefinition = JSON.parse(compiledCode.contracts[':Voting'].interface)</p>\n<p><br></p>\n<p>初始化一个投票合约对象</p>\n<p>&gt; VotingContract = web3.eth.contract(abiDefinition)</p>\n<p><br></p>\n<p>将这些字节码存到byteCode这个变量中去</p>\n<p>&gt; byteCode = compiledCode.contracts[':Voting'].bytecode</p>\n<p><br></p>\n<p>将这个合约部署到以太链</p>\n<p>&gt; deployedContract = VotingContract.new(['Rama','Nick','Jose'],{data: byteCode, from: web3.eth.accounts[0], gas: 4700000})</p>\n<p><br></p>\n<p>获取这个合约的地址</p>\n<p>&gt; deployedContract.address</p>\n<p>&gt; contractInstance = VotingContract.at(deployedContract.address)</p>\n<p><br></p>\n<p>五、在控制台中与智能合约进行交互</p>\n<p>&gt; contractInstance.totalVotesFor.call('Rama')</p>\n<p>&gt; contractInstance.voteForCandidate('Rama', {from: web3.eth.accounts[0]})</p>\n<p>&gt; contractInstance.voteForCandidate('Rama', {from: web3.eth.accounts[0]})</p>\n<p>&gt; contractInstance.totalVotesFor.call('Rama').toLocaleString()</p>\n<p><br></p>\n<p>六、利用网页与智能合约进行交互</p>\n<p><br></p>\n<p>在上一步的交互中我们是在nodejs中进行投票和查询的,现在我们就要把这些命令写到js中,并写一个简单的html文件,通过网页来与智能合约进行交互。html和js文件见下。把这两个文件放到与Voting.sol同级别的目录下。</p>\n<p><br></p>\n<p>index.html</p>\n<p><br></p>\n<p>&lt;!DOCTYPE html&gt;</p>\n<p>&lt;html&gt;</p>\n<p>&lt;head&gt;</p>\n<p>&nbsp;&nbsp;&lt;title&gt;Hello World DApp&lt;/title&gt;</p>\n<p>&nbsp;&nbsp;&lt;link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'&gt;</p>\n<p>&nbsp;&nbsp;&lt;link href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css' rel='stylesheet' type='text/css'&gt;</p>\n<p>&lt;/head&gt;</p>\n<p>&lt;body class=\"container\"&gt;</p>\n<p>&nbsp;&nbsp;&lt;h1&gt;SSC VOTING APPLICATION&lt;/h1&gt;</p>\n<p>&nbsp;&nbsp;&lt;div class=\"table-responsive\"&gt;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&lt;table class=\"table table-bordered\"&gt;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;thead&gt;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;th&gt;Candidate&lt;/th&gt;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;th&gt;Votes&lt;/th&gt;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/thead&gt;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tbody&gt;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;Rama&lt;/td&gt;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td id=\"candidate-1\"&gt;&lt;/td&gt;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;Nick&lt;/td&gt;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td id=\"candidate-2\"&gt;&lt;/td&gt;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;tr&gt;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td&gt;Jose&lt;/td&gt;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;td id=\"candidate-3\"&gt;&lt;/td&gt;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tr&gt;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/tbody&gt;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/table&gt;</p>\n<p>&nbsp;&nbsp;&lt;/div&gt;</p>\n<p>&nbsp;&nbsp;&lt;input type=\"text\" id=\"candidate\" /&gt;</p>\n<p>&nbsp;&nbsp;&lt;a href=\"#\" onclick=\"voteForCandidate()\" class=\"btn btn-primary\"&gt;Vote&lt;/a&gt;</p>\n<p>&lt;/body&gt;</p>\n<p>&lt;script src=\"https://cdn.rawgit.com/ethereum/web3.js/develop/dist/web3.js\"&gt;&lt;/script&gt;</p>\n<p>&lt;script src=\"https://code.jquery.com/jquery-3.1.1.slim.min.js\"&gt;&lt;/script&gt;</p>\n<p>&lt;script src=\"./index.js\"&gt;&lt;/script&gt;</p>\n<p>&lt;/html&gt;</p>\n<p><br></p>\n<p>index.js</p>\n<p><br></p>\n<p>web3 = new Web3(new Web3.providers.HttpProvider(\"http://localhost:8545\"));</p>\n<p>abi = JSON.parse('[{\"constant\":false,\"inputs\":[{\"name\":\"candidate\",\"type\":\"bytes32\"}],\"name\":\"totalVotesFor\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"candidate\",\"type\":\"bytes32\"}],\"name\":\"validCandidate\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"votesReceived\",\"outputs\":[{\"name\":\"\",\"type\":\"uint8\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"x\",\"type\":\"bytes32\"}],\"name\":\"bytes32ToString\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"candidateList\",\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\"}],\"payable\":false,\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"candidate\",\"type\":\"bytes32\"}],\"name\":\"voteForCandidate\",\"outputs\":[],\"payable\":false,\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"contractOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"type\":\"function\"},{\"inputs\":[{\"name\":\"candidateNames\",\"type\":\"bytes32[]\"}],\"payable\":false,\"type\":\"constructor\"}]')</p>\n<p>VotingContract = web3.eth.contract(abi);</p>\n<p>//在你的控制台中, 执行contractInstance.address,并将获得的地址替换下面这个0x413a...地址</p>\n<p>contractInstance = VotingContract.at('0x4131a0f92d36932d3ec3b7a0581546f2e662ad0b');</p>\n<p>candidates = {\"Rama\": \"candidate-1\", \"Nick\": \"candidate-2\", \"Jose\": \"candidate-3\"}</p>\n<p><br></p>\n<p>function voteForCandidate(candidate) {</p>\n<p>&nbsp;&nbsp;candidateName = $(\"#candidate\").val();</p>\n<p>&nbsp;&nbsp;contractInstance.voteForCandidate(candidateName, {from: web3.eth.accounts[0]}, function() {</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;let div_id = candidates[candidateName];</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;$(\"#\" + div_id).html(contractInstance.totalVotesFor.call(candidateName).toString());</p>\n<p>&nbsp;&nbsp;});</p>\n<p>}</p>\n<p><br></p>\n<p>$(document).ready(function() {</p>\n<p>&nbsp;&nbsp;candidateNames = Object.keys(candidates);</p>\n<p>&nbsp;&nbsp;for (var i = 0; i &lt; candidateNames.length; i++) {</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;let name = candidateNames[i];</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;let val = contractInstance.totalVotesFor.call(name).toString()</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;$(\"#\" + candidates[name]).html(val);</p>\n<p>&nbsp;&nbsp;}</p>\n<p>});</p>\n<p><br></p>\n<p>在index.js中把合约的地址替换之后打开index.html即可在网页上进行我们的投票操作,同时可以通过MetaMask看到我们的交易和以太币的变动情况。</p>\n</html>",
      "json_metadata": "{\"tags\":[\"cn\",\"eth\",\"ethereum\",\"go-ethereum\",\"blockchain\"],\"image\":[\"https://steemit-production-imageproxy-thumbnail.s3.amazonaws.com/U5dtkiK8PQtxARgkc4GPFogPo9sg4dV_1680x8400\"],\"links\":[\"http://localhost:8545\",\"https://fonts.googleapis.com/css?family=Open+Sans:400,700\",\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css\",\"https://cdn.rawgit.com/ethereum/web3.js/develop/dist/web3.js\",\"https://code.jquery.com/jquery-3.1.1.slim.min.js\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
    }
  ]
}
jademontupvoted (16.00%) @fblife / go-ethereum
2018/03/01 16:36:18
voterjademont
authorfblife
permlinkgo-ethereum
weight1600 (16.00%)
Transaction InfoBlock #20298941/Trx 78f7bd5f00e7f017502f025d7cb68575f6369720
View Raw JSON Data
{
  "trx_id": "78f7bd5f00e7f017502f025d7cb68575f6369720",
  "block": 20298941,
  "trx_in_block": 18,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-01T16:36:18",
  "op": [
    "vote",
    {
      "voter": "jademont",
      "author": "fblife",
      "permlink": "go-ethereum",
      "weight": 1600
    }
  ]
}
2018/03/01 15:28:12
parent authorfblife
parent permlinkgo-ethereum
authorcnbuddy
permlinkre-fblife-go-ethereum-20180301t152811770z
title
body新年快乐!cn区点赞机器人 @cnbuddy 谢谢你对cn区的贡献。如果不想再收到我的留言,请回复“取消”。
json metadata
Transaction InfoBlock #20297579/Trx 7de1edf669d9411f35546f3c63cd22e9c70dcb96
View Raw JSON Data
{
  "trx_id": "7de1edf669d9411f35546f3c63cd22e9c70dcb96",
  "block": 20297579,
  "trx_in_block": 2,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-01T15:28:12",
  "op": [
    "comment",
    {
      "parent_author": "fblife",
      "parent_permlink": "go-ethereum",
      "author": "cnbuddy",
      "permlink": "re-fblife-go-ethereum-20180301t152811770z",
      "title": "",
      "body": "新年快乐!cn区点赞机器人 @cnbuddy 谢谢你对cn区的贡献。如果不想再收到我的留言,请回复“取消”。",
      "json_metadata": ""
    }
  ]
}
cnbuddyupvoted (0.10%) @fblife / go-ethereum
2018/03/01 15:26:36
votercnbuddy
authorfblife
permlinkgo-ethereum
weight10 (0.10%)
Transaction InfoBlock #20297547/Trx 1140277b03cf1abf815ccb07fc5ea857efe75a5a
View Raw JSON Data
{
  "trx_id": "1140277b03cf1abf815ccb07fc5ea857efe75a5a",
  "block": 20297547,
  "trx_in_block": 15,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-01T15:26:36",
  "op": [
    "vote",
    {
      "voter": "cnbuddy",
      "author": "fblife",
      "permlink": "go-ethereum",
      "weight": 10
    }
  ]
}
2018/03/01 10:07:27
voterwannastay
authorfblife
permlinkre-wannastay-re-fblife-4ukgc3-20180301t091552415z
weight10000 (100.00%)
Transaction InfoBlock #20291166/Trx 78ef66702a7167fb77d41108c75b989df01832f1
View Raw JSON Data
{
  "trx_id": "78ef66702a7167fb77d41108c75b989df01832f1",
  "block": 20291166,
  "trx_in_block": 7,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-01T10:07:27",
  "op": [
    "vote",
    {
      "voter": "wannastay",
      "author": "fblife",
      "permlink": "re-wannastay-re-fblife-4ukgc3-20180301t091552415z",
      "weight": 10000
    }
  ]
}
2018/03/01 09:15:51
parent authorwannastay
parent permlinkre-fblife-4ukgc3-20180227t124644011z
authorfblife
permlinkre-wannastay-re-fblife-4ukgc3-20180301t091552415z
title
body找一帮朋友,立刻出发 :)
json metadata{"tags":["cn"],"app":"steemit/0.1"}
Transaction InfoBlock #20290136/Trx 8b967b796aecafdf0bf677413648b833c9a29e9b
View Raw JSON Data
{
  "trx_id": "8b967b796aecafdf0bf677413648b833c9a29e9b",
  "block": 20290136,
  "trx_in_block": 37,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-01T09:15:51",
  "op": [
    "comment",
    {
      "parent_author": "wannastay",
      "parent_permlink": "re-fblife-4ukgc3-20180227t124644011z",
      "author": "fblife",
      "permlink": "re-wannastay-re-fblife-4ukgc3-20180301t091552415z",
      "title": "",
      "body": "找一帮朋友,立刻出发 :)",
      "json_metadata": "{\"tags\":[\"cn\"],\"app\":\"steemit/0.1\"}"
    }
  ]
}
fblifepublished a new post: go-ethereum
2018/03/01 09:14:21
parent author
parent permlinkcn
authorfblife
permlinkgo-ethereum
title使用Go-Ethereum搭建以太坊私有链
body<html> <p><img src="http://img4.fblife.com/FmnfqWKtebzq3LlJjduO-4Q-qgRK?imageView2/2/w/728/q/100" width="600" height="355"/></p> <p><br></p> <p>发一篇技术文章,之前从网上找了好多教程(没有一个是完整的),安装过程中遇到不少问题,记录一下。</p> <p>一、安装</p> <p><br></p> <p>git clone https://github.com/ethereum/go-ethereum.git</p> <p>cd &nbsp;go-ethereum</p> <p>make geth</p> <p>make all</p> <p><br></p> <p>二、运行</p> <p><br></p> <p>mkdir chain</p> <p>geth --datadir "./chain" -dev -dev.period 1 --nodiscover console 2&gt;&gt;eth_output.log</p> <p><br></p> <p>三、使用</p> <p><br></p> <p>查看账户</p> <p>&gt; eth.accounts</p> <p><br></p> <p>创建账户</p> <p>&gt; personal.newAccount("123456")</p> <p><br></p> <p>查看余额</p> <p>&gt; web3.eth.getBalance("0xbe323cc4fde114269a9513a27d3e985f82b9e25d")</p> <p>或者</p> <p>&gt; acc0 = eth.accounts[0]</p> <p>&gt; eth.getBalance(acc0)</p> <p><br></p> <p>查看格式化的以太币</p> <p>&gt; web3.fromWei(web3.eth.getBalance(acc0))</p> <p><br></p> <p>挖矿</p> <p>&gt; miner.start()</p> <p>&gt; miner.stop()</p> <p><br></p> <p>查看全部账户余额</p> <p>&gt; function checkAllBalances() {</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var totalBal = 0;</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (var acctNum in eth.accounts) {</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var acct = eth.accounts[acctNum];</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var acctBal = web3.fromWei(eth.getBalance(acct), "ether");</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;totalBal += parseFloat(acctBal);</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(" &nbsp;eth.accounts[" + acctNum + "]: \t" + acct + " \tbalance: " + acctBal + " ether");</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(" &nbsp;Total balance: " + totalBal + " ether");</p> <p>&nbsp;};</p> <p>&gt; checkAllBalances()</p> <p>或者保存到一个脚本里,然后加载运行</p> <p>&gt; loadScript('/path/script/here.js')</p> <p>&gt; checkAllBalances()</p> <p><br></p> <p>转账</p> <p>&gt; web3.eth.sendTransaction({from:acc0,to:acc1,value:web3.toWei(3,"ether")})</p> <p><br></p> <p>四、问题</p> <p><br></p> <p>1. 转账失败</p> <p><br></p> <p>a. 账号被锁</p> <p><br></p> <p>当直接执行此方法时会抛出异常,显示帐号被锁</p> <p>&gt; web3.eth.sendTransaction({from:acc0,to:acc1,value:web3.toWei(3,"ether")})</p> <p>Error: authentication needed: password or unlock</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;at web3.js:3104:20</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;at web3.js:6191:15</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;at web3.js:5004:36</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;at &lt;anonymous&gt;:1:1</p> <p><br></p> <p>解锁转帐帐户</p> <p>&gt; web3.personal.unlockAccount(acc0,"123456")</p> <p><br></p> <p>b. 未挖矿</p> <p><br></p> <p>可能未运行挖矿</p> <p>&gt; miner.start()</p> <p><br></p> <p>2. miner.start()返回null</p> <p><br></p> <p>a. 是否设置miner地址</p> <p><br></p> <p>查看当前节点下面是否有账号存在</p> <p>&gt; personal.listAccounts</p> <p><br></p> <p>当确认账户已经存在时,可以设置Etherbase。先查看以下coinbase账户</p> <p>&gt; eth.coinbase</p> <p><br></p> <p>执行设置miner地址</p> <p>&gt; miner.setEtherbase(eth.coinbase)</p> <p>或者</p> <p>&gt; miner.setEtherbase(eth.accounts[0])</p> <p><br></p> <p>b. 节点误报</p> <p><br></p> <p>另外一种情况就是其实miner.start()命令已经执行成功,只不过节点返回null。如果是dev模式,可以使用eth.blockNumber查看一下区块高度是否增加。</p> <p><br></p> <p>c. 节点版本问题</p> <p><br></p> <p>出现此问题的原因在于geth版本更新之后,–dev模式下新增了一个参数项:</p> <p>--dev &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ephemeral proof-of-authority network with a pre-funded developer account, mining enabled</p> <p>--dev.period value &nbsp;Block period to use in developer mode (0 = mine only if transaction pending) (default: 0)</p> <p><br></p> <p>–dev是我们常用的参数,之前版本中我们只用使用–dev然后执行miner.start()就可以挖矿,但是在后面的版本中,当我们会发现只有发送交易了才会挖一个块。</p> <p><br></p> <p>引起此问题的原因就是新增了–dev.period value配置项。此配置默认值为0,也就是说只有有pending中的交易才会挖矿。</p> <p><br></p> <p>明白了这个参数的含义之后,解决问题就很简答了,之前的–dev参数依旧使用,然后再在后面添加–dev.period 1,注意,参数值为1,不是默认的0。</p> <p><br></p> <p>再重新启动节点,然后执行挖矿,先不管返回是否是null,执行之后,无论查看日志或执行eth.blockNumber都会发现块在不停的增高。</p> </html>
json metadata{"tags":["cn","eth","ethereum","go-ethereum","blockchain"],"image":["http://img4.fblife.com/FmnfqWKtebzq3LlJjduO-4Q-qgRK?imageView2/2/w/728/q/100"],"links":["https://github.com/ethereum/go-ethereum.git"],"app":"steemit/0.1","format":"html"}
Transaction InfoBlock #20290106/Trx 008e70c653ec42fc0baf201d72c36f001f907ba9
View Raw JSON Data
{
  "trx_id": "008e70c653ec42fc0baf201d72c36f001f907ba9",
  "block": 20290106,
  "trx_in_block": 36,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-03-01T09:14:21",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "cn",
      "author": "fblife",
      "permlink": "go-ethereum",
      "title": "使用Go-Ethereum搭建以太坊私有链",
      "body": "<html>\n<p><img src=\"http://img4.fblife.com/FmnfqWKtebzq3LlJjduO-4Q-qgRK?imageView2/2/w/728/q/100\" width=\"600\" height=\"355\"/></p>\n<p><br></p>\n<p>发一篇技术文章,之前从网上找了好多教程(没有一个是完整的),安装过程中遇到不少问题,记录一下。</p>\n<p>一、安装</p>\n<p><br></p>\n<p>git clone https://github.com/ethereum/go-ethereum.git</p>\n<p>cd &nbsp;go-ethereum</p>\n<p>make geth</p>\n<p>make all</p>\n<p><br></p>\n<p>二、运行</p>\n<p><br></p>\n<p>mkdir chain</p>\n<p>geth --datadir \"./chain\" -dev -dev.period 1 --nodiscover console 2&gt;&gt;eth_output.log</p>\n<p><br></p>\n<p>三、使用</p>\n<p><br></p>\n<p>查看账户</p>\n<p>&gt; eth.accounts</p>\n<p><br></p>\n<p>创建账户</p>\n<p>&gt; personal.newAccount(\"123456\")</p>\n<p><br></p>\n<p>查看余额</p>\n<p>&gt; web3.eth.getBalance(\"0xbe323cc4fde114269a9513a27d3e985f82b9e25d\")</p>\n<p>或者</p>\n<p>&gt; acc0 = eth.accounts[0]</p>\n<p>&gt; eth.getBalance(acc0)</p>\n<p><br></p>\n<p>查看格式化的以太币</p>\n<p>&gt; web3.fromWei(web3.eth.getBalance(acc0))</p>\n<p><br></p>\n<p>挖矿</p>\n<p>&gt; miner.start()</p>\n<p>&gt; miner.stop()</p>\n<p><br></p>\n<p>查看全部账户余额</p>\n<p>&gt; function checkAllBalances() {</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var totalBal = 0;</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (var acctNum in eth.accounts) {</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var acct = eth.accounts[acctNum];</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var acctBal = web3.fromWei(eth.getBalance(acct), \"ether\");</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;totalBal += parseFloat(acctBal);</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(\" &nbsp;eth.accounts[\" + acctNum + \"]: \\t\" + acct + \" \\tbalance: \" + acctBal + \" ether\");</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(\" &nbsp;Total balance: \" + totalBal + \" ether\");</p>\n<p>&nbsp;};</p>\n<p>&gt; checkAllBalances()</p>\n<p>或者保存到一个脚本里,然后加载运行</p>\n<p>&gt; loadScript('/path/script/here.js')</p>\n<p>&gt; checkAllBalances()</p>\n<p><br></p>\n<p>转账</p>\n<p>&gt; web3.eth.sendTransaction({from:acc0,to:acc1,value:web3.toWei(3,\"ether\")})</p>\n<p><br></p>\n<p>四、问题</p>\n<p><br></p>\n<p>1. 转账失败</p>\n<p><br></p>\n<p>a. 账号被锁</p>\n<p><br></p>\n<p>当直接执行此方法时会抛出异常,显示帐号被锁</p>\n<p>&gt; web3.eth.sendTransaction({from:acc0,to:acc1,value:web3.toWei(3,\"ether\")})</p>\n<p>Error: authentication needed: password or unlock</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;at web3.js:3104:20</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;at web3.js:6191:15</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;at web3.js:5004:36</p>\n<p>&nbsp;&nbsp;&nbsp;&nbsp;at &lt;anonymous&gt;:1:1</p>\n<p><br></p>\n<p>解锁转帐帐户</p>\n<p>&gt; web3.personal.unlockAccount(acc0,\"123456\")</p>\n<p><br></p>\n<p>b. 未挖矿</p>\n<p><br></p>\n<p>可能未运行挖矿</p>\n<p>&gt; miner.start()</p>\n<p><br></p>\n<p>2. miner.start()返回null</p>\n<p><br></p>\n<p>a. 是否设置miner地址</p>\n<p><br></p>\n<p>查看当前节点下面是否有账号存在</p>\n<p>&gt; personal.listAccounts</p>\n<p><br></p>\n<p>当确认账户已经存在时,可以设置Etherbase。先查看以下coinbase账户</p>\n<p>&gt; eth.coinbase</p>\n<p><br></p>\n<p>执行设置miner地址</p>\n<p>&gt; miner.setEtherbase(eth.coinbase)</p>\n<p>或者</p>\n<p>&gt; miner.setEtherbase(eth.accounts[0])</p>\n<p><br></p>\n<p>b. 节点误报</p>\n<p><br></p>\n<p>另外一种情况就是其实miner.start()命令已经执行成功,只不过节点返回null。如果是dev模式,可以使用eth.blockNumber查看一下区块高度是否增加。</p>\n<p><br></p>\n<p>c. 节点版本问题</p>\n<p><br></p>\n<p>出现此问题的原因在于geth版本更新之后,–dev模式下新增了一个参数项:</p>\n<p>--dev &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ephemeral proof-of-authority network with a pre-funded developer account, mining enabled</p>\n<p>--dev.period value &nbsp;Block period to use in developer mode (0 = mine only if transaction pending) (default: 0)</p>\n<p><br></p>\n<p>–dev是我们常用的参数,之前版本中我们只用使用–dev然后执行miner.start()就可以挖矿,但是在后面的版本中,当我们会发现只有发送交易了才会挖一个块。</p>\n<p><br></p>\n<p>引起此问题的原因就是新增了–dev.period value配置项。此配置默认值为0,也就是说只有有pending中的交易才会挖矿。</p>\n<p><br></p>\n<p>明白了这个参数的含义之后,解决问题就很简答了,之前的–dev参数依旧使用,然后再在后面添加–dev.period 1,注意,参数值为1,不是默认的0。</p>\n<p><br></p>\n<p>再重新启动节点,然后执行挖矿,先不管返回是否是null,执行之后,无论查看日志或执行eth.blockNumber都会发现块在不停的增高。</p>\n</html>",
      "json_metadata": "{\"tags\":[\"cn\",\"eth\",\"ethereum\",\"go-ethereum\",\"blockchain\"],\"image\":[\"http://img4.fblife.com/FmnfqWKtebzq3LlJjduO-4Q-qgRK?imageView2/2/w/728/q/100\"],\"links\":[\"https://github.com/ethereum/go-ethereum.git\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
    }
  ]
}
2018/02/27 12:46:45
parent authorfblife
parent permlink4ukgc3
authorwannastay
permlinkre-fblife-4ukgc3-20180227t124644011z
title
bodywow 看你的照片好想去冒險!
json metadata{"tags":["cn"],"app":"steemit/0.1"}
Transaction InfoBlock #20236776/Trx 7c6979b0671985c469c161c7e1baceeb60e2d5c2
View Raw JSON Data
{
  "trx_id": "7c6979b0671985c469c161c7e1baceeb60e2d5c2",
  "block": 20236776,
  "trx_in_block": 43,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-02-27T12:46:45",
  "op": [
    "comment",
    {
      "parent_author": "fblife",
      "parent_permlink": "4ukgc3",
      "author": "wannastay",
      "permlink": "re-fblife-4ukgc3-20180227t124644011z",
      "title": "",
      "body": "wow 看你的照片好想去冒險!",
      "json_metadata": "{\"tags\":[\"cn\"],\"app\":\"steemit/0.1\"}"
    }
  ]
}
wannastayupvoted (100.00%) @fblife / 4ukgc3
2018/02/27 12:45:36
voterwannastay
authorfblife
permlink4ukgc3
weight10000 (100.00%)
Transaction InfoBlock #20236753/Trx 55215db5be0f5a54657d5272d91c9a274af8748f
View Raw JSON Data
{
  "trx_id": "55215db5be0f5a54657d5272d91c9a274af8748f",
  "block": 20236753,
  "trx_in_block": 38,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-02-27T12:45:36",
  "op": [
    "vote",
    {
      "voter": "wannastay",
      "author": "fblife",
      "permlink": "4ukgc3",
      "weight": 10000
    }
  ]
}
2018/02/26 11:38:54
parent authorfblife
parent permlink4ukgc3
authorcnbuddy
permlinkre-fblife-4ukgc3-20180226t113854787z
title
body新年快乐!cn区点赞机器人 @cnbuddy 谢谢你对cn区的贡献。倘若你想让我隐形,请回复“取消”。
json metadata
Transaction InfoBlock #20206779/Trx b0475e655d7a00760eed94c2683a28996390a9d0
View Raw JSON Data
{
  "trx_id": "b0475e655d7a00760eed94c2683a28996390a9d0",
  "block": 20206779,
  "trx_in_block": 41,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-02-26T11:38:54",
  "op": [
    "comment",
    {
      "parent_author": "fblife",
      "parent_permlink": "4ukgc3",
      "author": "cnbuddy",
      "permlink": "re-fblife-4ukgc3-20180226t113854787z",
      "title": "",
      "body": "新年快乐!cn区点赞机器人 @cnbuddy 谢谢你对cn区的贡献。倘若你想让我隐形,请回复“取消”。",
      "json_metadata": ""
    }
  ]
}
cnbuddyupvoted (0.10%) @fblife / 4ukgc3
2018/02/26 11:38:51
votercnbuddy
authorfblife
permlink4ukgc3
weight10 (0.10%)
Transaction InfoBlock #20206778/Trx 1e3823a8914c19903ab19321b4d8640ff2780081
View Raw JSON Data
{
  "trx_id": "1e3823a8914c19903ab19321b4d8640ff2780081",
  "block": 20206778,
  "trx_in_block": 5,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-02-26T11:38:51",
  "op": [
    "vote",
    {
      "voter": "cnbuddy",
      "author": "fblife",
      "permlink": "4ukgc3",
      "weight": 10
    }
  ]
}
hackerzizonupvoted (1.00%) @fblife / 4ukgc3
2018/02/26 11:13:48
voterhackerzizon
authorfblife
permlink4ukgc3
weight100 (1.00%)
Transaction InfoBlock #20206278/Trx efccf4d71658ee9db0d04846430acd5570585b74
View Raw JSON Data
{
  "trx_id": "efccf4d71658ee9db0d04846430acd5570585b74",
  "block": 20206278,
  "trx_in_block": 39,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-02-26T11:13:48",
  "op": [
    "vote",
    {
      "voter": "hackerzizon",
      "author": "fblife",
      "permlink": "4ukgc3",
      "weight": 100
    }
  ]
}
fblifepublished a new post: 4ukgc3
2018/02/26 11:13:36
parent author
parent permlinkcn
authorfblife
permlink4ukgc3
title无人区跨年超级大爬梯—哈拉湖装逼穿越之旅
body<html> <p>序:我们是生活的热爱者,更是无人区的自由人</p> <p>所有不为人知的风景,都在前路等着你!</p> <p>人生总要有一次疯狂的冲动!</p> <p>在一个时间似乎是静止的荒芜之地,</p> <p>与文明世界切断所有联系,</p> <p>在这与世隔绝之地,</p> <p>跟孤独的自己来一次对话;</p> <p>在壮阔和荒凉并存的景色里, 探索自己的灵魂和心灵。</p> <p>无人区穿越的意义不是在于成为谈资,</p> <p>更不是变得狂妄,</p> <p>而是学会对自然万物的心存敬畏!</p> <p>我在无人区等你。</p> <p>无人区跨年超级大爬梯—哈拉湖装逼穿越之旅</p> <p><img src="http://p3.pstatp.com/large/66b300055ce4e231ef59" width="640" height="426"/></p> <p>浩浩荡荡挺进哈拉湖</p> <p><img src="http://p3.pstatp.com/large/66b9000014a1486b1ab8" width="640" height="426"/></p> <p>挺进哈拉湖</p> <p><img src="http://p9.pstatp.com/large/66b500044df923bf1952" width="640" height="444"/></p> <p>咱们首次发现的新大陆:狮身人面像</p> <p><img src="http://p3.pstatp.com/large/66b60000b944cc177fba" width="640" height="426"/></p> <p>车子抛锚,无人区只能靠外星人救援了</p> <p><img src="http://p3.pstatp.com/large/66b70000a102a7633f62" width="640" height="480"/></p> <p>出发前前方朋友传回的其他穿越队伍的现场图片(冰陷</p> <p><img src="http://p3.pstatp.com/large/66b300055e4f1af02547" width="640" height="640"/></p> <p>大白萝卜+羊羔肉,高压锅一压,妥妥的幸福</p> <p><img src="http://p3.pstatp.com/large/66b400045ffd2dc1de35" width="640" height="426"/></p> <p>纯净的天空,是我们内心宁静</p> <p><img src="http://p3.pstatp.com/large/66b40004601d29a2e712" width="640" height="960"/></p> <p>这童话般的场景,因为他是无人区,所以显得弥足珍贵!!我想,这一刻,会载入每一个队员的内心深处。</p> </html>
json metadata{"tags":["cn","travel","cars","photography","story"],"image":["http://p3.pstatp.com/large/66b300055ce4e231ef59","http://p3.pstatp.com/large/66b9000014a1486b1ab8","http://p9.pstatp.com/large/66b500044df923bf1952","http://p3.pstatp.com/large/66b60000b944cc177fba","http://p3.pstatp.com/large/66b70000a102a7633f62","http://p3.pstatp.com/large/66b300055e4f1af02547","http://p3.pstatp.com/large/66b400045ffd2dc1de35","http://p3.pstatp.com/large/66b40004601d29a2e712"],"app":"steemit/0.1","format":"html"}
Transaction InfoBlock #20206274/Trx ed1bf833679f70dc88ee60118c031e16f130fd71
View Raw JSON Data
{
  "trx_id": "ed1bf833679f70dc88ee60118c031e16f130fd71",
  "block": 20206274,
  "trx_in_block": 13,
  "op_in_trx": 0,
  "virtual_op": 0,
  "timestamp": "2018-02-26T11:13:36",
  "op": [
    "comment",
    {
      "parent_author": "",
      "parent_permlink": "cn",
      "author": "fblife",
      "permlink": "4ukgc3",
      "title": "无人区跨年超级大爬梯—哈拉湖装逼穿越之旅",
      "body": "<html>\n<p>序:我们是生活的热爱者,更是无人区的自由人</p>\n<p>所有不为人知的风景,都在前路等着你!</p>\n<p>人生总要有一次疯狂的冲动!</p>\n<p>在一个时间似乎是静止的荒芜之地,</p>\n<p>与文明世界切断所有联系,</p>\n<p>在这与世隔绝之地,</p>\n<p>跟孤独的自己来一次对话;</p>\n<p>在壮阔和荒凉并存的景色里, 探索自己的灵魂和心灵。</p>\n<p>无人区穿越的意义不是在于成为谈资,</p>\n<p>更不是变得狂妄,</p>\n<p>而是学会对自然万物的心存敬畏!</p>\n<p>我在无人区等你。</p>\n<p>无人区跨年超级大爬梯—哈拉湖装逼穿越之旅</p>\n<p><img src=\"http://p3.pstatp.com/large/66b300055ce4e231ef59\" width=\"640\" height=\"426\"/></p>\n<p>浩浩荡荡挺进哈拉湖</p>\n<p><img src=\"http://p3.pstatp.com/large/66b9000014a1486b1ab8\" width=\"640\" height=\"426\"/></p>\n<p>挺进哈拉湖</p>\n<p><img src=\"http://p9.pstatp.com/large/66b500044df923bf1952\" width=\"640\" height=\"444\"/></p>\n<p>咱们首次发现的新大陆:狮身人面像</p>\n<p><img src=\"http://p3.pstatp.com/large/66b60000b944cc177fba\" width=\"640\" height=\"426\"/></p>\n<p>车子抛锚,无人区只能靠外星人救援了</p>\n<p><img src=\"http://p3.pstatp.com/large/66b70000a102a7633f62\" width=\"640\" height=\"480\"/></p>\n<p>出发前前方朋友传回的其他穿越队伍的现场图片(冰陷</p>\n<p><img src=\"http://p3.pstatp.com/large/66b300055e4f1af02547\" width=\"640\" height=\"640\"/></p>\n<p>大白萝卜+羊羔肉,高压锅一压,妥妥的幸福</p>\n<p><img src=\"http://p3.pstatp.com/large/66b400045ffd2dc1de35\" width=\"640\" height=\"426\"/></p>\n<p>纯净的天空,是我们内心宁静</p>\n<p><img src=\"http://p3.pstatp.com/large/66b40004601d29a2e712\" width=\"640\" height=\"960\"/></p>\n<p>这童话般的场景,因为他是无人区,所以显得弥足珍贵!!我想,这一刻,会载入每一个队员的内心深处。</p>\n</html>",
      "json_metadata": "{\"tags\":[\"cn\",\"travel\",\"cars\",\"photography\",\"story\"],\"image\":[\"http://p3.pstatp.com/large/66b300055ce4e231ef59\",\"http://p3.pstatp.com/large/66b9000014a1486b1ab8\",\"http://p9.pstatp.com/large/66b500044df923bf1952\",\"http://p3.pstatp.com/large/66b60000b944cc177fba\",\"http://p3.pstatp.com/large/66b70000a102a7633f62\",\"http://p3.pstatp.com/large/66b300055e4f1af02547\",\"http://p3.pstatp.com/large/66b400045ffd2dc1de35\",\"http://p3.pstatp.com/large/66b40004601d29a2e712\"],\"app\":\"steemit/0.1\",\"format\":\"html\"}"
    }
  ]
}
fblifereceived 0.023 SBD, 0.009 SP author reward for @fblife / elf
2018/02/06 09:38:18
authorfblife
permlinkelf
sbd payout0.023 SBD
steem payout0.000 STEEM
vesting payout14.318309 VESTS
Transaction InfoBlock #19628906/Virtual Operation #10
View Raw JSON Data
{
  "trx_id": "0000000000000000000000000000000000000000",
  "block": 19628906,
  "trx_in_block": 4294967295,
  "op_in_trx": 0,
  "virtual_op": 10,
  "timestamp": "2018-02-06T09:38:18",
  "op": [
    "author_reward",
    {
      "author": "fblife",
      "permlink": "elf",
      "sbd_payout": "0.023 SBD",
      "steem_payout": "0.000 STEEM",
      "vesting_payout": "14.318309 VESTS"
    }
  ]
}

Account Metadata

POSTING JSON METADATA
profile{"profile_image":"http://img4.fblife.com/FrhbImrEFLk8cWueohD6DBn-fvwB?imageView2/2/w/728/q/100","about":"steemitcn.com - Steemit中国,致力于打造国内steemiter交流的社区。","location":"beijing","website":"http://www.steemitcn.com"}
JSON METADATA
profile{"profile_image":"http://img4.fblife.com/FrhbImrEFLk8cWueohD6DBn-fvwB?imageView2/2/w/728/q/100","about":"steemitcn.com - Steemit中国,致力于打造国内steemiter交流的社区。","location":"beijing","website":"http://www.steemitcn.com"}
{
  "posting_json_metadata": {
    "profile": {
      "profile_image": "http://img4.fblife.com/FrhbImrEFLk8cWueohD6DBn-fvwB?imageView2/2/w/728/q/100",
      "about": "steemitcn.com - Steemit中国,致力于打造国内steemiter交流的社区。",
      "location": "beijing",
      "website": "http://www.steemitcn.com"
    }
  },
  "json_metadata": {
    "profile": {
      "profile_image": "http://img4.fblife.com/FrhbImrEFLk8cWueohD6DBn-fvwB?imageView2/2/w/728/q/100",
      "about": "steemitcn.com - Steemit中国,致力于打造国内steemiter交流的社区。",
      "location": "beijing",
      "website": "http://www.steemitcn.com"
    }
  }
}

Auth Keys

Owner
Single Signature
Public Keys
STM84nPXmCeVRvtnxYkQXDv1XiuYDR1bvmp6zTMKEbQEFQYNYMyEi1/1
Active
Single Signature
Public Keys
STM58WzpKpLLfBQA2d4XiuQteB2saM8ctwnHu9ini6JJMo9F3QKQB1/1
Posting
Single Signature
Public Keys
STM5FTSTMnC5ZTa43gvncWFkJqJ7qkUWYd9zLqtEWwWxuupGWEFbp1/1
Memo
STM5vMnNuqUu3q8KSWzRbRxi3VdnhZKRqq3z3xKNyAkrTtEM8tiAV
{
  "owner": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM84nPXmCeVRvtnxYkQXDv1XiuYDR1bvmp6zTMKEbQEFQYNYMyEi",
        1
      ]
    ]
  },
  "active": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM58WzpKpLLfBQA2d4XiuQteB2saM8ctwnHu9ini6JJMo9F3QKQB",
        1
      ]
    ]
  },
  "posting": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM5FTSTMnC5ZTa43gvncWFkJqJ7qkUWYd9zLqtEWwWxuupGWEFbp",
        1
      ]
    ]
  },
  "memo": "STM5vMnNuqUu3q8KSWzRbRxi3VdnhZKRqq3z3xKNyAkrTtEM8tiAV"
}

Witness Votes

0 / 30
No active witness votes.
[]