VOTING POWER100.00%
DOWNVOTE POWER100.00%
RESOURCE CREDITS100.00%
REPUTATION PROGRESS0.00%
Net Worth
0.015USD
STEEM
0.001STEEM
SBD
0.000SBD
Own SP
0.252SP
Detailed Balance
| STEEM | ||
| balance | 0.001STEEM | STEEM |
| market_balance | 0.000STEEM | STEEM |
| savings_balance | 0.000STEEM | STEEM |
| reward_steem_balance | 0.000STEEM | STEEM |
| STEEM POWER | ||
| Own SP | 0.252SP | SP |
| Delegated Out | 0.000SP | SP |
| Delegation In | 0.000SP | SP |
| Effective Power | 0.252SP | SP |
| Reward SP (pending) | 0.000SP | SP |
| SBD | ||
| sbd_balance | 0.000SBD | SBD |
| sbd_conversions | 0.000SBD | SBD |
| sbd_market_balance | 0.000SBD | SBD |
| savings_sbd_balance | 0.000SBD | SBD |
| reward_sbd_balance | 0.000SBD | SBD |
{
"balance": "0.001 STEEM",
"savings_balance": "0.000 STEEM",
"reward_steem_balance": "0.000 STEEM",
"vesting_shares": "409.030813 VESTS",
"delegated_vesting_shares": "0.000000 VESTS",
"received_vesting_shares": "0.000000 VESTS",
"sbd_balance": "0.000 SBD",
"savings_sbd_balance": "0.000 SBD",
"reward_sbd_balance": "0.000 SBD",
"conversions": []
}Account Info
| name | liushooter |
| id | 740283 |
| rank | 1,667,121 |
| reputation | 929855 |
| created | 2018-02-09T08:24:12 |
| recovery_account | cnsteem |
| proxy | None |
| post_count | 3 |
| comment_count | 0 |
| lifetime_vote_count | 0 |
| witnesses_voted_for | 0 |
| last_post | 2018-06-23T13:35:42 |
| last_root_post | 2018-06-23T13:35:42 |
| last_vote_time | 1970-01-01T00:00:00 |
| proxied_vsf_votes | 0, 0, 0, 0 |
| can_vote | 1 |
| voting_power | 10,000 |
| delayed_votes | 0 |
| balance | 0.001 STEEM |
| savings_balance | 0.000 STEEM |
| sbd_balance | 0.000 SBD |
| savings_sbd_balance | 0.000 SBD |
| vesting_shares | 409.030813 VESTS |
| delegated_vesting_shares | 0.000000 VESTS |
| received_vesting_shares | 0.000000 VESTS |
| reward_vesting_balance | 0.000000 VESTS |
| vesting_balance | 0.000 STEEM |
| vesting_withdraw_rate | 0.000000 VESTS |
| next_vesting_withdrawal | 1969-12-31T23:59:59 |
| withdrawn | 0 |
| to_withdraw | 0 |
| withdraw_routes | 0 |
| savings_withdraw_requests | 0 |
| last_account_recovery | 1970-01-01T00:00:00 |
| reset_account | null |
| last_owner_update | 2018-02-09T10:19:03 |
| last_account_update | 2018-06-23T13:07:33 |
| mined | No |
| sbd_seconds | 0 |
| sbd_last_interest_payment | 1970-01-01T00:00:00 |
| savings_sbd_last_interest_payment | 1970-01-01T00:00:00 |
{
"active": {
"account_auths": [],
"key_auths": [
[
"STM52fVA6xsL9fWzKVrhiuw5xzpjCYWmtP2xufyRazZNcRZKwPEBt",
1
]
],
"weight_threshold": 1
},
"balance": "0.001 STEEM",
"can_vote": true,
"comment_count": 0,
"created": "2018-02-09T08:24:12",
"curation_rewards": 0,
"delegated_vesting_shares": "0.000000 VESTS",
"downvote_manabar": {
"current_mana": 0,
"last_update_time": 1518164652
},
"guest_bloggers": [],
"id": 740283,
"json_metadata": "{\"profile\":{\"location\":\"beijing\",\"name\":\"shooter\",\"profile_image\":\"https://upload.jianshu.io/users/upload_avatars/47789/d1b82be1-b0c1-4ae1-a77e-197bf2b7a999.jpg\"}}",
"last_account_recovery": "1970-01-01T00:00:00",
"last_account_update": "2018-06-23T13:07:33",
"last_owner_update": "2018-02-09T10:19:03",
"last_post": "2018-06-23T13:35:42",
"last_root_post": "2018-06-23T13:35:42",
"last_vote_time": "1970-01-01T00:00:00",
"lifetime_vote_count": 0,
"market_history": [],
"memo_key": "STM7EgWkaTSDjDDCj55exwaUH9kuJdNezsW8CWaL2uwPcCNAExP7P",
"mined": false,
"name": "liushooter",
"next_vesting_withdrawal": "1969-12-31T23:59:59",
"other_history": [],
"owner": {
"account_auths": [],
"key_auths": [
[
"STM7AJqnguXtNuQ5Q3TebcPmSh7NrmVZd2DAQLZ5BVuxKGvcEWM37",
1
]
],
"weight_threshold": 1
},
"pending_claimed_accounts": 0,
"post_bandwidth": 0,
"post_count": 3,
"post_history": [],
"posting": {
"account_auths": [
[
"busy.app",
1
],
[
"dtube.app",
1
]
],
"key_auths": [
[
"STM5WzvyD9uT3ftyhDc1j5DpcMAYsjiVRrvs2y2oJTLbcQS58k2iF",
1
]
],
"weight_threshold": 1
},
"posting_json_metadata": "{\"profile\":{\"location\":\"beijing\",\"name\":\"shooter\",\"profile_image\":\"https://upload.jianshu.io/users/upload_avatars/47789/d1b82be1-b0c1-4ae1-a77e-197bf2b7a999.jpg\"}}",
"posting_rewards": 0,
"proxied_vsf_votes": [
0,
0,
0,
0
],
"proxy": "",
"received_vesting_shares": "0.000000 VESTS",
"recovery_account": "cnsteem",
"reputation": 929855,
"reset_account": "null",
"reward_sbd_balance": "0.000 SBD",
"reward_steem_balance": "0.000 STEEM",
"reward_vesting_balance": "0.000000 VESTS",
"reward_vesting_steem": "0.000 STEEM",
"savings_balance": "0.000 STEEM",
"savings_sbd_balance": "0.000 SBD",
"savings_sbd_last_interest_payment": "1970-01-01T00:00:00",
"savings_sbd_seconds": "0",
"savings_sbd_seconds_last_update": "1970-01-01T00:00:00",
"savings_withdraw_requests": 0,
"sbd_balance": "0.000 SBD",
"sbd_last_interest_payment": "1970-01-01T00:00:00",
"sbd_seconds": "0",
"sbd_seconds_last_update": "1970-01-01T00:00:00",
"tags_usage": [],
"to_withdraw": 0,
"transfer_history": [],
"vesting_balance": "0.000 STEEM",
"vesting_shares": "409.030813 VESTS",
"vesting_withdraw_rate": "0.000000 VESTS",
"vote_history": [],
"voting_manabar": {
"current_mana": 10000,
"last_update_time": 1518164652
},
"voting_power": 10000,
"withdraw_routes": 0,
"withdrawn": 0,
"witness_votes": [],
"witnesses_voted_for": 0,
"rank": 1667121
}Withdraw Routes
| Incoming | Outgoing |
|---|---|
Empty | Empty |
{
"incoming": [],
"outgoing": []
}From Date
To Date
2020/02/09 09:57:48
2020/02/09 09:57:48
| author | steemitboard |
| body | Congratulations @liushooter! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@liushooter/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/@liushooter) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=liushooter)_</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"]} |
| parent author | liushooter |
| parent permlink | u3a66ud5 |
| permlink | steemitboard-notify-liushooter-20200209t095748000z |
| title | |
| Transaction Info | Block #40665220/Trx 1ed046dbef0e5e69934f0f3664dceae3ada172a3 |
View Raw JSON Data
{
"block": 40665220,
"op": [
"comment",
{
"author": "steemitboard",
"body": "Congratulations @liushooter! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@liushooter/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/@liushooter) and compare to others on the [Steem Ranking](https://steemitboard.com/ranking/index.php?name=liushooter)_</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\"]}",
"parent_author": "liushooter",
"parent_permlink": "u3a66ud5",
"permlink": "steemitboard-notify-liushooter-20200209t095748000z",
"title": ""
}
],
"op_in_trx": 0,
"timestamp": "2020-02-09T09:57:48",
"trx_id": "1ed046dbef0e5e69934f0f3664dceae3ada172a3",
"trx_in_block": 5,
"virtual_op": 0
}dtubesent 0.001 STEEM to @liushooter- "Time is running out, claim your DTube account now before anyone else can! Login at https://d.tube"2019/08/22 15:40:21
dtubesent 0.001 STEEM to @liushooter- "Time is running out, claim your DTube account now before anyone else can! Login at https://d.tube"
2019/08/22 15:40:21
| amount | 0.001 STEEM |
| from | dtube |
| memo | Time is running out, claim your DTube account now before anyone else can! Login at https://d.tube |
| to | liushooter |
| Transaction Info | Block #35778818/Trx e719f7326c7cc723d8e3a5c7a90683dcd23d9667 |
View Raw JSON Data
{
"block": 35778818,
"op": [
"transfer",
{
"amount": "0.001 STEEM",
"from": "dtube",
"memo": "Time is running out, claim your DTube account now before anyone else can! Login at https://d.tube",
"to": "liushooter"
}
],
"op_in_trx": 0,
"timestamp": "2019-08-22T15:40:21",
"trx_id": "e719f7326c7cc723d8e3a5c7a90683dcd23d9667",
"trx_in_block": 49,
"virtual_op": 0
}2019/02/09 09:32:18
2019/02/09 09:32:18
| author | steemitboard |
| body | Congratulations @liushooter! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@liushooter/birthday1.png</td><td>Happy Birthday! - You are on the Steem blockchain for 1 year!</td></tr></table> <sub>_[Click here to view your Board](https://steemitboard.com/@liushooter)_</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"]} |
| parent author | liushooter |
| parent permlink | u3a66ud5 |
| permlink | steemitboard-notify-liushooter-20190209t093217000z |
| title | |
| Transaction Info | Block #30192719/Trx 2324fc0d5e6cefc09f515b6edc2d560cae4581cf |
View Raw JSON Data
{
"block": 30192719,
"op": [
"comment",
{
"author": "steemitboard",
"body": "Congratulations @liushooter! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@liushooter/birthday1.png</td><td>Happy Birthday! - You are on the Steem blockchain for 1 year!</td></tr></table>\n\n<sub>_[Click here to view your Board](https://steemitboard.com/@liushooter)_</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\"]}",
"parent_author": "liushooter",
"parent_permlink": "u3a66ud5",
"permlink": "steemitboard-notify-liushooter-20190209t093217000z",
"title": ""
}
],
"op_in_trx": 0,
"timestamp": "2019-02-09T09:32:18",
"trx_id": "2324fc0d5e6cefc09f515b6edc2d560cae4581cf",
"trx_in_block": 7,
"virtual_op": 0
}2018/06/24 08:49:36
2018/06/24 08:49:36
| author | steemitboard |
| body | Congratulations @liushooter! You have completed some achievement on Steemit and have been rewarded with new badge(s) : [](http://steemitboard.com/@liushooter) You got a First Vote <sub>_Click on the badge to view your Board of Honor._</sub> <sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub> **Do not miss the [last post](https://steemit.com/steemitboard/@steemitboard/steemitboard-world-cup-contest-results-of-day-10) from @steemitboard!** --- **Participate in the [SteemitBoard World Cup Contest](https://steemit.com/steemitboard/@steemitboard/steemitboard-world-cup-contest-collect-badges-and-win-free-sbd)!** Collect World Cup badges and win free SBD Support the Gold Sponsors of the contest: [@good-karma](https://v2.steemconnect.com/sign/account-witness-vote?witness=good-karma&approve=1) and [@lukestokes](https://v2.steemconnect.com/sign/account-witness-vote?witness=lukestokes.mhth&approve=1) --- > Do you like [SteemitBoard's project](https://steemit.com/@steemitboard)? Then **[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"]} |
| parent author | liushooter |
| parent permlink | u3a66ud5 |
| permlink | steemitboard-notify-liushooter-20180624t084938000z |
| title | |
| Transaction Info | Block #23598080/Trx 0f69af57cf06404c32ad727d1820ec7c287ed275 |
View Raw JSON Data
{
"block": 23598080,
"op": [
"comment",
{
"author": "steemitboard",
"body": "Congratulations @liushooter! You have completed some achievement on Steemit and have been rewarded with new badge(s) :\n\n[](http://steemitboard.com/@liushooter) You got a First Vote\n\n<sub>_Click on the badge to view your Board of Honor._</sub>\n<sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub>\n\n\n\n**Do not miss the [last post](https://steemit.com/steemitboard/@steemitboard/steemitboard-world-cup-contest-results-of-day-10) from @steemitboard!**\n\n---\n**Participate in the [SteemitBoard World Cup Contest](https://steemit.com/steemitboard/@steemitboard/steemitboard-world-cup-contest-collect-badges-and-win-free-sbd)!**\nCollect World Cup badges and win free SBD\nSupport the Gold Sponsors of the contest: [@good-karma](https://v2.steemconnect.com/sign/account-witness-vote?witness=good-karma&approve=1) and [@lukestokes](https://v2.steemconnect.com/sign/account-witness-vote?witness=lukestokes.mhth&approve=1)\n\n---\n\n> Do you like [SteemitBoard's project](https://steemit.com/@steemitboard)? Then **[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\"]}",
"parent_author": "liushooter",
"parent_permlink": "u3a66ud5",
"permlink": "steemitboard-notify-liushooter-20180624t084938000z",
"title": ""
}
],
"op_in_trx": 0,
"timestamp": "2018-06-24T08:49:36",
"trx_id": "0f69af57cf06404c32ad727d1820ec7c287ed275",
"trx_in_block": 23,
"virtual_op": 0
}ax3upvoted (3.00%) @liushooter / u3a66ud52018/06/23 13:35:51
ax3upvoted (3.00%) @liushooter / u3a66ud5
2018/06/23 13:35:51
| author | liushooter |
| permlink | u3a66ud5 |
| voter | ax3 |
| weight | 300 (3.00%) |
| Transaction Info | Block #23575012/Trx 683b4bebea961136d78e8cc2424097ed16049c48 |
View Raw JSON Data
{
"block": 23575012,
"op": [
"vote",
{
"author": "liushooter",
"permlink": "u3a66ud5",
"voter": "ax3",
"weight": 300
}
],
"op_in_trx": 0,
"timestamp": "2018-06-23T13:35:51",
"trx_id": "683b4bebea961136d78e8cc2424097ed16049c48",
"trx_in_block": 33,
"virtual_op": 0
}liushooterupdated options for u3a66ud52018/06/23 13:35:42
liushooterupdated options for u3a66ud5
2018/06/23 13:35:42
| allow curation rewards | true |
| allow votes | true |
| author | liushooter |
| extensions | [[0,{"beneficiaries":[{"account":"dtube","weight":2500}]}]] |
| max accepted payout | 1000000.000 SBD |
| percent steem dollars | 10000 |
| permlink | u3a66ud5 |
| Transaction Info | Block #23575009/Trx 202a788f7851a122c14aed2fb478d0ad8eb56467 |
View Raw JSON Data
{
"block": 23575009,
"op": [
"comment_options",
{
"allow_curation_rewards": true,
"allow_votes": true,
"author": "liushooter",
"extensions": [
[
0,
{
"beneficiaries": [
{
"account": "dtube",
"weight": 2500
}
]
}
]
],
"max_accepted_payout": "1000000.000 SBD",
"percent_steem_dollars": 10000,
"permlink": "u3a66ud5"
}
],
"op_in_trx": 0,
"timestamp": "2018-06-23T13:35:42",
"trx_id": "202a788f7851a122c14aed2fb478d0ad8eb56467",
"trx_in_block": 73,
"virtual_op": 0
}liushooterpublished a new post: u3a66ud52018/06/23 13:35:42
liushooterpublished a new post: u3a66ud5
2018/06/23 13:35:42
| author | liushooter |
| body | <center><a href='https://d.tube/#!/v/liushooter/u3a66ud5'><img src='https://ipfs.io/ipfs/QmQw155mpr6icxi2XHvvjV59cGebT4ypZSZvKRPYw8uQ6K'></a></center><hr> 一起同窗过2 <hr><a href='https://d.tube/#!/v/liushooter/u3a66ud5'> ▶️ DTube</a><br /><a href='https://ipfs.io/ipfs/QmahMwkGK9Dbx74xQ2sWxuarGt4sWNK3AwsjKGqTK7s8vj'> ▶️ IPFS</a> |
| json metadata | {"video":{"info":{"title":"一起同窗过2","snaphash":"Qmdm88ynpuBW8yP7F6kPyyxdHK6WWagZyYEe6s58gcoPrW","author":"liushooter","permlink":"u3a66ud5","duration":409.994739,"filesize":265819447,"spritehash":"QmP3Ranf8KB958G9cQ83Jw83L7D6MR2RLDuMUo9JQT4CkB"},"content":{"videohash":"QmahMwkGK9Dbx74xQ2sWxuarGt4sWNK3AwsjKGqTK7s8vj","description":"一起同窗过2","tags":["tv","chinese","邹倩雯"],"video240hash":"QmWWd3rKJ69GjuPzRtTHzC16168grT48yHQSca2D7Lwx8G","video480hash":"QmbDJG8wLXJmKFvxXdSeTp9WwWsDsJcmLFk51zC4N66KGW"}},"tags":["tv","chinese","邹倩雯","dtube"],"app":"dtube/0.7"} |
| parent author | |
| parent permlink | tv |
| permlink | u3a66ud5 |
| title | 一起同窗过2 |
| Transaction Info | Block #23575009/Trx 202a788f7851a122c14aed2fb478d0ad8eb56467 |
View Raw JSON Data
{
"block": 23575009,
"op": [
"comment",
{
"author": "liushooter",
"body": "<center><a href='https://d.tube/#!/v/liushooter/u3a66ud5'><img src='https://ipfs.io/ipfs/QmQw155mpr6icxi2XHvvjV59cGebT4ypZSZvKRPYw8uQ6K'></a></center><hr>\n\n一起同窗过2\n\n<hr><a href='https://d.tube/#!/v/liushooter/u3a66ud5'> ▶️ DTube</a><br /><a href='https://ipfs.io/ipfs/QmahMwkGK9Dbx74xQ2sWxuarGt4sWNK3AwsjKGqTK7s8vj'> ▶️ IPFS</a>",
"json_metadata": "{\"video\":{\"info\":{\"title\":\"一起同窗过2\",\"snaphash\":\"Qmdm88ynpuBW8yP7F6kPyyxdHK6WWagZyYEe6s58gcoPrW\",\"author\":\"liushooter\",\"permlink\":\"u3a66ud5\",\"duration\":409.994739,\"filesize\":265819447,\"spritehash\":\"QmP3Ranf8KB958G9cQ83Jw83L7D6MR2RLDuMUo9JQT4CkB\"},\"content\":{\"videohash\":\"QmahMwkGK9Dbx74xQ2sWxuarGt4sWNK3AwsjKGqTK7s8vj\",\"description\":\"一起同窗过2\",\"tags\":[\"tv\",\"chinese\",\"邹倩雯\"],\"video240hash\":\"QmWWd3rKJ69GjuPzRtTHzC16168grT48yHQSca2D7Lwx8G\",\"video480hash\":\"QmbDJG8wLXJmKFvxXdSeTp9WwWsDsJcmLFk51zC4N66KGW\"}},\"tags\":[\"tv\",\"chinese\",\"邹倩雯\",\"dtube\"],\"app\":\"dtube/0.7\"}",
"parent_author": "",
"parent_permlink": "tv",
"permlink": "u3a66ud5",
"title": "一起同窗过2"
}
],
"op_in_trx": 0,
"timestamp": "2018-06-23T13:35:42",
"trx_id": "202a788f7851a122c14aed2fb478d0ad8eb56467",
"trx_in_block": 73,
"virtual_op": 0
}liushooterfollowed @dtube2018/06/23 13:07:39
liushooterfollowed @dtube
2018/06/23 13:07:39
| id | follow |
| json | ["follow",{"follower":"liushooter","following":"dtube","what":["blog"]}] |
| required auths | [] |
| required posting auths | ["liushooter"] |
| Transaction Info | Block #23574448/Trx a93fdd1e839f792dda091773f050eb83a7c73b0a |
View Raw JSON Data
{
"block": 23574448,
"op": [
"custom_json",
{
"id": "follow",
"json": "[\"follow\",{\"follower\":\"liushooter\",\"following\":\"dtube\",\"what\":[\"blog\"]}]",
"required_auths": [],
"required_posting_auths": [
"liushooter"
]
}
],
"op_in_trx": 0,
"timestamp": "2018-06-23T13:07:39",
"trx_id": "a93fdd1e839f792dda091773f050eb83a7c73b0a",
"trx_in_block": 49,
"virtual_op": 0
}liushooterupdated their account properties2018/06/23 13:07:33
liushooterupdated their account properties
2018/06/23 13:07:33
| account | liushooter |
| json metadata | {"profile":{"location":"beijing","name":"shooter","profile_image":"https://upload.jianshu.io/users/upload_avatars/47789/d1b82be1-b0c1-4ae1-a77e-197bf2b7a999.jpg"}} |
| memo key | STM7EgWkaTSDjDDCj55exwaUH9kuJdNezsW8CWaL2uwPcCNAExP7P |
| posting | {"account_auths":[["busy.app",1],["dtube.app",1]],"key_auths":[["STM5WzvyD9uT3ftyhDc1j5DpcMAYsjiVRrvs2y2oJTLbcQS58k2iF",1]],"weight_threshold":1} |
| Transaction Info | Block #23574446/Trx 495b60a23475aa05a9ecd48b28f1df3c6fdeeb7c |
View Raw JSON Data
{
"block": 23574446,
"op": [
"account_update",
{
"account": "liushooter",
"json_metadata": "{\"profile\":{\"location\":\"beijing\",\"name\":\"shooter\",\"profile_image\":\"https://upload.jianshu.io/users/upload_avatars/47789/d1b82be1-b0c1-4ae1-a77e-197bf2b7a999.jpg\"}}",
"memo_key": "STM7EgWkaTSDjDDCj55exwaUH9kuJdNezsW8CWaL2uwPcCNAExP7P",
"posting": {
"account_auths": [
[
"busy.app",
1
],
[
"dtube.app",
1
]
],
"key_auths": [
[
"STM5WzvyD9uT3ftyhDc1j5DpcMAYsjiVRrvs2y2oJTLbcQS58k2iF",
1
]
],
"weight_threshold": 1
}
}
],
"op_in_trx": 0,
"timestamp": "2018-06-23T13:07:33",
"trx_id": "495b60a23475aa05a9ecd48b28f1df3c6fdeeb7c",
"trx_in_block": 20,
"virtual_op": 0
}liushooterflagged (-100.00%) @legendx / dpos2018/06/21 04:51:27
liushooterflagged (-100.00%) @legendx / dpos
2018/06/21 04:51:27
| author | legendx |
| permlink | dpos |
| voter | liushooter |
| weight | -10000 (-100.00%) |
| Transaction Info | Block #23506929/Trx b2fbf47d7bce1d9d078351a65dcd593b780bcf34 |
View Raw JSON Data
{
"block": 23506929,
"op": [
"vote",
{
"author": "legendx",
"permlink": "dpos",
"voter": "liushooter",
"weight": -10000
}
],
"op_in_trx": 0,
"timestamp": "2018-06-21T04:51:27",
"trx_id": "b2fbf47d7bce1d9d078351a65dcd593b780bcf34",
"trx_in_block": 33,
"virtual_op": 0
}liushooterflagged (-100.00%) @dantheman / could-wren-be-the-future-of-smart-contract-scripting-languages2018/04/12 03:52:27
liushooterflagged (-100.00%) @dantheman / could-wren-be-the-future-of-smart-contract-scripting-languages
2018/04/12 03:52:27
| author | dantheman |
| permlink | could-wren-be-the-future-of-smart-contract-scripting-languages |
| voter | liushooter |
| weight | -10000 (-100.00%) |
| Transaction Info | Block #21491787/Trx 3fbb2a5e33fd7a1e44993e672f41c2b236fcf613 |
View Raw JSON Data
{
"block": 21491787,
"op": [
"vote",
{
"author": "dantheman",
"permlink": "could-wren-be-the-future-of-smart-contract-scripting-languages",
"voter": "liushooter",
"weight": -10000
}
],
"op_in_trx": 0,
"timestamp": "2018-04-12T03:52:27",
"trx_id": "3fbb2a5e33fd7a1e44993e672f41c2b236fcf613",
"trx_in_block": 14,
"virtual_op": 0
}liushooterflagged (-100.00%) @dantheman / web-assembly-on-eos-50-000-transfers-per-second2018/04/12 03:52:15
liushooterflagged (-100.00%) @dantheman / web-assembly-on-eos-50-000-transfers-per-second
2018/04/12 03:52:15
| author | dantheman |
| permlink | web-assembly-on-eos-50-000-transfers-per-second |
| voter | liushooter |
| weight | -10000 (-100.00%) |
| Transaction Info | Block #21491783/Trx 906dd2206e9630dfb0fcab7775c589a834a2c7f3 |
View Raw JSON Data
{
"block": 21491783,
"op": [
"vote",
{
"author": "dantheman",
"permlink": "web-assembly-on-eos-50-000-transfers-per-second",
"voter": "liushooter",
"weight": -10000
}
],
"op_in_trx": 0,
"timestamp": "2018-04-12T03:52:15",
"trx_id": "906dd2206e9630dfb0fcab7775c589a834a2c7f3",
"trx_in_block": 17,
"virtual_op": 0
}liushooterflagged (-100.00%) @dantheman / web-assembly-on-eos-50-000-transfers-per-second2018/04/12 03:51:48
liushooterflagged (-100.00%) @dantheman / web-assembly-on-eos-50-000-transfers-per-second
2018/04/12 03:51:48
| author | dantheman |
| permlink | web-assembly-on-eos-50-000-transfers-per-second |
| voter | liushooter |
| weight | -10000 (-100.00%) |
| Transaction Info | Block #21491774/Trx a301c30d7fba4d4bca1fdc9f885e291b1a6bd8a4 |
View Raw JSON Data
{
"block": 21491774,
"op": [
"vote",
{
"author": "dantheman",
"permlink": "web-assembly-on-eos-50-000-transfers-per-second",
"voter": "liushooter",
"weight": -10000
}
],
"op_in_trx": 0,
"timestamp": "2018-04-12T03:51:48",
"trx_id": "a301c30d7fba4d4bca1fdc9f885e291b1a6bd8a4",
"trx_in_block": 0,
"virtual_op": 0
}liushooterfollowed @lukestokes2018/04/12 03:49:15
liushooterfollowed @lukestokes
2018/04/12 03:49:15
| id | follow |
| json | ["follow",{"follower":"liushooter","following":"lukestokes","what":["blog"]}] |
| required auths | [] |
| required posting auths | ["liushooter"] |
| Transaction Info | Block #21491723/Trx 565dd59c467c773128328fdd12baca9084c51778 |
View Raw JSON Data
{
"block": 21491723,
"op": [
"custom_json",
{
"id": "follow",
"json": "[\"follow\",{\"follower\":\"liushooter\",\"following\":\"lukestokes\",\"what\":[\"blog\"]}]",
"required_auths": [],
"required_posting_auths": [
"liushooter"
]
}
],
"op_in_trx": 0,
"timestamp": "2018-04-12T03:49:15",
"trx_id": "565dd59c467c773128328fdd12baca9084c51778",
"trx_in_block": 8,
"virtual_op": 0
}liushooterfollowed @dayzh2018/04/06 12:33:15
liushooterfollowed @dayzh
2018/04/06 12:33:15
| id | follow |
| json | ["follow",{"follower":"liushooter","following":"dayzh","what":["blog"]}] |
| required auths | [] |
| required posting auths | ["liushooter"] |
| Transaction Info | Block #21329415/Trx 408629bb8fcd53fa9771698ab31e7be66d709b46 |
View Raw JSON Data
{
"block": 21329415,
"op": [
"custom_json",
{
"id": "follow",
"json": "[\"follow\",{\"follower\":\"liushooter\",\"following\":\"dayzh\",\"what\":[\"blog\"]}]",
"required_auths": [],
"required_posting_auths": [
"liushooter"
]
}
],
"op_in_trx": 0,
"timestamp": "2018-04-06T12:33:15",
"trx_id": "408629bb8fcd53fa9771698ab31e7be66d709b46",
"trx_in_block": 10,
"virtual_op": 0
}liushooterpublished a new post: bitcoin2018/03/09 04:12:57
liushooterpublished a new post: bitcoin
2018/03/09 04:12:57
| author | liushooter |
| body | 根据[How to create Bitcoin Address](https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses#How_to_create_Bitcoin_Address)的步骤, 我们要先得到 ECDSA private key, 再得到 ECDSA public key, 然后再计算出钱包地址. ECDSA是`Elliptic Curve Digital Signature Algorithm`的缩写, 即`椭圆曲线数字签名算法`. #### Step1. ECDSA private key 执行openssl命令, bitcoin要用到secp256k1 ``` openssl ecparam -name secp256k1 -genkey > priv.pem # DER格式 openssl ec -in priv.pem -outform DER | tail -c +8 | head -c 32 | xxd -p -c 32 # 输出 read EC key writing EC key ccea9c5a20e2b78c2e0fbdd8ae2d2b67e6b1894ccb7a55fc1de08bd53994ea64 ``` 得到秘钥文件priv.pem, 输出DER格式, 长度是 64 `ccea9c5a20e2b78c2e0fbdd8ae2d2b67e6b1894ccb7a55fc1de08bd53994ea64` #### Step2. ECDSA public key priv.pem 生成 pub_key ``` openssl ec -in priv.pem -pubout -outform DER | tail -c 65 | xxd -p -c 65 # 输出 read EC key writing EC key 04d061e9c5891f579fd548cfd22ff29f5c642714cc7e7a9215f0071ef5a5723f691757b28e31be71f09f24673eed52348e58d53bcfd26f4d96ec6bf1489eab429d ``` 同样输出DER格式, 长度是130 pub_key = `04d061e9c5891f579fd548cfd22ff29f5c642714cc7e7a9215f0071ef5a5723f691757b28e31be71f09f24673eed52348e58d53bcfd26f4d96ec6bf1489eab429d` #### Step3. 第2步结果进行hash160运算 hash160运算就是先进行SHA256, 再进行RMD160 ```ruby bytes = [pub_key].pack("H*") # 转为16进制 hash160_val = Digest::RMD160.hexdigest(Digest::SHA256.digest(bytes) ) ``` hash160_val = `2b6f3b9e337cedbb7c40839523fb1100709c12f7` #### Step4. 第3步结果加上前缀符 前缀符一般是`00`, 会生成普通的主网地址 bitcoin address 前缀符有好几种, 具体看https://en.bitcoin.it/wiki/List_of_address_prefixes ``` '00'+ '2b6f3b9e337cedbb7c40839523fb1100709c12f7' ``` step_04 = `002b6f3b9e337cedbb7c40839523fb1100709c12f7` #### Step5. 第4步结果, 执行2次SHA256, 取前8位作为校验和 ``` hex_str = [step_04].pack("H*") checksum = Digest::SHA256.hexdigest(Digest::SHA256.digest(hex_str) )[0...8] ``` checksum = `86b2e90c` #### Step6. 第4步结果 跟 第5步结果合并 ``` '002b6f3b9e337cedbb7c40839523fb1100709c12f7' + '86b2e90c' # step_04 + checksum ``` step_06 = `002b6f3b9e337cedbb7c40839523fb1100709c12f786b2e90c` #### Step7. Base58编码 Base58是一种独特的编码方式, 是Base64的变形, 主要用于Bitcoin的钱包地址. 相比Base64, Base58去掉了数字`0`, 大写字母`O`, 大写字母`I`, 小写字母`l`, `+`和`/`, 避免引起视觉混淆. 来个base58算法 ``` def encode_base58(int_val, leading_zero_bytes=0) alpha = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz" base58_val, base = '', alpha.size while int_val > 0 int_val, remainder = int_val.divmod(base) base58_val = alpha[remainder] + base58_val end base58_val end ``` #### Step8. 第6步结果进行base58编码 ```ruby step_06 = "002b6f3b9e337cedbb7c40839523fb1100709c12f786b2e90c" leading_zero_bytes = (step_06.match(/^([0]+)/) ? $1 : '').size / 2 # leading_zero_bytes的作用是字母填充, 待研究下 address = ("1" * leading_zero_bytes) + encode_base58(step_06.to_i(16) ) ``` 得到 `14xfJr1DArtYR156XBs28FoYk6sQqirT2s`, 这就是了一个标准的bitcoin地址. > 提问: 通过bitcoin address能反向得到hash160_val么 ?! 终于大功告成 还是乖乖的用[bitcoin-ruby](https://github.com/lian/bitcoin-ruby)吧 ```ruby require 'bitcoin' pri_key, pub_key = Bitcoin.generate_key # 私钥 公钥 # 通过ffi调用openssl得到 # 很多类库都这么做 怕出致命错误吧 address = Bitcoin::pubkey_to_address(pub_key) ``` 在bitcoin系统中,私钥能得公钥, 公钥能得到钱包地址, 私钥=>公钥=>钱包地址, 而反向是不可能的. **牢记你的私钥**, 而且**私钥不能修改**, 谁掌握了私钥谁就拥有了这些币!!! --- 参考: https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses https://en.bitcoin.it/wiki/Address https://en.bitcoin.it/wiki/List_of_address_prefixes |
| json metadata | {"tags":["bitcoin"],"links":["https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses#How_to_create_Bitcoin_Address","https://en.bitcoin.it/wiki/List_of_address_prefixes","https://github.com/lian/bitcoin-ruby","https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses","https://en.bitcoin.it/wiki/Address"],"app":"steemit/0.1","format":"markdown"} |
| parent author | |
| parent permlink | bitcoin |
| permlink | bitcoin |
| title | bitcoin地址是如何生成的 |
| Transaction Info | Block #20514277/Trx 8e6a5809d86a7537d161f4be1593dad7a52f8f9d |
View Raw JSON Data
{
"block": 20514277,
"op": [
"comment",
{
"author": "liushooter",
"body": "根据[How to create Bitcoin Address](https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses#How_to_create_Bitcoin_Address)的步骤,\n我们要先得到 ECDSA private key, 再得到 ECDSA public key, 然后再计算出钱包地址.\nECDSA是`Elliptic Curve Digital Signature Algorithm`的缩写, 即`椭圆曲线数字签名算法`.\n\n\n#### Step1. ECDSA private key\n\n执行openssl命令, bitcoin要用到secp256k1\n\n```\nopenssl ecparam -name secp256k1 -genkey > priv.pem\n\n# DER格式\nopenssl ec -in priv.pem -outform DER | tail -c +8 | head -c 32 | xxd -p -c 32\n\n# 输出\nread EC key\nwriting EC key\nccea9c5a20e2b78c2e0fbdd8ae2d2b67e6b1894ccb7a55fc1de08bd53994ea64\n```\n得到秘钥文件priv.pem, 输出DER格式, 长度是 64\n`ccea9c5a20e2b78c2e0fbdd8ae2d2b67e6b1894ccb7a55fc1de08bd53994ea64`\n\n#### Step2. ECDSA public key\n\npriv.pem 生成 pub_key\n\n```\nopenssl ec -in priv.pem -pubout -outform DER | tail -c 65 | xxd -p -c 65\n\n# 输出\nread EC key\nwriting EC key\n04d061e9c5891f579fd548cfd22ff29f5c642714cc7e7a9215f0071ef5a5723f691757b28e31be71f09f24673eed52348e58d53bcfd26f4d96ec6bf1489eab429d\n```\n\n同样输出DER格式, 长度是130\npub_key = `04d061e9c5891f579fd548cfd22ff29f5c642714cc7e7a9215f0071ef5a5723f691757b28e31be71f09f24673eed52348e58d53bcfd26f4d96ec6bf1489eab429d`\n\n#### Step3. 第2步结果进行hash160运算\n\nhash160运算就是先进行SHA256, 再进行RMD160\n\n```ruby\nbytes = [pub_key].pack(\"H*\") # 转为16进制\nhash160_val = Digest::RMD160.hexdigest(Digest::SHA256.digest(bytes) )\n```\n\nhash160_val = `2b6f3b9e337cedbb7c40839523fb1100709c12f7`\n\n#### Step4. 第3步结果加上前缀符\n\n前缀符一般是`00`, 会生成普通的主网地址\nbitcoin address 前缀符有好几种, 具体看https://en.bitcoin.it/wiki/List_of_address_prefixes\n\n```\n'00'+ '2b6f3b9e337cedbb7c40839523fb1100709c12f7'\n```\n\nstep_04 = `002b6f3b9e337cedbb7c40839523fb1100709c12f7`\n\n#### Step5. 第4步结果, 执行2次SHA256, 取前8位作为校验和\n\n```\nhex_str = [step_04].pack(\"H*\")\nchecksum = Digest::SHA256.hexdigest(Digest::SHA256.digest(hex_str) )[0...8]\n```\n\nchecksum = `86b2e90c`\n\n#### Step6. 第4步结果 跟 第5步结果合并\n\n```\n'002b6f3b9e337cedbb7c40839523fb1100709c12f7' + '86b2e90c'\n# step_04 + checksum\n```\n\nstep_06 = `002b6f3b9e337cedbb7c40839523fb1100709c12f786b2e90c`\n\n#### Step7. Base58编码\n\nBase58是一种独特的编码方式, 是Base64的变形, 主要用于Bitcoin的钱包地址.\n相比Base64, Base58去掉了数字`0`, 大写字母`O`, 大写字母`I`, 小写字母`l`, `+`和`/`, 避免引起视觉混淆.\n\n来个base58算法\n\n```\ndef encode_base58(int_val, leading_zero_bytes=0)\n alpha = \"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\"\n base58_val, base = '', alpha.size\n\n while int_val > 0\n int_val, remainder = int_val.divmod(base)\n base58_val = alpha[remainder] + base58_val\n end\n\n base58_val\nend\n```\n\n#### Step8. 第6步结果进行base58编码\n\n```ruby\nstep_06 = \"002b6f3b9e337cedbb7c40839523fb1100709c12f786b2e90c\"\nleading_zero_bytes = (step_06.match(/^([0]+)/) ? $1 : '').size / 2\n# leading_zero_bytes的作用是字母填充, 待研究下\n\naddress = (\"1\" * leading_zero_bytes) + encode_base58(step_06.to_i(16) )\n```\n\n得到 `14xfJr1DArtYR156XBs28FoYk6sQqirT2s`, 这就是了一个标准的bitcoin地址.\n\n> 提问: 通过bitcoin address能反向得到hash160_val么 ?!\n\n\n终于大功告成\n\n还是乖乖的用[bitcoin-ruby](https://github.com/lian/bitcoin-ruby)吧\n\n```ruby\nrequire 'bitcoin'\n\npri_key, pub_key = Bitcoin.generate_key # 私钥 公钥\n# 通过ffi调用openssl得到\n# 很多类库都这么做 怕出致命错误吧\naddress = Bitcoin::pubkey_to_address(pub_key)\n```\n\n在bitcoin系统中,私钥能得公钥, 公钥能得到钱包地址,\n私钥=>公钥=>钱包地址, 而反向是不可能的.\n**牢记你的私钥**, 而且**私钥不能修改**, 谁掌握了私钥谁就拥有了这些币!!!\n\n---\n\n参考:\n\nhttps://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses\nhttps://en.bitcoin.it/wiki/Address\nhttps://en.bitcoin.it/wiki/List_of_address_prefixes",
"json_metadata": "{\"tags\":[\"bitcoin\"],\"links\":[\"https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses#How_to_create_Bitcoin_Address\",\"https://en.bitcoin.it/wiki/List_of_address_prefixes\",\"https://github.com/lian/bitcoin-ruby\",\"https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses\",\"https://en.bitcoin.it/wiki/Address\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}",
"parent_author": "",
"parent_permlink": "bitcoin",
"permlink": "bitcoin",
"title": "bitcoin地址是如何生成的"
}
],
"op_in_trx": 0,
"timestamp": "2018-03-09T04:12:57",
"trx_id": "8e6a5809d86a7537d161f4be1593dad7a52f8f9d",
"trx_in_block": 35,
"virtual_op": 0
}liushooterfollowed @sensistar2018/02/28 03:05:06
liushooterfollowed @sensistar
2018/02/28 03:05:06
| id | follow |
| json | ["follow",{"follower":"liushooter","following":"sensistar","what":["blog"]}] |
| required auths | [] |
| required posting auths | ["liushooter"] |
| Transaction Info | Block #20253940/Trx 6d8daacafe195f55ee6daa3566a91e6f5ef41170 |
View Raw JSON Data
{
"block": 20253940,
"op": [
"custom_json",
{
"id": "follow",
"json": "[\"follow\",{\"follower\":\"liushooter\",\"following\":\"sensistar\",\"what\":[\"blog\"]}]",
"required_auths": [],
"required_posting_auths": [
"liushooter"
]
}
],
"op_in_trx": 0,
"timestamp": "2018-02-28T03:05:06",
"trx_id": "6d8daacafe195f55ee6daa3566a91e6f5ef41170",
"trx_in_block": 3,
"virtual_op": 0
}liushooterfollowed @fabien2018/02/28 03:04:12
liushooterfollowed @fabien
2018/02/28 03:04:12
| id | follow |
| json | ["follow",{"follower":"liushooter","following":"fabien","what":["blog"]}] |
| required auths | [] |
| required posting auths | ["liushooter"] |
| Transaction Info | Block #20253922/Trx 76db6f0a103ad5ebeb64fdd443c45e027861a385 |
View Raw JSON Data
{
"block": 20253922,
"op": [
"custom_json",
{
"id": "follow",
"json": "[\"follow\",{\"follower\":\"liushooter\",\"following\":\"fabien\",\"what\":[\"blog\"]}]",
"required_auths": [],
"required_posting_auths": [
"liushooter"
]
}
],
"op_in_trx": 0,
"timestamp": "2018-02-28T03:04:12",
"trx_id": "76db6f0a103ad5ebeb64fdd443c45e027861a385",
"trx_in_block": 35,
"virtual_op": 0
}liushooterfollowed @ekitcho2018/02/28 03:04:09
liushooterfollowed @ekitcho
2018/02/28 03:04:09
| id | follow |
| json | ["follow",{"follower":"liushooter","following":"ekitcho","what":["blog"]}] |
| required auths | [] |
| required posting auths | ["liushooter"] |
| Transaction Info | Block #20253921/Trx 2c815568e82fd1c0b62b610e8f81510e5491cf08 |
View Raw JSON Data
{
"block": 20253921,
"op": [
"custom_json",
{
"id": "follow",
"json": "[\"follow\",{\"follower\":\"liushooter\",\"following\":\"ekitcho\",\"what\":[\"blog\"]}]",
"required_auths": [],
"required_posting_auths": [
"liushooter"
]
}
],
"op_in_trx": 0,
"timestamp": "2018-02-28T03:04:09",
"trx_id": "2c815568e82fd1c0b62b610e8f81510e5491cf08",
"trx_in_block": 31,
"virtual_op": 0
}liushooterfollowed @kalasoo2018/02/28 02:56:21
liushooterfollowed @kalasoo
2018/02/28 02:56:21
| id | follow |
| json | ["follow",{"follower":"liushooter","following":"kalasoo","what":["blog"]}] |
| required auths | [] |
| required posting auths | ["liushooter"] |
| Transaction Info | Block #20253765/Trx 9f0e8b5aa4576ffaa12244114c7f9b473570daa4 |
View Raw JSON Data
{
"block": 20253765,
"op": [
"custom_json",
{
"id": "follow",
"json": "[\"follow\",{\"follower\":\"liushooter\",\"following\":\"kalasoo\",\"what\":[\"blog\"]}]",
"required_auths": [],
"required_posting_auths": [
"liushooter"
]
}
],
"op_in_trx": 0,
"timestamp": "2018-02-28T02:56:21",
"trx_id": "9f0e8b5aa4576ffaa12244114c7f9b473570daa4",
"trx_in_block": 76,
"virtual_op": 0
}liushooterunfollowed @kalasoo2018/02/28 02:56:09
liushooterunfollowed @kalasoo
2018/02/28 02:56:09
| id | follow |
| json | ["follow",{"follower":"liushooter","following":"kalasoo","what":[]}] |
| required auths | [] |
| required posting auths | ["liushooter"] |
| Transaction Info | Block #20253761/Trx 0fc0ca496b70570c0f0893dc42b662c46d8f662f |
View Raw JSON Data
{
"block": 20253761,
"op": [
"custom_json",
{
"id": "follow",
"json": "[\"follow\",{\"follower\":\"liushooter\",\"following\":\"kalasoo\",\"what\":[]}]",
"required_auths": [],
"required_posting_auths": [
"liushooter"
]
}
],
"op_in_trx": 0,
"timestamp": "2018-02-28T02:56:09",
"trx_id": "0fc0ca496b70570c0f0893dc42b662c46d8f662f",
"trx_in_block": 34,
"virtual_op": 0
}liushooterfollowed @kimzwarch2018/02/28 02:53:57
liushooterfollowed @kimzwarch
2018/02/28 02:53:57
| id | follow |
| json | ["follow",{"follower":"liushooter","following":"kimzwarch","what":["blog"]}] |
| required auths | [] |
| required posting auths | ["liushooter"] |
| Transaction Info | Block #20253717/Trx 51433c1b39cad78c00b127702c6714e4fa136e0a |
View Raw JSON Data
{
"block": 20253717,
"op": [
"custom_json",
{
"id": "follow",
"json": "[\"follow\",{\"follower\":\"liushooter\",\"following\":\"kimzwarch\",\"what\":[\"blog\"]}]",
"required_auths": [],
"required_posting_auths": [
"liushooter"
]
}
],
"op_in_trx": 0,
"timestamp": "2018-02-28T02:53:57",
"trx_id": "51433c1b39cad78c00b127702c6714e4fa136e0a",
"trx_in_block": 55,
"virtual_op": 0
}liushooterfollowed @kalasoo2018/02/28 02:35:00
liushooterfollowed @kalasoo
2018/02/28 02:35:00
| id | follow |
| json | ["follow",{"follower":"liushooter","following":"kalasoo","what":["blog"]}] |
| required auths | [] |
| required posting auths | ["liushooter"] |
| Transaction Info | Block #20253338/Trx 9a4838a8526f60e6ca61f157a74ab07653632c5c |
View Raw JSON Data
{
"block": 20253338,
"op": [
"custom_json",
{
"id": "follow",
"json": "[\"follow\",{\"follower\":\"liushooter\",\"following\":\"kalasoo\",\"what\":[\"blog\"]}]",
"required_auths": [],
"required_posting_auths": [
"liushooter"
]
}
],
"op_in_trx": 0,
"timestamp": "2018-02-28T02:35:00",
"trx_id": "9a4838a8526f60e6ca61f157a74ab07653632c5c",
"trx_in_block": 36,
"virtual_op": 0
}liushooterupdated their account properties2018/02/26 07:39:36
liushooterupdated their account properties
2018/02/26 07:39:36
| account | liushooter |
| json metadata | {"profile":{"location":"beijing","name":"shooter","profile_image":"https://upload.jianshu.io/users/upload_avatars/47789/d1b82be1-b0c1-4ae1-a77e-197bf2b7a999.jpg"}} |
| memo key | STM7EgWkaTSDjDDCj55exwaUH9kuJdNezsW8CWaL2uwPcCNAExP7P |
| posting | {"account_auths":[["busy.app",1]],"key_auths":[["STM5WzvyD9uT3ftyhDc1j5DpcMAYsjiVRrvs2y2oJTLbcQS58k2iF",1]],"weight_threshold":1} |
| Transaction Info | Block #20201994/Trx bbd2521ecf21fbb50cbd6885a6749293f35866cf |
View Raw JSON Data
{
"block": 20201994,
"op": [
"account_update",
{
"account": "liushooter",
"json_metadata": "{\"profile\":{\"location\":\"beijing\",\"name\":\"shooter\",\"profile_image\":\"https://upload.jianshu.io/users/upload_avatars/47789/d1b82be1-b0c1-4ae1-a77e-197bf2b7a999.jpg\"}}",
"memo_key": "STM7EgWkaTSDjDDCj55exwaUH9kuJdNezsW8CWaL2uwPcCNAExP7P",
"posting": {
"account_auths": [
[
"busy.app",
1
]
],
"key_auths": [
[
"STM5WzvyD9uT3ftyhDc1j5DpcMAYsjiVRrvs2y2oJTLbcQS58k2iF",
1
]
],
"weight_threshold": 1
}
}
],
"op_in_trx": 0,
"timestamp": "2018-02-26T07:39:36",
"trx_id": "bbd2521ecf21fbb50cbd6885a6749293f35866cf",
"trx_in_block": 30,
"virtual_op": 0
}liushooterfollowed @liangfengyouren2018/02/26 07:30:45
liushooterfollowed @liangfengyouren
2018/02/26 07:30:45
| id | follow |
| json | ["follow",{"follower":"liushooter","following":"liangfengyouren","what":["blog"]}] |
| required auths | [] |
| required posting auths | ["liushooter"] |
| Transaction Info | Block #20201817/Trx 920a87f8cfec6d699838c3a3e0d72ad9a5a5bb70 |
View Raw JSON Data
{
"block": 20201817,
"op": [
"custom_json",
{
"id": "follow",
"json": "[\"follow\",{\"follower\":\"liushooter\",\"following\":\"liangfengyouren\",\"what\":[\"blog\"]}]",
"required_auths": [],
"required_posting_auths": [
"liushooter"
]
}
],
"op_in_trx": 0,
"timestamp": "2018-02-26T07:30:45",
"trx_id": "920a87f8cfec6d699838c3a3e0d72ad9a5a5bb70",
"trx_in_block": 57,
"virtual_op": 0
}2018/02/26 07:27:51
2018/02/26 07:27:51
| id | follow |
| json | ["follow",{"follower":"liushooter","following":"liangfengyouren","what":["ignore"]}] |
| required auths | [] |
| required posting auths | ["liushooter"] |
| Transaction Info | Block #20201759/Trx ca012378d158b975f8bf7b2c889492de5c8a23a9 |
View Raw JSON Data
{
"block": 20201759,
"op": [
"custom_json",
{
"id": "follow",
"json": "[\"follow\",{\"follower\":\"liushooter\",\"following\":\"liangfengyouren\",\"what\":[\"ignore\"]}]",
"required_auths": [],
"required_posting_auths": [
"liushooter"
]
}
],
"op_in_trx": 0,
"timestamp": "2018-02-26T07:27:51",
"trx_id": "ca012378d158b975f8bf7b2c889492de5c8a23a9",
"trx_in_block": 7,
"virtual_op": 0
}liushooterfollowed @robinwen2018/02/26 07:24:27
liushooterfollowed @robinwen
2018/02/26 07:24:27
| id | follow |
| json | ["follow",{"follower":"liushooter","following":"robinwen","what":["blog"]}] |
| required auths | [] |
| required posting auths | ["liushooter"] |
| Transaction Info | Block #20201691/Trx 4eaf4fc9ec8c420c8f740235d489b4c468940c6d |
View Raw JSON Data
{
"block": 20201691,
"op": [
"custom_json",
{
"id": "follow",
"json": "[\"follow\",{\"follower\":\"liushooter\",\"following\":\"robinwen\",\"what\":[\"blog\"]}]",
"required_auths": [],
"required_posting_auths": [
"liushooter"
]
}
],
"op_in_trx": 0,
"timestamp": "2018-02-26T07:24:27",
"trx_id": "4eaf4fc9ec8c420c8f740235d489b4c468940c6d",
"trx_in_block": 11,
"virtual_op": 0
}liushooterfollowed @fenng2018/02/26 07:24:21
liushooterfollowed @fenng
2018/02/26 07:24:21
| id | follow |
| json | ["follow",{"follower":"liushooter","following":"fenng","what":["blog"]}] |
| required auths | [] |
| required posting auths | ["liushooter"] |
| Transaction Info | Block #20201689/Trx d2cb29fa67b165799ae7dcb05fe9468bd888beaa |
View Raw JSON Data
{
"block": 20201689,
"op": [
"custom_json",
{
"id": "follow",
"json": "[\"follow\",{\"follower\":\"liushooter\",\"following\":\"fenng\",\"what\":[\"blog\"]}]",
"required_auths": [],
"required_posting_auths": [
"liushooter"
]
}
],
"op_in_trx": 0,
"timestamp": "2018-02-26T07:24:21",
"trx_id": "d2cb29fa67b165799ae7dcb05fe9468bd888beaa",
"trx_in_block": 24,
"virtual_op": 0
}liushooterupvoted (100.00%) @healthiswealth / re-vitalik-buterin-vitalik-buterin-20170620t141123127z2018/02/26 07:11:42
liushooterupvoted (100.00%) @healthiswealth / re-vitalik-buterin-vitalik-buterin-20170620t141123127z
2018/02/26 07:11:42
| author | healthiswealth |
| permlink | re-vitalik-buterin-vitalik-buterin-20170620t141123127z |
| voter | liushooter |
| weight | 10000 (100.00%) |
| Transaction Info | Block #20201436/Trx cad0942ecc95e52a286142bf05b5924a58519a3e |
View Raw JSON Data
{
"block": 20201436,
"op": [
"vote",
{
"author": "healthiswealth",
"permlink": "re-vitalik-buterin-vitalik-buterin-20170620t141123127z",
"voter": "liushooter",
"weight": 10000
}
],
"op_in_trx": 0,
"timestamp": "2018-02-26T07:11:42",
"trx_id": "cad0942ecc95e52a286142bf05b5924a58519a3e",
"trx_in_block": 21,
"virtual_op": 0
}liushooterfollowed @vitalik-buterin2018/02/26 06:49:18
liushooterfollowed @vitalik-buterin
2018/02/26 06:49:18
| id | follow |
| json | ["follow",{"follower":"liushooter","following":"vitalik-buterin","what":["blog"]}] |
| required auths | [] |
| required posting auths | ["liushooter"] |
| Transaction Info | Block #20200988/Trx b475df3020b2c307cb11acda6c391f49816e6193 |
View Raw JSON Data
{
"block": 20200988,
"op": [
"custom_json",
{
"id": "follow",
"json": "[\"follow\",{\"follower\":\"liushooter\",\"following\":\"vitalik-buterin\",\"what\":[\"blog\"]}]",
"required_auths": [],
"required_posting_auths": [
"liushooter"
]
}
],
"op_in_trx": 0,
"timestamp": "2018-02-26T06:49:18",
"trx_id": "b475df3020b2c307cb11acda6c391f49816e6193",
"trx_in_block": 33,
"virtual_op": 0
}liushooterfollowed @dantheman2018/02/26 06:30:54
liushooterfollowed @dantheman
2018/02/26 06:30:54
| id | follow |
| json | ["follow",{"follower":"liushooter","following":"dantheman","what":["blog"]}] |
| required auths | [] |
| required posting auths | ["liushooter"] |
| Transaction Info | Block #20200620/Trx 80e306eabdd8fab9fba15ad9b25c5899bdcf1f77 |
View Raw JSON Data
{
"block": 20200620,
"op": [
"custom_json",
{
"id": "follow",
"json": "[\"follow\",{\"follower\":\"liushooter\",\"following\":\"dantheman\",\"what\":[\"blog\"]}]",
"required_auths": [],
"required_posting_auths": [
"liushooter"
]
}
],
"op_in_trx": 0,
"timestamp": "2018-02-26T06:30:54",
"trx_id": "80e306eabdd8fab9fba15ad9b25c5899bdcf1f77",
"trx_in_block": 65,
"virtual_op": 0
}liushooterfollowed @dan2018/02/26 06:30:36
liushooterfollowed @dan
2018/02/26 06:30:36
| id | follow |
| json | ["follow",{"follower":"liushooter","following":"dan","what":["blog"]}] |
| required auths | [] |
| required posting auths | ["liushooter"] |
| Transaction Info | Block #20200614/Trx 3c99f03a27987c10e29e59d1045270a1925e5acc |
View Raw JSON Data
{
"block": 20200614,
"op": [
"custom_json",
{
"id": "follow",
"json": "[\"follow\",{\"follower\":\"liushooter\",\"following\":\"dan\",\"what\":[\"blog\"]}]",
"required_auths": [],
"required_posting_auths": [
"liushooter"
]
}
],
"op_in_trx": 0,
"timestamp": "2018-02-26T06:30:36",
"trx_id": "3c99f03a27987c10e29e59d1045270a1925e5acc",
"trx_in_block": 12,
"virtual_op": 0
}cnsteemdelegated 0.000 SP to @liushooter2018/02/17 09:00:33
cnsteemdelegated 0.000 SP to @liushooter
2018/02/17 09:00:33
| delegatee | liushooter |
| delegator | cnsteem |
| vesting shares | 0.000000 VESTS |
| Transaction Info | Block #19944479/Trx da21a055971f5ec83d330425a1f59d342e0d4dc5 |
View Raw JSON Data
{
"block": 19944479,
"op": [
"delegate_vesting_shares",
{
"delegatee": "liushooter",
"delegator": "cnsteem",
"vesting_shares": "0.000000 VESTS"
}
],
"op_in_trx": 0,
"timestamp": "2018-02-17T09:00:33",
"trx_id": "da21a055971f5ec83d330425a1f59d342e0d4dc5",
"trx_in_block": 42,
"virtual_op": 0
}liushooterfollowed @cryptoriddler2018/02/10 06:38:27
liushooterfollowed @cryptoriddler
2018/02/10 06:38:27
| id | follow |
| json | ["follow",{"follower":"liushooter","following":"cryptoriddler","what":["blog"]}] |
| required auths | [] |
| required posting auths | ["liushooter"] |
| Transaction Info | Block #19740220/Trx d4f3a6ffb9b67dae218b9f4d62894ccc581a3118 |
View Raw JSON Data
{
"block": 19740220,
"op": [
"custom_json",
{
"id": "follow",
"json": "[\"follow\",{\"follower\":\"liushooter\",\"following\":\"cryptoriddler\",\"what\":[\"blog\"]}]",
"required_auths": [],
"required_posting_auths": [
"liushooter"
]
}
],
"op_in_trx": 0,
"timestamp": "2018-02-10T06:38:27",
"trx_id": "d4f3a6ffb9b67dae218b9f4d62894ccc581a3118",
"trx_in_block": 14,
"virtual_op": 0
}cnsteemdelegated 2.515 SP to @liushooter2018/02/09 12:00:51
cnsteemdelegated 2.515 SP to @liushooter
2018/02/09 12:00:51
| delegatee | liushooter |
| delegator | cnsteem |
| vesting shares | 4090.276516 VESTS |
| Transaction Info | Block #19717881/Trx d7933b366a419637f3c06d71f92f78ed6b77382b |
View Raw JSON Data
{
"block": 19717881,
"op": [
"delegate_vesting_shares",
{
"delegatee": "liushooter",
"delegator": "cnsteem",
"vesting_shares": "4090.276516 VESTS"
}
],
"op_in_trx": 0,
"timestamp": "2018-02-09T12:00:51",
"trx_id": "d7933b366a419637f3c06d71f92f78ed6b77382b",
"trx_in_block": 2,
"virtual_op": 0
}liushooterfollowed @haejin2018/02/09 11:43:09
liushooterfollowed @haejin
2018/02/09 11:43:09
| id | follow |
| json | ["follow",{"follower":"liushooter","following":"haejin","what":["blog"]}] |
| required auths | [] |
| required posting auths | ["liushooter"] |
| Transaction Info | Block #19717527/Trx 189219984e668d9dda414ce0ab20994cbb5409f6 |
View Raw JSON Data
{
"block": 19717527,
"op": [
"custom_json",
{
"id": "follow",
"json": "[\"follow\",{\"follower\":\"liushooter\",\"following\":\"haejin\",\"what\":[\"blog\"]}]",
"required_auths": [],
"required_posting_auths": [
"liushooter"
]
}
],
"op_in_trx": 0,
"timestamp": "2018-02-09T11:43:09",
"trx_id": "189219984e668d9dda414ce0ab20994cbb5409f6",
"trx_in_block": 56,
"virtual_op": 0
}liushooterpublished a new post: bitcoin-gitian2018/02/09 11:41:42
liushooterpublished a new post: bitcoin-gitian
2018/02/09 11:41:42
| author | liushooter |
| body | 免责声明: 本人省略了很多细节 ### gitian 是什么 我们开发软件都希望更多的人使用,一款软件可能会兼容很多的操作平台,例如 Windows ,MacOs, 众多的Linux版本,甚至还有ARM, Bitcoin也是如此. bitcoin做为一款开源软件,有众多的贡献者,为了保证能在各个系统中能编译出安全稳定的版本, Bitcoin Core设计了 Gitian. Gitian不是一个主流的解决方案,基本就是Bitcoin Core在用. 官网: https://www.gitian.org/ 代码: https://github.com/devrandom/gitian-builder ### Gitian的原理 Gitian使用现成的虚拟化技术,模拟ubuntu系统,**在同一个系统中编译不同系统平台的软件**, 即交叉编译. 用虚拟化的系统,在一个封闭的操作系统中,重新安装bitcoin的依赖组件,重新编译, 排除安全 /软件依赖等问题, 发布一个稳定的软件. 目前Gitian支持3种虚拟化: 1. Linux的[LXC](https://segmentfault.com/a/1190000000443812)技术 如果你了解Docker, 很可能听说过LXC. 2. [QEMU](https://www.ibm.com/developerworks/cn/linux/l-qemu/index.html) 3. [Vagrant](https://www.vagrantup.com/) 重点介绍LXC. --- ### 如何在ubuntu系统上使用Gitian #### 安装依赖 `sudo apt-get install -y git apache2 apt-cacher-ng python-vm-builder ruby lxc` #### 配置网络环境 先切换成root用户 `sudo -i`, 在执行以下shell, ``` echo '#!/bin/sh -e' > /etc/rc.local echo 'brctl addbr br0' >> /etc/rc.local echo 'ifconfig br0 10.0.3.2/24 up' >> /etc/rc.local echo 'iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE' >> /etc/rc.local echo 'echo 1 > /proc/sys/net/ipv4/ip_forward' >> /etc/rc.local echo 'exit 0' >> /etc/rc.local ``` 得到的 `/etc/rc.local`内容如下: ``` #!/bin/sh -e brctl addbr br0 ifconfig br0 10.0.3.2/24 up iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE echo 1 > /proc/sys/net/ipv4/ip_forward exit 0 ``` 执行 `sudo /etc/rc.local`, 使之生效, **不要忘了这个步骤**. #### 下载gitian源码 ``` git clone https://github.com/devrandom/gitian-builder.git git clone https://github.com/bitcoin/bitcoin.git # 放在同一级目录下 ``` #### 下载编译bitcoin需要的类库 ``` cd gitian-builder make -C ../bitcoin/depends download SOURCES_PATH=`pwd`/cache/common #将类库下载到 cache/common ``` #### 生成个虚拟环境 ``` cd gitian-builder ./bin/make-base-vm --lxc --arch amd64 --suite trusty # 使用lxc 生成一个64位的trusty版本的ubuntu系统 # 生成 base-trusty-amd64文件 ``` #### 导入环境变量 ``` export USE_LXC=1 # gitian用哪种技术方案 export GITIAN_HOST_IP=10.0.3.2 # 宿主机IP export LXC_GUEST_IP=10.0.3.5 # 虚拟机IP export PATH="$PATH":~/gitian-builder/libexec ``` #### 编译 终于最后一步了 ``` URL=https://github.com/bitcoin/bitcoin.git #自定义变量, 编译哪个项目 COMMIT=master # 自定义变量,编译哪个分支 ./bin/gbuild --num-make 4 --commit bitcoin=${COMMIT} --url bitcoin=${URL} ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml # 注意 COMMIT URL # --num-make 4 启动4个进程 # contrib/gitian-descriptors/gitian-linux.yml 记录了如何在linux下编译 # 还有 gitian-osx.yml gitian-win.yml ``` 整个过程比较漫长, 最后在 `build/out` 得到编译的版本. 编译window版本, 就要执行gitian-win.yml, Macos亦然 ``` ./bin/gbuild --num-make 4 --commit bitcoin=${COMMIT} --url bitcoin=${URL} ../bitcoin/contrib/gitian-descriptors/gitian-win.yml ``` 在使用gitian编译mac平台时需要把 `MacOSX10.11.sdk` 放到目录`gitian-builder/inputs`, bitcoin core 把这个库放到了`https://bitcoincore.org/depends-sources/sdks/MacOSX10.11.sdk.tar.gz` . 发布的版本列表: ``` ├── linux │ ├── bitcoin-0.15.0-aarch64-linux-gnu-debug.tar.gz │ ├── bitcoin-0.15.0-aarch64-linux-gnu.tar.gz │ ├── bitcoin-0.15.0-arm-linux-gnueabihf-debug.tar.gz │ ├── bitcoin-0.15.0-arm-linux-gnueabihf.tar.gz │ ├── bitcoin-0.15.0-i686-pc-linux-gnu-debug.tar.gz │ ├── bitcoin-0.15.0-i686-pc-linux-gnu.tar.gz │ ├── bitcoin-0.15.0-x86_64-linux-gnu-debug.tar.gz │ ├── bitcoin-0.15.0-x86_64-linux-gnu.tar.gz │ └── src │ └── bitcoin-0.15.0.tar.gz ├── mac │ ├── bitcoin-0.15.0-osx64.tar.gz │ ├── bitcoin-0.15.0-osx-unsigned.dmg │ ├── bitcoin-0.15.0-osx-unsigned.tar.gz │ └── src │ └── bitcoin-0.15.0.tar.gz └── win ├── bitcoin-0.15.0-win32-debug.zip ├── bitcoin-0.15.0-win32-setup-unsigned.exe ├── bitcoin-0.15.0-win32.zip ├── bitcoin-0.15.0-win64-debug.zip ├── bitcoin-0.15.0-win64-setup-unsigned.exe ├── bitcoin-0.15.0-win64.zip ├── bitcoin-0.15.0-win-unsigned.tar.gz └── src └── bitcoin-0.15.0.tar.gz ``` PS: 有的做法是先在物理机安装个 [virtualbox](https://www.virtualbox.org/) , 先虚拟个Debian8, 在Debian8里执行gitian, 这么做太麻烦了. 略过不表 --- 参考: https://www.ibm.com/developerworks/cn/linux/l-lxc-containers/ https://linuxcontainers.org/ https://segmentfault.com/a/1190000000264347 https://github.com/bitcoin/bitcoin/blob/master/doc/release-process.md bitcoin发布流程 https://github.com/bitcoin-core/docs/blob/master/gitian-building.md 创建Gitian环境 |
| json metadata | {"tags":["bitcoin","gitian"],"links":["https://www.gitian.org/","https://github.com/devrandom/gitian-builder","https://segmentfault.com/a/1190000000443812","https://www.ibm.com/developerworks/cn/linux/l-qemu/index.html","https://www.vagrantup.com/","https://www.virtualbox.org/","https://www.ibm.com/developerworks/cn/linux/l-lxc-containers/","https://linuxcontainers.org/","https://segmentfault.com/a/1190000000264347","https://github.com/bitcoin/bitcoin/blob/master/doc/release-process.md","https://github.com/bitcoin-core/docs/blob/master/gitian-building.md"],"app":"steemit/0.1","format":"markdown"} |
| parent author | |
| parent permlink | bitcoin |
| permlink | bitcoin-gitian |
| title | bitcoin: 使用gitian编译并发布 |
| Transaction Info | Block #19717498/Trx 3d091565641fd67a1a0ac4d12fdc2ea490302adc |
View Raw JSON Data
{
"block": 19717498,
"op": [
"comment",
{
"author": "liushooter",
"body": "免责声明: 本人省略了很多细节\n\n### gitian 是什么\n\n我们开发软件都希望更多的人使用,一款软件可能会兼容很多的操作平台,例如 Windows ,MacOs, 众多的Linux版本,甚至还有ARM, Bitcoin也是如此.\nbitcoin做为一款开源软件,有众多的贡献者,为了保证能在各个系统中能编译出安全稳定的版本, Bitcoin Core设计了 Gitian.\nGitian不是一个主流的解决方案,基本就是Bitcoin Core在用.\n\n官网: https://www.gitian.org/\n代码: https://github.com/devrandom/gitian-builder\n\n### Gitian的原理\nGitian使用现成的虚拟化技术,模拟ubuntu系统,**在同一个系统中编译不同系统平台的软件**, 即交叉编译.\n用虚拟化的系统,在一个封闭的操作系统中,重新安装bitcoin的依赖组件,重新编译, 排除安全 /软件依赖等问题, 发布一个稳定的软件. 目前Gitian支持3种虚拟化:\n\n1. Linux的[LXC](https://segmentfault.com/a/1190000000443812)技术\n 如果你了解Docker, 很可能听说过LXC.\n\n2. [QEMU](https://www.ibm.com/developerworks/cn/linux/l-qemu/index.html)\n\n3. [Vagrant](https://www.vagrantup.com/)\n\n重点介绍LXC.\n\n---\n\n### 如何在ubuntu系统上使用Gitian\n\n#### 安装依赖\n\n`sudo apt-get install -y git apache2 apt-cacher-ng python-vm-builder ruby lxc`\n\n#### 配置网络环境\n\n先切换成root用户 `sudo -i`, 在执行以下shell,\n\n```\necho '#!/bin/sh -e' > /etc/rc.local\necho 'brctl addbr br0' >> /etc/rc.local\necho 'ifconfig br0 10.0.3.2/24 up' >> /etc/rc.local\necho 'iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE' >> /etc/rc.local\necho 'echo 1 > /proc/sys/net/ipv4/ip_forward' >> /etc/rc.local\necho 'exit 0' >> /etc/rc.local\n```\n\n得到的 `/etc/rc.local`内容如下:\n\n```\n#!/bin/sh -e\nbrctl addbr br0\nifconfig br0 10.0.3.2/24 up\niptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE\necho 1 > /proc/sys/net/ipv4/ip_forward\n\nexit 0\n```\n\n执行 `sudo /etc/rc.local`, 使之生效, **不要忘了这个步骤**.\n\n#### 下载gitian源码\n\n```\ngit clone https://github.com/devrandom/gitian-builder.git\ngit clone https://github.com/bitcoin/bitcoin.git\n# 放在同一级目录下 \n```\n\n#### 下载编译bitcoin需要的类库\n\n```\ncd gitian-builder\nmake -C ../bitcoin/depends download SOURCES_PATH=`pwd`/cache/common #将类库下载到 cache/common\n```\n\n#### 生成个虚拟环境\n\n```\ncd gitian-builder\n\n./bin/make-base-vm --lxc --arch amd64 --suite trusty\n# 使用lxc 生成一个64位的trusty版本的ubuntu系统\n# 生成 base-trusty-amd64文件\n```\n\n#### 导入环境变量\n\n```\nexport USE_LXC=1 # gitian用哪种技术方案\nexport GITIAN_HOST_IP=10.0.3.2 # 宿主机IP\nexport LXC_GUEST_IP=10.0.3.5 # 虚拟机IP\n\nexport PATH=\"$PATH\":~/gitian-builder/libexec\n```\n\n#### 编译 终于最后一步了\n\n```\nURL=https://github.com/bitcoin/bitcoin.git #自定义变量, 编译哪个项目\nCOMMIT=master # 自定义变量,编译哪个分支\n\n./bin/gbuild --num-make 4 --commit bitcoin=${COMMIT} --url bitcoin=${URL} ../bitcoin/contrib/gitian-descriptors/gitian-linux.yml\n\n# 注意 COMMIT URL\n# --num-make 4 启动4个进程\n# contrib/gitian-descriptors/gitian-linux.yml 记录了如何在linux下编译\n# 还有 gitian-osx.yml gitian-win.yml\n```\n\n整个过程比较漫长, 最后在 `build/out` 得到编译的版本.\n\n编译window版本, 就要执行gitian-win.yml, Macos亦然\n\n```\n./bin/gbuild --num-make 4 --commit bitcoin=${COMMIT} --url bitcoin=${URL} ../bitcoin/contrib/gitian-descriptors/gitian-win.yml\n```\n\n在使用gitian编译mac平台时需要把 `MacOSX10.11.sdk` 放到目录`gitian-builder/inputs`, bitcoin core 把这个库放到了`https://bitcoincore.org/depends-sources/sdks/MacOSX10.11.sdk.tar.gz` .\n\n发布的版本列表:\n\n```\n├── linux\n│ ├── bitcoin-0.15.0-aarch64-linux-gnu-debug.tar.gz\n│ ├── bitcoin-0.15.0-aarch64-linux-gnu.tar.gz\n│ ├── bitcoin-0.15.0-arm-linux-gnueabihf-debug.tar.gz\n│ ├── bitcoin-0.15.0-arm-linux-gnueabihf.tar.gz\n│ ├── bitcoin-0.15.0-i686-pc-linux-gnu-debug.tar.gz\n│ ├── bitcoin-0.15.0-i686-pc-linux-gnu.tar.gz\n│ ├── bitcoin-0.15.0-x86_64-linux-gnu-debug.tar.gz\n│ ├── bitcoin-0.15.0-x86_64-linux-gnu.tar.gz\n│ └── src\n│ └── bitcoin-0.15.0.tar.gz\n├── mac\n│ ├── bitcoin-0.15.0-osx64.tar.gz\n│ ├── bitcoin-0.15.0-osx-unsigned.dmg\n│ ├── bitcoin-0.15.0-osx-unsigned.tar.gz\n│ └── src\n│ └── bitcoin-0.15.0.tar.gz\n└── win\n ├── bitcoin-0.15.0-win32-debug.zip\n ├── bitcoin-0.15.0-win32-setup-unsigned.exe\n ├── bitcoin-0.15.0-win32.zip\n ├── bitcoin-0.15.0-win64-debug.zip\n ├── bitcoin-0.15.0-win64-setup-unsigned.exe\n ├── bitcoin-0.15.0-win64.zip\n ├── bitcoin-0.15.0-win-unsigned.tar.gz\n └── src\n └── bitcoin-0.15.0.tar.gz\n```\n\nPS: 有的做法是先在物理机安装个 [virtualbox](https://www.virtualbox.org/) , 先虚拟个Debian8, 在Debian8里执行gitian, 这么做太麻烦了. 略过不表\n\n---\n\n参考:\n\nhttps://www.ibm.com/developerworks/cn/linux/l-lxc-containers/\nhttps://linuxcontainers.org/\nhttps://segmentfault.com/a/1190000000264347\n\nhttps://github.com/bitcoin/bitcoin/blob/master/doc/release-process.md bitcoin发布流程\nhttps://github.com/bitcoin-core/docs/blob/master/gitian-building.md 创建Gitian环境",
"json_metadata": "{\"tags\":[\"bitcoin\",\"gitian\"],\"links\":[\"https://www.gitian.org/\",\"https://github.com/devrandom/gitian-builder\",\"https://segmentfault.com/a/1190000000443812\",\"https://www.ibm.com/developerworks/cn/linux/l-qemu/index.html\",\"https://www.vagrantup.com/\",\"https://www.virtualbox.org/\",\"https://www.ibm.com/developerworks/cn/linux/l-lxc-containers/\",\"https://linuxcontainers.org/\",\"https://segmentfault.com/a/1190000000264347\",\"https://github.com/bitcoin/bitcoin/blob/master/doc/release-process.md\",\"https://github.com/bitcoin-core/docs/blob/master/gitian-building.md\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}",
"parent_author": "",
"parent_permlink": "bitcoin",
"permlink": "bitcoin-gitian",
"title": "bitcoin: 使用gitian编译并发布"
}
],
"op_in_trx": 0,
"timestamp": "2018-02-09T11:41:42",
"trx_id": "3d091565641fd67a1a0ac4d12fdc2ea490302adc",
"trx_in_block": 42,
"virtual_op": 0
}liushooterupdated their account properties2018/02/09 11:32:03
liushooterupdated their account properties
2018/02/09 11:32:03
| account | liushooter |
| json metadata | {"profile":{"location":"beijing","name":"shooter","profile_image":"https://upload.jianshu.io/users/upload_avatars/47789/d1b82be1-b0c1-4ae1-a77e-197bf2b7a999.jpg"}} |
| memo key | STM7EgWkaTSDjDDCj55exwaUH9kuJdNezsW8CWaL2uwPcCNAExP7P |
| Transaction Info | Block #19717305/Trx 5c6a3413a268727b25f45a203f4ada77ffca0765 |
View Raw JSON Data
{
"block": 19717305,
"op": [
"account_update",
{
"account": "liushooter",
"json_metadata": "{\"profile\":{\"location\":\"beijing\",\"name\":\"shooter\",\"profile_image\":\"https://upload.jianshu.io/users/upload_avatars/47789/d1b82be1-b0c1-4ae1-a77e-197bf2b7a999.jpg\"}}",
"memo_key": "STM7EgWkaTSDjDDCj55exwaUH9kuJdNezsW8CWaL2uwPcCNAExP7P"
}
],
"op_in_trx": 0,
"timestamp": "2018-02-09T11:32:03",
"trx_id": "5c6a3413a268727b25f45a203f4ada77ffca0765",
"trx_in_block": 22,
"virtual_op": 0
}liushooterupdated their account properties2018/02/09 10:29:39
liushooterupdated their account properties
2018/02/09 10:29:39
| account | liushooter |
| json metadata | {"profile":{"location":"beijing","name":"shooter"}} |
| memo key | STM7EgWkaTSDjDDCj55exwaUH9kuJdNezsW8CWaL2uwPcCNAExP7P |
| Transaction Info | Block #19716057/Trx 3590b0381516ce223126a08591abb73c53eb102f |
View Raw JSON Data
{
"block": 19716057,
"op": [
"account_update",
{
"account": "liushooter",
"json_metadata": "{\"profile\":{\"location\":\"beijing\",\"name\":\"shooter\"}}",
"memo_key": "STM7EgWkaTSDjDDCj55exwaUH9kuJdNezsW8CWaL2uwPcCNAExP7P"
}
],
"op_in_trx": 0,
"timestamp": "2018-02-09T10:29:39",
"trx_id": "3590b0381516ce223126a08591abb73c53eb102f",
"trx_in_block": 48,
"virtual_op": 0
}liushooterupdated their account properties2018/02/09 10:28:27
liushooterupdated their account properties
2018/02/09 10:28:27
| account | liushooter |
| json metadata | {"profile":{"location":"beijing"}} |
| memo key | STM7EgWkaTSDjDDCj55exwaUH9kuJdNezsW8CWaL2uwPcCNAExP7P |
| Transaction Info | Block #19716033/Trx 8e4d8bedb89ec0346bdbe57343f817efe68d137f |
View Raw JSON Data
{
"block": 19716033,
"op": [
"account_update",
{
"account": "liushooter",
"json_metadata": "{\"profile\":{\"location\":\"beijing\"}}",
"memo_key": "STM7EgWkaTSDjDDCj55exwaUH9kuJdNezsW8CWaL2uwPcCNAExP7P"
}
],
"op_in_trx": 0,
"timestamp": "2018-02-09T10:28:27",
"trx_id": "8e4d8bedb89ec0346bdbe57343f817efe68d137f",
"trx_in_block": 4,
"virtual_op": 0
}liushooterfollowed @freeza2018/02/09 10:27:33
liushooterfollowed @freeza
2018/02/09 10:27:33
| id | follow |
| json | ["follow",{"follower":"liushooter","following":"freeza","what":["blog"]}] |
| required auths | [] |
| required posting auths | ["liushooter"] |
| Transaction Info | Block #19716015/Trx 66df6d84e31ee14885d0d076b95934857931c040 |
View Raw JSON Data
{
"block": 19716015,
"op": [
"custom_json",
{
"id": "follow",
"json": "[\"follow\",{\"follower\":\"liushooter\",\"following\":\"freeza\",\"what\":[\"blog\"]}]",
"required_auths": [],
"required_posting_auths": [
"liushooter"
]
}
],
"op_in_trx": 0,
"timestamp": "2018-02-09T10:27:33",
"trx_id": "66df6d84e31ee14885d0d076b95934857931c040",
"trx_in_block": 3,
"virtual_op": 0
}liushooterupdated their account properties2018/02/09 10:19:03
liushooterupdated their account properties
2018/02/09 10:19:03
| account | liushooter |
| active | {"account_auths":[],"key_auths":[["STM52fVA6xsL9fWzKVrhiuw5xzpjCYWmtP2xufyRazZNcRZKwPEBt",1]],"weight_threshold":1} |
| json metadata | |
| memo key | STM7EgWkaTSDjDDCj55exwaUH9kuJdNezsW8CWaL2uwPcCNAExP7P |
| owner | {"account_auths":[],"key_auths":[["STM7AJqnguXtNuQ5Q3TebcPmSh7NrmVZd2DAQLZ5BVuxKGvcEWM37",1]],"weight_threshold":1} |
| posting | {"account_auths":[],"key_auths":[["STM5WzvyD9uT3ftyhDc1j5DpcMAYsjiVRrvs2y2oJTLbcQS58k2iF",1]],"weight_threshold":1} |
| Transaction Info | Block #19715845/Trx 5eb9cf56dec83a3cd13418e991c2f8fbe1d314fa |
View Raw JSON Data
{
"block": 19715845,
"op": [
"account_update",
{
"account": "liushooter",
"active": {
"account_auths": [],
"key_auths": [
[
"STM52fVA6xsL9fWzKVrhiuw5xzpjCYWmtP2xufyRazZNcRZKwPEBt",
1
]
],
"weight_threshold": 1
},
"json_metadata": "",
"memo_key": "STM7EgWkaTSDjDDCj55exwaUH9kuJdNezsW8CWaL2uwPcCNAExP7P",
"owner": {
"account_auths": [],
"key_auths": [
[
"STM7AJqnguXtNuQ5Q3TebcPmSh7NrmVZd2DAQLZ5BVuxKGvcEWM37",
1
]
],
"weight_threshold": 1
},
"posting": {
"account_auths": [],
"key_auths": [
[
"STM5WzvyD9uT3ftyhDc1j5DpcMAYsjiVRrvs2y2oJTLbcQS58k2iF",
1
]
],
"weight_threshold": 1
}
}
],
"op_in_trx": 0,
"timestamp": "2018-02-09T10:19:03",
"trx_id": "5eb9cf56dec83a3cd13418e991c2f8fbe1d314fa",
"trx_in_block": 14,
"virtual_op": 0
}cnsteemcreated a new account: @liushooter2018/02/09 08:24:12
cnsteemcreated a new account: @liushooter
2018/02/09 08:24:12
| active | {"account_auths":[],"key_auths":[["STM7AHbZAqrwJaq1XWBKxdNwEc1aNeSMp1bik7q4xpkUCqDeTDpzQ",1]],"weight_threshold":1} |
| creator | cnsteem |
| delegation | 28633.157040 VESTS |
| extensions | [] |
| fee | 0.200 STEEM |
| json metadata | |
| memo key | STM6pNRzveVCaUSL37g2WxEomJfE3fA2oDs8QabJutiK5wyD2cNTM |
| new account name | liushooter |
| owner | {"account_auths":[],"key_auths":[["STM8iACrEyRy5AuMZG8o9kGSpRNBooVSs659hbhTUdVkaLTRKwtRC",1]],"weight_threshold":1} |
| posting | {"account_auths":[],"key_auths":[["STM4wuPFNyDoxykcXP8PrfJyxkJ8sHR5H7YsVXabC3KctuUcD1aCX",1]],"weight_threshold":1} |
| Transaction Info | Block #19713548/Trx 609dd66a595b45c63bd448f2653b9defcadbed10 |
View Raw JSON Data
{
"block": 19713548,
"op": [
"account_create_with_delegation",
{
"active": {
"account_auths": [],
"key_auths": [
[
"STM7AHbZAqrwJaq1XWBKxdNwEc1aNeSMp1bik7q4xpkUCqDeTDpzQ",
1
]
],
"weight_threshold": 1
},
"creator": "cnsteem",
"delegation": "28633.157040 VESTS",
"extensions": [],
"fee": "0.200 STEEM",
"json_metadata": "",
"memo_key": "STM6pNRzveVCaUSL37g2WxEomJfE3fA2oDs8QabJutiK5wyD2cNTM",
"new_account_name": "liushooter",
"owner": {
"account_auths": [],
"key_auths": [
[
"STM8iACrEyRy5AuMZG8o9kGSpRNBooVSs659hbhTUdVkaLTRKwtRC",
1
]
],
"weight_threshold": 1
},
"posting": {
"account_auths": [],
"key_auths": [
[
"STM4wuPFNyDoxykcXP8PrfJyxkJ8sHR5H7YsVXabC3KctuUcD1aCX",
1
]
],
"weight_threshold": 1
}
}
],
"op_in_trx": 0,
"timestamp": "2018-02-09T08:24:12",
"trx_id": "609dd66a595b45c63bd448f2653b9defcadbed10",
"trx_in_block": 39,
"virtual_op": 0
}Manabar
Voting Power100.00%
Downvote Power100.00%
Resource Credits100.00%
Reputation Progress0.00%
{
"voting_manabar": {
"current_mana": 10000,
"last_update_time": 1518164652
},
"downvote_manabar": {
"current_mana": 0,
"last_update_time": 1518164652
},
"rc_account": {
"account": "liushooter",
"max_rc": 2429779786,
"max_rc_creation_adjustment": {
"amount": "2020748973",
"nai": "@@000000037",
"precision": 6
},
"rc_manabar": {
"current_mana": 2429779786,
"last_update_time": 1537887600
}
}
}Account Metadata
| POSTING JSON METADATA | |
| profile | {"location":"beijing","name":"shooter","profile_image":"https://upload.jianshu.io/users/upload_avatars/47789/d1b82be1-b0c1-4ae1-a77e-197bf2b7a999.jpg"} |
| JSON METADATA | |
| profile | {"location":"beijing","name":"shooter","profile_image":"https://upload.jianshu.io/users/upload_avatars/47789/d1b82be1-b0c1-4ae1-a77e-197bf2b7a999.jpg"} |
{
"posting_json_metadata": {
"profile": {
"location": "beijing",
"name": "shooter",
"profile_image": "https://upload.jianshu.io/users/upload_avatars/47789/d1b82be1-b0c1-4ae1-a77e-197bf2b7a999.jpg"
}
},
"json_metadata": {
"profile": {
"location": "beijing",
"name": "shooter",
"profile_image": "https://upload.jianshu.io/users/upload_avatars/47789/d1b82be1-b0c1-4ae1-a77e-197bf2b7a999.jpg"
}
}
}Auth Keys
Owner
Single Signature
Public Keys
STM7AJqnguXtNuQ5Q3TebcPmSh7NrmVZd2DAQLZ5BVuxKGvcEWM371/1
Active
Single Signature
Public Keys
STM52fVA6xsL9fWzKVrhiuw5xzpjCYWmtP2xufyRazZNcRZKwPEBt1/1
Posting
Single Signature
Public Keys
STM5WzvyD9uT3ftyhDc1j5DpcMAYsjiVRrvs2y2oJTLbcQS58k2iF1/1
Memo
STM7EgWkaTSDjDDCj55exwaUH9kuJdNezsW8CWaL2uwPcCNAExP7P
{
"owner": {
"account_auths": [],
"key_auths": [
[
"STM7AJqnguXtNuQ5Q3TebcPmSh7NrmVZd2DAQLZ5BVuxKGvcEWM37",
1
]
],
"weight_threshold": 1
},
"active": {
"account_auths": [],
"key_auths": [
[
"STM52fVA6xsL9fWzKVrhiuw5xzpjCYWmtP2xufyRazZNcRZKwPEBt",
1
]
],
"weight_threshold": 1
},
"posting": {
"account_auths": [
[
"busy.app",
1
],
[
"dtube.app",
1
]
],
"key_auths": [
[
"STM5WzvyD9uT3ftyhDc1j5DpcMAYsjiVRrvs2y2oJTLbcQS58k2iF",
1
]
],
"weight_threshold": 1
},
"memo": "STM7EgWkaTSDjDDCj55exwaUH9kuJdNezsW8CWaL2uwPcCNAExP7P"
}Witness Votes
0 / 30
No active witness votes.
[]