VOTING POWER0.00%
DOWNVOTE POWER0.00%
RESOURCE CREDITS100.00%
REPUTATION PROGRESS27.98%
Net Worth
0.085USD
STEEM
0.467STEEM
SBD
0.121SBD
Own SP
0.000SP
Detailed Balance
| STEEM | ||
| balance | 0.000STEEM | STEEM |
| market_balance | 0.000STEEM | STEEM |
| savings_balance | 0.467STEEM | STEEM |
| reward_steem_balance | 0.000STEEM | STEEM |
| STEEM POWER | ||
| Own SP | 0.000SP | SP |
| Delegated Out | 0.000SP | SP |
| Delegation In | 0.000SP | SP |
| Effective Power | 0.000SP | 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.121SBD | SBD |
| reward_sbd_balance | 0.000SBD | SBD |
{
"balance": "0.000 STEEM",
"savings_balance": "0.467 STEEM",
"reward_steem_balance": "0.000 STEEM",
"vesting_shares": "0.000000 VESTS",
"delegated_vesting_shares": "0.000000 VESTS",
"received_vesting_shares": "0.000000 VESTS",
"sbd_balance": "0.000 SBD",
"savings_sbd_balance": "0.121 SBD",
"reward_sbd_balance": "0.000 SBD",
"conversions": []
}Account Info
| name | sigmoid |
| id | 992192 |
| rank | 1,907,448 |
| reputation | 643977730212 |
| created | 2018-05-12T05:00:03 |
| recovery_account | steem |
| proxy | None |
| post_count | 87 |
| comment_count | 0 |
| lifetime_vote_count | 0 |
| witnesses_voted_for | 1 |
| last_post | 2019-11-22T11:20:57 |
| last_root_post | 2019-11-22T11:20:57 |
| last_vote_time | 2018-12-28T13:29:27 |
| proxied_vsf_votes | 0, 0, 0, 0 |
| can_vote | 1 |
| voting_power | 0 |
| delayed_votes | 0 |
| balance | 0.000 STEEM |
| savings_balance | 0.467 STEEM |
| sbd_balance | 0.000 SBD |
| savings_sbd_balance | 0.121 SBD |
| vesting_shares | 0.000000 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 | 17356064905 |
| to_withdraw | 17356064905 |
| withdraw_routes | 0 |
| savings_withdraw_requests | 0 |
| last_account_recovery | 1970-01-01T00:00:00 |
| reset_account | null |
| last_owner_update | 1970-01-01T00:00:00 |
| last_account_update | 2019-05-03T01:49:36 |
| mined | No |
| sbd_seconds | 159,570 |
| sbd_last_interest_payment | 2020-03-18T15:09:30 |
| savings_sbd_last_interest_payment | 2019-02-15T23:13:48 |
{
"id": 992192,
"name": "sigmoid",
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM88SHsdJQQUFUn95yzJs1kGLBhtFXr7eGsJ1bYns12wyZ2GyHJB",
1
]
]
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM4zgHjLrLi1w8MnLEgcgi76Sz5psjFNPp7mYvQbzGXgL7jeGHkb",
1
]
]
},
"posting": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM5itgF2CnNT1fs4xmXKKk3ahQ9znX9bucm4G37sEtTkaaH15YFm",
1
]
]
},
"memo_key": "STM6oe4V9TPmAs8Pux2Eg9SpFhAXwRtTPeYziAYmNdjDb8VSgwBrz",
"json_metadata": "{\"profile\":{\"name\":\"SigmoiD\",\"about\":\"Dsrv Labs.\",\"website\":\"http://dsrvlabs.com\",\"cover_image\":\"https://steemitimages.com/DQmNQEbBYYzgiLCCZKky4UfzY84kiwN21LwLop22PYtwNoC/20180309_203350.jpg\",\"profile_image\":\"http://www.dsrvlabs.com/me.jpg\"}}",
"posting_json_metadata": "{\"profile\":{\"name\":\"SigmoiD\",\"about\":\"Dsrv Labs.\",\"website\":\"http://dsrvlabs.com\",\"cover_image\":\"https://steemitimages.com/DQmNQEbBYYzgiLCCZKky4UfzY84kiwN21LwLop22PYtwNoC/20180309_203350.jpg\",\"profile_image\":\"http://www.dsrvlabs.com/me.jpg\"}}",
"proxy": "",
"last_owner_update": "1970-01-01T00:00:00",
"last_account_update": "2019-05-03T01:49:36",
"created": "2018-05-12T05:00:03",
"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": 87,
"can_vote": true,
"voting_manabar": {
"current_mana": "16416848584",
"last_update_time": 1585189323
},
"downvote_manabar": {
"current_mana": 4104212146,
"last_update_time": 1585189323
},
"voting_power": 0,
"balance": "0.000 STEEM",
"savings_balance": "0.467 STEEM",
"sbd_balance": "0.000 SBD",
"sbd_seconds": "159570",
"sbd_seconds_last_update": "2020-03-26T02:24:18",
"sbd_last_interest_payment": "2020-03-18T15:09:30",
"savings_sbd_balance": "0.121 SBD",
"savings_sbd_seconds": "0",
"savings_sbd_seconds_last_update": "2019-02-15T23:13:48",
"savings_sbd_last_interest_payment": "2019-02-15T23:13:48",
"savings_withdraw_requests": 0,
"reward_sbd_balance": "0.000 SBD",
"reward_steem_balance": "0.000 STEEM",
"reward_vesting_balance": "0.000000 VESTS",
"reward_vesting_steem": "0.000 STEEM",
"vesting_shares": "0.000000 VESTS",
"delegated_vesting_shares": "0.000000 VESTS",
"received_vesting_shares": "0.000000 VESTS",
"vesting_withdraw_rate": "0.000000 VESTS",
"next_vesting_withdrawal": "1969-12-31T23:59:59",
"withdrawn": "17356064905",
"to_withdraw": "17356064905",
"withdraw_routes": 0,
"curation_rewards": 1,
"posting_rewards": 47090,
"proxied_vsf_votes": [
0,
0,
0,
0
],
"witnesses_voted_for": 1,
"last_post": "2019-11-22T11:20:57",
"last_root_post": "2019-11-22T11:20:57",
"last_vote_time": "2018-12-28T13:29:27",
"post_bandwidth": 0,
"pending_claimed_accounts": 0,
"vesting_balance": "0.000 STEEM",
"reputation": "643977730212",
"transfer_history": [],
"market_history": [],
"post_history": [],
"vote_history": [],
"other_history": [],
"witness_votes": [
"clayop"
],
"tags_usage": [],
"guest_bloggers": [],
"rank": 1907448
}Withdraw Routes
| Incoming | Outgoing |
|---|---|
Empty | Empty |
{
"incoming": [],
"outgoing": []
}From Date
To Date
2022/05/22 10:10:21
2022/05/22 10:10:21
| parent author | sigmoid |
| parent permlink | private-network-block-explorer |
| author | jhsung97 |
| permlink | rca48h |
| title | |
| body | ์๋ ํ์ธ์. ํ์ฌ p2e ๊ฒ์์ ๊ฐ๋ฐ์ค์ ์์ต๋๋ค. ํธ๋์ญ์ ์ ์ง๊ด์ ์ผ๋ก ๋ณผ ์ ์๋ ์ฌ์ดํธ๊ฐ ํ์ํ๋ฐ ๊ตฌ๊ธ๋ง์ ํ๋ค๊ฐ ์ด ํฌ์คํ ์ ๋ณด๊ฒ ๋์์ต๋๋ค. ๊นํ๋ธ์ ์ ์ํด์ ํ๋ก์ ํธ๋ฅผ ๋ค์ด๋ฐ์๊ณ , ์น์ ๋์ฐ๊ธฐ๊น์ง๋ ์งํ๋์ต๋๋ค. ๊ทธ๋ฐ๋ฐ Recent Block. Transaction ํญ๋ชฉ์์ ๊ณ์ ๋ก๋ฉ๋ง ๋๊ณ ์์ต๋๋ค. ์ ๊ฐ ์์ง ์ด๋ณด๋ผ ์ฌ๋ ค์ฃผ์ ํฌ์คํ ์ ์ ๋๋ก ์ดํดํ์ง ๋ชปํ๊ฒ์ผ ์ ์๋๋ฐ ํน์ ๋ฐฉ๋ฒ์ ์ข ์๋ ค์ฃผ์ค์ ์์๊น ์ถ์ด ๋๊ธ ๋ฌ๊ฒ ๋์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค. |
| json metadata | {"app":"steemit/0.2"} |
| Transaction Info | Block #64388339/Trx b0d57cf12b5e153dbdabca756a39306962f88873 |
View Raw JSON Data
{
"trx_id": "b0d57cf12b5e153dbdabca756a39306962f88873",
"block": 64388339,
"trx_in_block": 2,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2022-05-22T10:10:21",
"op": [
"comment",
{
"parent_author": "sigmoid",
"parent_permlink": "private-network-block-explorer",
"author": "jhsung97",
"permlink": "rca48h",
"title": "",
"body": "์๋
ํ์ธ์. ํ์ฌ p2e ๊ฒ์์ ๊ฐ๋ฐ์ค์ ์์ต๋๋ค.\nํธ๋์ญ์
์ ์ง๊ด์ ์ผ๋ก ๋ณผ ์ ์๋ ์ฌ์ดํธ๊ฐ ํ์ํ๋ฐ ๊ตฌ๊ธ๋ง์ ํ๋ค๊ฐ ์ด ํฌ์คํ
์ ๋ณด๊ฒ ๋์์ต๋๋ค.\n\n๊นํ๋ธ์ ์ ์ํด์ ํ๋ก์ ํธ๋ฅผ ๋ค์ด๋ฐ์๊ณ , ์น์ ๋์ฐ๊ธฐ๊น์ง๋ ์งํ๋์ต๋๋ค. ๊ทธ๋ฐ๋ฐ Recent Block. Transaction ํญ๋ชฉ์์ ๊ณ์ ๋ก๋ฉ๋ง ๋๊ณ ์์ต๋๋ค. ์ ๊ฐ ์์ง ์ด๋ณด๋ผ ์ฌ๋ ค์ฃผ์ ํฌ์คํ
์ ์ ๋๋ก ์ดํดํ์ง ๋ชปํ๊ฒ์ผ ์ ์๋๋ฐ ํน์ ๋ฐฉ๋ฒ์ ์ข ์๋ ค์ฃผ์ค์ ์์๊น ์ถ์ด ๋๊ธ ๋ฌ๊ฒ ๋์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.",
"json_metadata": "{\"app\":\"steemit/0.2\"}"
}
]
}2022/05/22 10:09:57
2022/05/22 10:09:57
| parent author | sigmoid |
| parent permlink | private-network-block-explorer |
| author | jhsung97 |
| permlink | rca48h |
| title | |
| body | ์๋ ํ์ธ์. ํ์ฌ p2e ๊ฒ์์ ๊ฐ๋ฐ์ค์ ์์ต๋๋ค. ํธ๋์ญ์ ์ ์ง๊ด์ ์ผ๋ก ๋ณผ ์ ์๋ ์ฌ์ดํธ๊ฐ ํ์ํ๋ฐ ๊ตฌ๊ธ๋ง์ ํ๋ค๊ฐ ์ด ํฌ์คํ ์ ๋ณด๊ฒ ๋์์ต๋๋ค. ๊นํ๋ธ์ ์ ์ํด์ ํ๋ก์ ํธ๋ฅผ ๋ค์ด๋ฐ์๊ณ , ์น์ ๋์ฐ๊ธฐ๊น์ง๋ ์งํ๋์ต๋๋ค. ๊ทธ๋ฐ๋ฐ Recent Block. Transaction ํญ๋ชฉ์์ ๊ณ์ ๋ก๋ฉ๋ง ๋๊ณ ์์ต๋๋ค. ์ ๊ฐ ์์ง ์ด๋ณด๋ผ ์ฌ๋ ค์ฃผ์ ํฌ์คํ ์ ์ ๋๋ก ์ดํดํ์ง ๋ชปํ๊ฒ์ผ ์ ์๋๋ฐ ํน์ ๋ฐฉ๋ฒ์ ์ข ์๋ ค์ฃผ์ค์ ์์๊น ์ถ์ด ๋๊ธ ๋ฌ๊ฒ ๋์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค. |
| json metadata | {"app":"steemit/0.2"} |
| Transaction Info | Block #64388331/Trx 423a573f45e2e820780700c0953511400b1dfccd |
View Raw JSON Data
{
"trx_id": "423a573f45e2e820780700c0953511400b1dfccd",
"block": 64388331,
"trx_in_block": 2,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2022-05-22T10:09:57",
"op": [
"comment",
{
"parent_author": "sigmoid",
"parent_permlink": "private-network-block-explorer",
"author": "jhsung97",
"permlink": "rca48h",
"title": "",
"body": "์๋
ํ์ธ์. ํ์ฌ p2e ๊ฒ์์ ๊ฐ๋ฐ์ค์ ์์ต๋๋ค.\nํธ๋์ญ์
์ ์ง๊ด์ ์ผ๋ก ๋ณผ ์ ์๋ ์ฌ์ดํธ๊ฐ ํ์ํ๋ฐ ๊ตฌ๊ธ๋ง์ ํ๋ค๊ฐ ์ด ํฌ์คํ
์ ๋ณด๊ฒ ๋์์ต๋๋ค.\n\n๊นํ๋ธ์ ์ ์ํด์ ํ๋ก์ ํธ๋ฅผ ๋ค์ด๋ฐ์๊ณ , ์น์ ๋์ฐ๊ธฐ๊น์ง๋ ์งํ๋์ต๋๋ค. ๊ทธ๋ฐ๋ฐ Recent Block. Transaction ํญ๋ชฉ์์ ๊ณ์ ๋ก๋ฉ๋ง ๋๊ณ ์์ต๋๋ค. ์ ๊ฐ ์์ง ์ด๋ณด๋ผ ์ฌ๋ ค์ฃผ์ ํฌ์คํ
์ ์ ๋๋ก ์ดํดํ์ง ๋ชปํ๊ฒ์ผ ์ ์๋๋ฐ ํน์ ๋ฐฉ๋ฒ์ ์ข ์๋ ค์ฃผ์ค์ ์์๊น ์ถ์ด ๋๊ธ ๋ฌ๊ฒ ๋์์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.",
"json_metadata": "{\"app\":\"steemit/0.2\"}"
}
]
}sigmoidcustom json: notify2021/06/21 10:50:00
sigmoidcustom json: notify
2021/06/21 10:50:00
| required auths | [] |
| required posting auths | ["sigmoid"] |
| id | notify |
| json | ["setLastRead",{"date":"2021-06-21T10:49:59"}] |
| Transaction Info | Block #54819790/Trx f5589bb4dd5ea7f1381a63d5b1c410f8fe9c3c22 |
View Raw JSON Data
{
"trx_id": "f5589bb4dd5ea7f1381a63d5b1c410f8fe9c3c22",
"block": 54819790,
"trx_in_block": 1,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2021-06-21T10:50:00",
"op": [
"custom_json",
{
"required_auths": [],
"required_posting_auths": [
"sigmoid"
],
"id": "notify",
"json": "[\"setLastRead\",{\"date\":\"2021-06-21T10:49:59\"}]"
}
]
}followme95upvoted (100.00%) @sigmoid / gpu2021/03/23 01:22:15
followme95upvoted (100.00%) @sigmoid / gpu
2021/03/23 01:22:15
| voter | followme95 |
| author | sigmoid |
| permlink | gpu |
| weight | 10000 (100.00%) |
| Transaction Info | Block #52239093/Trx cf0c9c01a568cf0c0566e009c53822a1ae65b4ca |
View Raw JSON Data
{
"trx_id": "cf0c9c01a568cf0c0566e009c53822a1ae65b4ca",
"block": 52239093,
"trx_in_block": 2,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2021-03-23T01:22:15",
"op": [
"vote",
{
"voter": "followme95",
"author": "sigmoid",
"permlink": "gpu",
"weight": 10000
}
]
}sigmoidsent 9.363 STEEM to @user.dunamu- "9adae8bb-47c0-4522-876a-e343bac784c1"2020/07/31 02:23:12
sigmoidsent 9.363 STEEM to @user.dunamu- "9adae8bb-47c0-4522-876a-e343bac784c1"
2020/07/31 02:23:12
| from | sigmoid |
| to | user.dunamu |
| amount | 9.363 STEEM |
| memo | 9adae8bb-47c0-4522-876a-e343bac784c1 |
| Transaction Info | Block #45571219/Trx 1155e391b318ca49bfa17b130d5e563ba0848839 |
View Raw JSON Data
{
"trx_id": "1155e391b318ca49bfa17b130d5e563ba0848839",
"block": 45571219,
"trx_in_block": 17,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-07-31T02:23:12",
"op": [
"transfer",
{
"from": "sigmoid",
"to": "user.dunamu",
"amount": "9.363 STEEM",
"memo": "9adae8bb-47c0-4522-876a-e343bac784c1"
}
]
}sigmoidreceived 0.685 STEEM from power down installment (0.820 SP)2020/06/25 02:22:36
sigmoidreceived 0.685 STEEM from power down installment (0.820 SP)
2020/06/25 02:22:36
| from account | sigmoid |
| to account | sigmoid |
| withdrawn | 1335.081913 VESTS |
| deposited | 0.685 STEEM |
| Transaction Info | Block #44543926/Virtual Operation #3 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 44543926,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 3,
"timestamp": "2020-06-25T02:22:36",
"op": [
"fill_vesting_withdraw",
{
"from_account": "sigmoid",
"to_account": "sigmoid",
"withdrawn": "1335.081913 VESTS",
"deposited": "0.685 STEEM"
}
]
}sigmoidreceived 0.685 STEEM from power down installment (0.820 SP)2020/06/18 02:22:36
sigmoidreceived 0.685 STEEM from power down installment (0.820 SP)
2020/06/18 02:22:36
| from account | sigmoid |
| to account | sigmoid |
| withdrawn | 1335.081916 VESTS |
| deposited | 0.685 STEEM |
| Transaction Info | Block #44344435/Virtual Operation #2 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 44344435,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 2,
"timestamp": "2020-06-18T02:22:36",
"op": [
"fill_vesting_withdraw",
{
"from_account": "sigmoid",
"to_account": "sigmoid",
"withdrawn": "1335.081916 VESTS",
"deposited": "0.685 STEEM"
}
]
}sigmoidreceived 0.685 STEEM from power down installment (0.820 SP)2020/06/11 02:22:36
sigmoidreceived 0.685 STEEM from power down installment (0.820 SP)
2020/06/11 02:22:36
| from account | sigmoid |
| to account | sigmoid |
| withdrawn | 1335.081916 VESTS |
| deposited | 0.685 STEEM |
| Transaction Info | Block #44145264/Virtual Operation #2 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 44145264,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 2,
"timestamp": "2020-06-11T02:22:36",
"op": [
"fill_vesting_withdraw",
{
"from_account": "sigmoid",
"to_account": "sigmoid",
"withdrawn": "1335.081916 VESTS",
"deposited": "0.685 STEEM"
}
]
}sigmoidreceived 0.684 STEEM from power down installment (0.820 SP)2020/06/04 02:22:36
sigmoidreceived 0.684 STEEM from power down installment (0.820 SP)
2020/06/04 02:22:36
| from account | sigmoid |
| to account | sigmoid |
| withdrawn | 1335.081916 VESTS |
| deposited | 0.684 STEEM |
| Transaction Info | Block #43946769/Virtual Operation #2 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 43946769,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 2,
"timestamp": "2020-06-04T02:22:36",
"op": [
"fill_vesting_withdraw",
{
"from_account": "sigmoid",
"to_account": "sigmoid",
"withdrawn": "1335.081916 VESTS",
"deposited": "0.684 STEEM"
}
]
}sigmoidreceived 0.684 STEEM from power down installment (0.820 SP)2020/05/28 02:22:36
sigmoidreceived 0.684 STEEM from power down installment (0.820 SP)
2020/05/28 02:22:36
| from account | sigmoid |
| to account | sigmoid |
| withdrawn | 1335.081916 VESTS |
| deposited | 0.684 STEEM |
| Transaction Info | Block #43748665/Virtual Operation #2 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 43748665,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 2,
"timestamp": "2020-05-28T02:22:36",
"op": [
"fill_vesting_withdraw",
{
"from_account": "sigmoid",
"to_account": "sigmoid",
"withdrawn": "1335.081916 VESTS",
"deposited": "0.684 STEEM"
}
]
}sigmoidreceived 0.684 STEEM from power down installment (0.820 SP)2020/05/21 02:22:36
sigmoidreceived 0.684 STEEM from power down installment (0.820 SP)
2020/05/21 02:22:36
| from account | sigmoid |
| to account | sigmoid |
| withdrawn | 1335.081916 VESTS |
| deposited | 0.684 STEEM |
| Transaction Info | Block #43550881/Virtual Operation #2 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 43550881,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 2,
"timestamp": "2020-05-21T02:22:36",
"op": [
"fill_vesting_withdraw",
{
"from_account": "sigmoid",
"to_account": "sigmoid",
"withdrawn": "1335.081916 VESTS",
"deposited": "0.684 STEEM"
}
]
}sigmoidreceived 0.683 STEEM from power down installment (0.820 SP)2020/05/14 02:22:36
sigmoidreceived 0.683 STEEM from power down installment (0.820 SP)
2020/05/14 02:22:36
| from account | sigmoid |
| to account | sigmoid |
| withdrawn | 1335.081916 VESTS |
| deposited | 0.683 STEEM |
| Transaction Info | Block #43353826/Virtual Operation #2 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 43353826,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 2,
"timestamp": "2020-05-14T02:22:36",
"op": [
"fill_vesting_withdraw",
{
"from_account": "sigmoid",
"to_account": "sigmoid",
"withdrawn": "1335.081916 VESTS",
"deposited": "0.683 STEEM"
}
]
}sigmoidreceived 0.683 STEEM from power down installment (0.820 SP)2020/05/07 02:22:36
sigmoidreceived 0.683 STEEM from power down installment (0.820 SP)
2020/05/07 02:22:36
| from account | sigmoid |
| to account | sigmoid |
| withdrawn | 1335.081916 VESTS |
| deposited | 0.683 STEEM |
| Transaction Info | Block #43156848/Virtual Operation #3 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 43156848,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 3,
"timestamp": "2020-05-07T02:22:36",
"op": [
"fill_vesting_withdraw",
{
"from_account": "sigmoid",
"to_account": "sigmoid",
"withdrawn": "1335.081916 VESTS",
"deposited": "0.683 STEEM"
}
]
}sigmoidreceived 0.683 STEEM from power down installment (0.820 SP)2020/04/30 02:22:36
sigmoidreceived 0.683 STEEM from power down installment (0.820 SP)
2020/04/30 02:22:36
| from account | sigmoid |
| to account | sigmoid |
| withdrawn | 1335.081916 VESTS |
| deposited | 0.683 STEEM |
| Transaction Info | Block #42960210/Virtual Operation #2 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 42960210,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 2,
"timestamp": "2020-04-30T02:22:36",
"op": [
"fill_vesting_withdraw",
{
"from_account": "sigmoid",
"to_account": "sigmoid",
"withdrawn": "1335.081916 VESTS",
"deposited": "0.683 STEEM"
}
]
}sigmoidreceived 0.682 STEEM from power down installment (0.820 SP)2020/04/23 02:22:36
sigmoidreceived 0.682 STEEM from power down installment (0.820 SP)
2020/04/23 02:22:36
| from account | sigmoid |
| to account | sigmoid |
| withdrawn | 1335.081916 VESTS |
| deposited | 0.682 STEEM |
| Transaction Info | Block #42763827/Virtual Operation #2 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 42763827,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 2,
"timestamp": "2020-04-23T02:22:36",
"op": [
"fill_vesting_withdraw",
{
"from_account": "sigmoid",
"to_account": "sigmoid",
"withdrawn": "1335.081916 VESTS",
"deposited": "0.682 STEEM"
}
]
}sigmoidreceived 0.682 STEEM from power down installment (0.820 SP)2020/04/16 02:22:36
sigmoidreceived 0.682 STEEM from power down installment (0.820 SP)
2020/04/16 02:22:36
| from account | sigmoid |
| to account | sigmoid |
| withdrawn | 1335.081916 VESTS |
| deposited | 0.682 STEEM |
| Transaction Info | Block #42568084/Virtual Operation #2 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 42568084,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 2,
"timestamp": "2020-04-16T02:22:36",
"op": [
"fill_vesting_withdraw",
{
"from_account": "sigmoid",
"to_account": "sigmoid",
"withdrawn": "1335.081916 VESTS",
"deposited": "0.682 STEEM"
}
]
}sigmoidreceived 0.682 STEEM from power down installment (0.820 SP)2020/04/09 02:22:36
sigmoidreceived 0.682 STEEM from power down installment (0.820 SP)
2020/04/09 02:22:36
| from account | sigmoid |
| to account | sigmoid |
| withdrawn | 1335.081916 VESTS |
| deposited | 0.682 STEEM |
| Transaction Info | Block #42371230/Virtual Operation #2 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 42371230,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 2,
"timestamp": "2020-04-09T02:22:36",
"op": [
"fill_vesting_withdraw",
{
"from_account": "sigmoid",
"to_account": "sigmoid",
"withdrawn": "1335.081916 VESTS",
"deposited": "0.682 STEEM"
}
]
}sigmoidreceived 0.682 STEEM from power down installment (0.820 SP)2020/04/02 02:22:36
sigmoidreceived 0.682 STEEM from power down installment (0.820 SP)
2020/04/02 02:22:36
| from account | sigmoid |
| to account | sigmoid |
| withdrawn | 1335.081916 VESTS |
| deposited | 0.682 STEEM |
| Transaction Info | Block #42174050/Virtual Operation #6 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 42174050,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 6,
"timestamp": "2020-04-02T02:22:36",
"op": [
"fill_vesting_withdraw",
{
"from_account": "sigmoid",
"to_account": "sigmoid",
"withdrawn": "1335.081916 VESTS",
"deposited": "0.682 STEEM"
}
]
}sigmoidsent 1.182 SBD to @user.dunamu- "9adae8bb-47c0-4522-876a-e343bac784c1"2020/03/26 02:24:18
sigmoidsent 1.182 SBD to @user.dunamu- "9adae8bb-47c0-4522-876a-e343bac784c1"
2020/03/26 02:24:18
| from | sigmoid |
| to | user.dunamu |
| amount | 1.182 SBD |
| memo | 9adae8bb-47c0-4522-876a-e343bac784c1 |
| Transaction Info | Block #41975155/Trx 1a15702c64ee3511d27232d73613229038cec585 |
View Raw JSON Data
{
"trx_id": "1a15702c64ee3511d27232d73613229038cec585",
"block": 41975155,
"trx_in_block": 8,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-03-26T02:24:18",
"op": [
"transfer",
{
"from": "sigmoid",
"to": "user.dunamu",
"amount": "1.182 SBD",
"memo": "9adae8bb-47c0-4522-876a-e343bac784c1"
}
]
}sigmoidstarted power down of 10.658 SP2020/03/26 02:22:36
sigmoidstarted power down of 10.658 SP
2020/03/26 02:22:36
| account | sigmoid |
| vesting shares | 17356.064905 VESTS |
| Transaction Info | Block #41975122/Trx e6d9375775a7d2b2e47cd105c9f33a9567890978 |
View Raw JSON Data
{
"trx_id": "e6d9375775a7d2b2e47cd105c9f33a9567890978",
"block": 41975122,
"trx_in_block": 13,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-03-26T02:22:36",
"op": [
"withdraw_vesting",
{
"account": "sigmoid",
"vesting_shares": "17356.064905 VESTS"
}
]
}sigmoidclaimed reward balance: 1.182 SBD, 3.737 SP2020/03/26 02:22:03
sigmoidclaimed reward balance: 1.182 SBD, 3.737 SP
2020/03/26 02:22:03
| account | sigmoid |
| reward steem | 0.000 STEEM |
| reward sbd | 1.182 SBD |
| reward vests | 6085.469060 VESTS |
| Transaction Info | Block #41975111/Trx d527386db867a824d228b218249168b9cc484ebc |
View Raw JSON Data
{
"trx_id": "d527386db867a824d228b218249168b9cc484ebc",
"block": 41975111,
"trx_in_block": 4,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-03-26T02:22:03",
"op": [
"claim_reward_balance",
{
"account": "sigmoid",
"reward_steem": "0.000 STEEM",
"reward_sbd": "1.182 SBD",
"reward_vests": "6085.469060 VESTS"
}
]
}2020/03/26 02:20:45
2020/03/26 02:20:45
| parent author | |
| parent permlink | bitcoin |
| author | sigmoid |
| permlink | 2bapgg |
| title | ๋ธ๋ก์ฒด์ธ ๊ฐ๋ฐ์ ์ฑ์ฉ ๊ณต๊ณ ๋ฅผ ๋ณด๊ณ .... |
| body | ์์ฆ ์ด๋๋ฆฌ์ ์์ค์ฝ๋๋ฅผ ๋ถ์ํ๊ณ ์์ง๋ง, ๋ถ์ํ๋ฉด์ ๋๋ผ๋ ์์ฌ์ด ๋ถ๋ถ์ด ๋์์๋ฆฌ๋ ์๊ฒ ๋๋ฐ, ์ค๋ฌด์ ์ผ๋ก๋ ์ด๋ค์ง, ์ค๋ฌด์๋ค์ ์ด๋ค ๋ฌธ์ ๋ฅผ ๋ง์ฃผํ๋ฉฐ, ๊ฐ์ ํด ๋๊ฐ๊ณ ์๋์ง๋ค. ๊ทธ๋ฌ๋์ค ์ค๋ ํ์ด์ค๋ถ ํผ๋์์ ๋์ ๋๋ ๊ฐ๋ฐ์ ์ฑ์ฉ๊ณต๊ณ ๋ฅผ ๋ณด๊ฒ๋์๋ค. ๋ธ๋ก์ฒด์ธ ์คํํธ์ "์จ๋"์์ ๊ฐ๋ฐ์๋ฅผ ๋ชจ์งํ๋๋ฐ ์ฒจ๋ถ๋ ์ง๋ฌธ๋ค์ด ํ๋๊ฐ์ด ์ค๋ฌด์ค๋ฌ์ด. ๊ทธ๋ฌ๋๊น ์์ผ๋ก ๋ด๊ฐ ๋ถ์ํ ๋ ์งํ ์ผ์ ๋งํ ํญ๋ชฉ๋ค์ด์๋ค. ์ฌ์ค, World๊ฐ ๋์๊ฐ๋ ๋ก์ง์ ์ดํดํ๋ฉด, ๊ทธ๊ฒ์ ๋ํ implementation์ ์ด์ฉ์ ์์ด ๋ฐ๋ผ๊ฐ๊ฒ ๋์ด์๋ค. ๋ด๊ฐ ๋ถ์์ค์ธ ์ด๋๋ฆฌ์ ๊ตฌํ ์ฝ๋๋ ์ด๋๋ฆฌ์ ํ๋กํ ์ฝ์ ๋์๊ณผ ๋ฐ์๊ฐ๋ฅํ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๊ธฐ ์ํด ๊ทธ๋ ๊ฒ ๋ฐ์ ์ง์ง์ ์๋ ์ฝ๋๋ผ๋ ๋ป์ด๋ค. ์ฑ์ฉ๊ณต๊ณ ๋ฅผ ํตํด ํ์ฌ์ ๊ท์คํ ์์ฐ์ ๊ณผ๊ฐํ๊ฒ ๊ณต์ ํด์ฃผ์ ์ ์ํ ๋ํ๋๊ป ๋ค์ํ๋ฒ ๊ฐ์ฌ๋๋ฆฐ๋ค. (์ฑ์ฉ๊ณต๊ณ ์๋ฌธ์ ์๋ ๋งํฌ๋ฅผ ์ฐธ์กฐ) > https://m.facebook.com/story.php?story_fbid=2033070063402346&id=100000981176857 |
| json metadata | {"format":"markdown","app":"steemit/0.2","tags":["blockchain","ethereum","korean"],"links":["https://m.facebook.com/story.php?story_fbid=2033070063402346&id=100000981176857"]} |
| Transaction Info | Block #41975085/Trx ebf03177dd9b10be6ff053569bfa088696f203a6 |
View Raw JSON Data
{
"trx_id": "ebf03177dd9b10be6ff053569bfa088696f203a6",
"block": 41975085,
"trx_in_block": 14,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-03-26T02:20:45",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "bitcoin",
"author": "sigmoid",
"permlink": "2bapgg",
"title": "๋ธ๋ก์ฒด์ธ ๊ฐ๋ฐ์ ์ฑ์ฉ ๊ณต๊ณ ๋ฅผ ๋ณด๊ณ ....",
"body": "์์ฆ ์ด๋๋ฆฌ์ ์์ค์ฝ๋๋ฅผ ๋ถ์ํ๊ณ ์์ง๋ง, ๋ถ์ํ๋ฉด์ ๋๋ผ๋ ์์ฌ์ด ๋ถ๋ถ์ด \n๋์์๋ฆฌ๋ ์๊ฒ ๋๋ฐ, ์ค๋ฌด์ ์ผ๋ก๋ ์ด๋ค์ง,\n์ค๋ฌด์๋ค์ ์ด๋ค ๋ฌธ์ ๋ฅผ ๋ง์ฃผํ๋ฉฐ, ๊ฐ์ ํด ๋๊ฐ๊ณ ์๋์ง๋ค.\n\n๊ทธ๋ฌ๋์ค ์ค๋ ํ์ด์ค๋ถ ํผ๋์์ ๋์ ๋๋ ๊ฐ๋ฐ์ ์ฑ์ฉ๊ณต๊ณ ๋ฅผ ๋ณด๊ฒ๋์๋ค.\n๋ธ๋ก์ฒด์ธ ์คํํธ์
\"์จ๋\"์์ ๊ฐ๋ฐ์๋ฅผ ๋ชจ์งํ๋๋ฐ ์ฒจ๋ถ๋ ์ง๋ฌธ๋ค์ด ํ๋๊ฐ์ด ์ค๋ฌด์ค๋ฌ์ด.\n๊ทธ๋ฌ๋๊น ์์ผ๋ก ๋ด๊ฐ ๋ถ์ํ ๋ ์งํ ์ผ์ ๋งํ ํญ๋ชฉ๋ค์ด์๋ค.\n\n์ฌ์ค, World๊ฐ ๋์๊ฐ๋ ๋ก์ง์ ์ดํดํ๋ฉด, ๊ทธ๊ฒ์ ๋ํ implementation์ ์ด์ฉ์ ์์ด ๋ฐ๋ผ๊ฐ๊ฒ ๋์ด์๋ค.\n๋ด๊ฐ ๋ถ์์ค์ธ ์ด๋๋ฆฌ์ ๊ตฌํ ์ฝ๋๋ ์ด๋๋ฆฌ์ ํ๋กํ ์ฝ์ ๋์๊ณผ ๋ฐ์๊ฐ๋ฅํ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ๊ธฐ ์ํด\n๊ทธ๋ ๊ฒ ๋ฐ์ ์ง์ง์ ์๋ ์ฝ๋๋ผ๋ ๋ป์ด๋ค.\n\n\n์ฑ์ฉ๊ณต๊ณ ๋ฅผ ํตํด ํ์ฌ์ ๊ท์คํ ์์ฐ์ ๊ณผ๊ฐํ๊ฒ ๊ณต์ ํด์ฃผ์ ์ ์ํ ๋ํ๋๊ป\n๋ค์ํ๋ฒ ๊ฐ์ฌ๋๋ฆฐ๋ค. (์ฑ์ฉ๊ณต๊ณ ์๋ฌธ์ ์๋ ๋งํฌ๋ฅผ ์ฐธ์กฐ)\n> https://m.facebook.com/story.php?story_fbid=2033070063402346&id=100000981176857",
"json_metadata": "{\"format\":\"markdown\",\"app\":\"steemit/0.2\",\"tags\":[\"blockchain\",\"ethereum\",\"korean\"],\"links\":[\"https://m.facebook.com/story.php?story_fbid=2033070063402346&id=100000981176857\"]}"
}
]
}sigmoidreceived 0.479 STEEM from power down installment (0.577 SP)2020/03/25 15:06:27
sigmoidreceived 0.479 STEEM from power down installment (0.577 SP)
2020/03/25 15:06:27
| from account | sigmoid |
| to account | sigmoid |
| withdrawn | 939.216321 VESTS |
| deposited | 0.479 STEEM |
| Transaction Info | Block #41961765/Virtual Operation #12 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 41961765,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 12,
"timestamp": "2020-03-25T15:06:27",
"op": [
"fill_vesting_withdraw",
{
"from_account": "sigmoid",
"to_account": "sigmoid",
"withdrawn": "939.216321 VESTS",
"deposited": "0.479 STEEM"
}
]
}sigmoidsent 2.500 SBD to @user.dunamu- "9adae8bb-47c0-4522-876a-e343bac784c1"2020/03/18 15:09:30
sigmoidsent 2.500 SBD to @user.dunamu- "9adae8bb-47c0-4522-876a-e343bac784c1"
2020/03/18 15:09:30
| from | sigmoid |
| to | user.dunamu |
| amount | 2.500 SBD |
| memo | 9adae8bb-47c0-4522-876a-e343bac784c1 |
| Transaction Info | Block #41762626/Trx 50370cac30fe973eb16aa6c1984b3e73a1cee406 |
View Raw JSON Data
{
"trx_id": "50370cac30fe973eb16aa6c1984b3e73a1cee406",
"block": 41762626,
"trx_in_block": 10,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-03-18T15:09:30",
"op": [
"transfer",
{
"from": "sigmoid",
"to": "user.dunamu",
"amount": "2.500 SBD",
"memo": "9adae8bb-47c0-4522-876a-e343bac784c1"
}
]
}sigmoidsent 12.044 STEEM to @user.dunamu- "9adae8bb-47c0-4522-876a-e343bac784c1"2020/03/18 15:08:09
sigmoidsent 12.044 STEEM to @user.dunamu- "9adae8bb-47c0-4522-876a-e343bac784c1"
2020/03/18 15:08:09
| from | sigmoid |
| to | user.dunamu |
| amount | 12.044 STEEM |
| memo | 9adae8bb-47c0-4522-876a-e343bac784c1 |
| Transaction Info | Block #41762599/Trx 8ca270ba8607df0fe1ddcc0d527669fc635c3f69 |
View Raw JSON Data
{
"trx_id": "8ca270ba8607df0fe1ddcc0d527669fc635c3f69",
"block": 41762599,
"trx_in_block": 20,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-03-18T15:08:09",
"op": [
"transfer",
{
"from": "sigmoid",
"to": "user.dunamu",
"amount": "12.044 STEEM",
"memo": "9adae8bb-47c0-4522-876a-e343bac784c1"
}
]
}sigmoidstarted power down of 7.498 SP2020/03/18 15:06:27
sigmoidstarted power down of 7.498 SP
2020/03/18 15:06:27
| account | sigmoid |
| vesting shares | 12209.812166 VESTS |
| Transaction Info | Block #41762565/Trx 6cba2bf7da6193e21225210faf9bb26a15cb556c |
View Raw JSON Data
{
"trx_id": "6cba2bf7da6193e21225210faf9bb26a15cb556c",
"block": 41762565,
"trx_in_block": 75,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2020-03-18T15:06:27",
"op": [
"withdraw_vesting",
{
"account": "sigmoid",
"vesting_shares": "12209.812166 VESTS"
}
]
}sigmoidpublished a new post: celo-a-multi-asset-cryptographic-protocol-for-decentralized-social-payments2019/11/29 08:49:24
sigmoidpublished a new post: celo-a-multi-asset-cryptographic-protocol-for-decentralized-social-payments
2019/11/29 08:49:24
| parent author | |
| parent permlink | celo |
| author | sigmoid |
| permlink | celo-a-multi-asset-cryptographic-protocol-for-decentralized-social-payments |
| title | Celo: A Multi-Asset Cryptographic Protocol for Decentralized Social Payments |
| body | @@ -1440,16 +1440,107 @@ %EC%9E%A5%ED%9E%88 %EA%B8%B0%EB%8C%80%EA%B0%80 %EB%90%98%EB%8A%94%EA%B2%83 %EA%B0%99%EC%8A%B5%EB%8B%88%EB%8B%A4. +%0A%0A%EB%8D%94 %EB%A7%8E%EC%9D%80 %EC%A0%95%EB%B3%B4%EB%A5%BC %EC%9B%90%ED%95%98%EC%8B%A0%EB%8B%A4%EB%A9%B4? %EC%95%84%EB%9E%98%EB%A1%9C...%0Ahttps://github.com/dsrvlabs/celo%0A%0Ahttps://github.com/dsrvlabs/celo |
| json metadata | {"tags":["stable","mobile","defi"],"image":["https://cdn.steemitimages.com/DQmbG9NvnHGeBDCruXuF4u4q6GZSKK9Jh61ZjKcCoTtGodb/image.png","https://cdn.steemitimages.com/DQmccePh3X521TJvVWF9JfVWD76mPtaWYB3Zs1y7hjY8QzY/image.png"],"app":"steemit/0.1","format":"markdown","links":["https://github.com/dsrvlabs/celo"]} |
| Transaction Info | Block #38594230/Trx 5e53134380e4d54a72908b578cd090a720532cfe |
View Raw JSON Data
{
"trx_id": "5e53134380e4d54a72908b578cd090a720532cfe",
"block": 38594230,
"trx_in_block": 6,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-11-29T08:49:24",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "celo",
"author": "sigmoid",
"permlink": "celo-a-multi-asset-cryptographic-protocol-for-decentralized-social-payments",
"title": "Celo: A Multi-Asset Cryptographic Protocol for Decentralized Social Payments",
"body": "@@ -1440,16 +1440,107 @@\n %EC%9E%A5%ED%9E%88 %EA%B8%B0%EB%8C%80%EA%B0%80 %EB%90%98%EB%8A%94%EA%B2%83 %EA%B0%99%EC%8A%B5%EB%8B%88%EB%8B%A4.\n+%0A%0A%EB%8D%94 %EB%A7%8E%EC%9D%80 %EC%A0%95%EB%B3%B4%EB%A5%BC %EC%9B%90%ED%95%98%EC%8B%A0%EB%8B%A4%EB%A9%B4? %EC%95%84%EB%9E%98%EB%A1%9C...%0Ahttps://github.com/dsrvlabs/celo%0A%0Ahttps://github.com/dsrvlabs/celo\n",
"json_metadata": "{\"tags\":[\"stable\",\"mobile\",\"defi\"],\"image\":[\"https://cdn.steemitimages.com/DQmbG9NvnHGeBDCruXuF4u4q6GZSKK9Jh61ZjKcCoTtGodb/image.png\",\"https://cdn.steemitimages.com/DQmccePh3X521TJvVWF9JfVWD76mPtaWYB3Zs1y7hjY8QzY/image.png\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\",\"links\":[\"https://github.com/dsrvlabs/celo\"]}"
}
]
}2019/11/22 11:23:42
2019/11/22 11:23:42
| voter | steeming-hot |
| author | sigmoid |
| permlink | celo-a-multi-asset-cryptographic-protocol-for-decentralized-social-payments |
| weight | 1 (0.01%) |
| Transaction Info | Block #38396078/Trx ce40b5538b7faa6bf68d70aa45978bd2058e662e |
View Raw JSON Data
{
"trx_id": "ce40b5538b7faa6bf68d70aa45978bd2058e662e",
"block": 38396078,
"trx_in_block": 3,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-11-22T11:23:42",
"op": [
"vote",
{
"voter": "steeming-hot",
"author": "sigmoid",
"permlink": "celo-a-multi-asset-cryptographic-protocol-for-decentralized-social-payments",
"weight": 1
}
]
}2019/11/22 11:22:09
2019/11/22 11:22:09
| voter | laissez-faire |
| author | sigmoid |
| permlink | celo-a-multi-asset-cryptographic-protocol-for-decentralized-social-payments |
| weight | 10000 (100.00%) |
| Transaction Info | Block #38396047/Trx 743f544ff55dcc169f05503c50b98f1dbaefc129 |
View Raw JSON Data
{
"trx_id": "743f544ff55dcc169f05503c50b98f1dbaefc129",
"block": 38396047,
"trx_in_block": 37,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-11-22T11:22:09",
"op": [
"vote",
{
"voter": "laissez-faire",
"author": "sigmoid",
"permlink": "celo-a-multi-asset-cryptographic-protocol-for-decentralized-social-payments",
"weight": 10000
}
]
}2019/11/22 11:21:48
2019/11/22 11:21:48
| voter | anomaly |
| author | sigmoid |
| permlink | celo-a-multi-asset-cryptographic-protocol-for-decentralized-social-payments |
| weight | 100 (1.00%) |
| Transaction Info | Block #38396040/Trx 351022546709ee5ecd6c1119b8c7039428c5dcb9 |
View Raw JSON Data
{
"trx_id": "351022546709ee5ecd6c1119b8c7039428c5dcb9",
"block": 38396040,
"trx_in_block": 22,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-11-22T11:21:48",
"op": [
"vote",
{
"voter": "anomaly",
"author": "sigmoid",
"permlink": "celo-a-multi-asset-cryptographic-protocol-for-decentralized-social-payments",
"weight": 100
}
]
}sigmoidpublished a new post: celo-a-multi-asset-cryptographic-protocol-for-decentralized-social-payments2019/11/22 11:20:57
sigmoidpublished a new post: celo-a-multi-asset-cryptographic-protocol-for-decentralized-social-payments
2019/11/22 11:20:57
| parent author | |
| parent permlink | celo |
| author | sigmoid |
| permlink | celo-a-multi-asset-cryptographic-protocol-for-decentralized-social-payments |
| title | Celo: A Multi-Asset Cryptographic Protocol for Decentralized Social Payments |
| body | ์๋ ํ์ธ์, Sigmoid ์ ๋๋ค. (์ด๋์ ๋ ์ ์ ์ด ๋ง์ด ์์ด์ ํฌ์คํ ์ด ์ข ๋ธํ๋ค์.) ์ค๋์ ์ฌ๋ฌ๋ถ๋ค๊ป Celo๋ผ๋ ํ๋ก์ ํธ์ ๋ฐฑ์๋ฅผ ์๊ฐํ๋ ค๊ณ ํฉ๋๋ค. Celo๋ Stable Coin์ ๋ฐํํ ์ ์๋ ํ๋ซํผ์ธ๋ฐ, ์ ๊ฐ ์ด ํ๋ก์ ํธ๋ฅผ ์ฃผ์ํ๊ณ ์๋ ์ด์ ๋ ๊ธฐ์ ์ ์น์ํจ ๋ณด๋ค๋ ease-of-use์ stable-value ์ด๋ ๊ฒ ๋๊ฐ์ง ์ ๋๋ค. celoํ์ ์ํธํํ๊ฐ ๋ ์ ๋ ดํ๊ณ ๋น ๋ฅด๋ฉฐ, ์์ ํ๊ฒ ๊ฒ์ฆ๊ฐ๋ฅํ ๊ฒฐ์ ์๋จ์ด๋ผ๊ณ ์ ์ํฉ๋๋ค. ๊ฒ๋ค๊ฐ "Programmable" ํ๊ธฐ๋๋ฌธ์ ๋ค์ํ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ ์ ์์ฃ . ๊ทธ๋ผ์๋ ์ฌ์ฉ์๋ค์ด ์ฝ๊ฒ ์ธ์ ์๋ ์ด์ ๋, 1. ๊ณ ์ ๋ ์ฝ์ธ ๋ฐํ ๋ฃฐ๊ณผ ์์ธก ํ ์ ์๋ ์์๋๋ฌธ์ ๊ฐ๊ฒฉ๋ณ๋์ด ์ฌํ๊ณ , 2. ์ฝ์ธ์ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํด ์ฌ์ฉ์๋ผ๋ฆฌ ์๋ก ๊ณต๊ฐํค์ ๊ฐ์ธํค๋ฅผ ์ค๋นํด์ผํ๋ ์ง์ ์ฅ๋ฒฝ ๋๋ฌธ์ ๋๋ค. (์์ฆ ๋ง์ ๋ถ๋ค์ด ๋นํธ์ฝ์ธ์ Store Value ๋ก ์ ์ํ์๋ ๊ฒ ๊ฐ์ต๋๋ค.) ์ฐธ๊ณ ๋ก, ์ด๋๋ฆฌ์ ๊ตฌํ์ฒด์ธ Geth๋ฅผ ํฌํฌํ์ฌ Istanbul BFT ํฉ์๋ฅผ ๋ถ์ฌ Proof of Stake ๊ธฐ๋ฐ์ผ๋ก ๋ณ๊ฒฝํ์์ต๋๋ค. ์ฌ์ด ์ก๊ธ์ ์ํด, celo๋ Address-Based Encryption์ ์ฌ์ฉํฉ๋๋ค. ์ ์ ๋ค์ ์์ ์ ํด๋ํฐ ๋ฒํธ๋ ์ด๋ฉ์ผ ์ฃผ์๋ฅผ ์ฌ์ฉํ์ฌ ๋์ ๋ณด๋ผ์ ์๊ฒ ๋ฉ๋๋ค.์ด๋ฅผ ์ง์ํ๊ธฐ์ํด address -> public key ๋งตํํ ์ด๋ธ์ ์ฌ์ฉํ๋๋ฐ ์ง๊ฐ์ ์ค์นํด๋ณด๋ฉด ํด๋ํฐ๋ง์ผ๋ก ์ธ์ฆ์ด ๋๊ณ , celo๋ฅผ ๋ชจ๋ฅด๋ ์น๊ตฌ์๊ฒ celo dollar๋ฅผ ๋ณด๋ผ์๋ ์๋ค์.  ๋ฐ๋ ์ฌ๋ ์ ์ฅ์์๋ celo ์ง๊ฐ์ค์น์ ์ ํ๋ฒํธ๋ก ์ธ์ฆ์ ๋ฐ๊ฒ๋๋ฉด publickey๊ฐ ์์ฑ๋๋ฉฐ, ์ง๊ฐ์ ์ด๋ฏธ ๋์ด ๋ค์ด์์๊ฒ ๋ฉ๋๋ค. stableํ celo dollar์ํ๋ฅผ ๋ง๋ค๊ธฐ ์ํด์๋ ์๋์ ๊ฐ์ ๋ก์ง์ผ๋ก ๊ฐ๊ฒฉ์ ์ ์งํ๊ฒ ๋ฉ๋๋ค. ๋จผ์ celo dollar๊ฐ ์์๊ฐ ๋ง์์ ธ์ 1$๋ณด๋ค ๊ฐ๊ฒฉ์ด ๋์์ง ๊ฒฝ์ฐ, celo dollar๋ฅผ ๋ฐํํฉ๋๋ค. ์ด ๋์ผ๋ก dex์์ celo gold๋ฅผ ์ฌ์ ๋ฆฌ์ ๋ธ์ ๋ฃ๊ณ ์. ์์๊ฐ ์ ์ด์ ธ์ 1$๋ณด๋ค ๊ฐ๊ฒฉ์ด ๋ฎ์์ง ๊ฒฝ์ฐ, ๋ฆฌ์ ๋ธ์ celo gold๋ฅผ ์ฌ์ฉํด์ celo dollar๋ฅผ ์ฐ ํ, burnํด ๋ฒ๋ฆฝ๋๋ค. ๊ทธ๋ฆผ์ผ๋ก ๋ณด์ค๊น์?  ๋๋ถ๋ถ์ stable coin์ ๊ฒฝ์ฐ ์ค๋ผํด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค(1$์ฌ๋ถ๋ฅผ ํ์ธํ๊ธฐ ์ํด). celo์ ๊ฒฝ์ฐ๋ dex๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ถ๋ถ์ ํด๊ฒฐํ๋ค์. ๋ง์ ์ฌ๋๋ค์ด ๋ธ๋ก์ฒด์ธ์ ์ ๋ขฐ์ ๊ธฐ์ ์ด๋ผ๊ณ ํฉ๋๋ค. celo๋ ๊ธฐ์ ์ ์ ๋ขฐ์์ ์ฌ๋์ ์ํ ์ ๋ขฐ๋ฅผ ๋ง๋ค๊ณ ์ ํ๋๊ฒ ๊ฐ์ต๋๋ค. ์คํ ์ด๋ธ ์ฝ์ธ์ด ์ด๋ป๊ฒ ์ ๋ขฐ๋ฅผ ๋ง๋ค๊ณ ๋ฐ์ ์์ผ ๋๊ฐ์ง ๊ต์ฅํ ๊ธฐ๋๊ฐ ๋๋๊ฒ ๊ฐ์ต๋๋ค. |
| json metadata | {"tags":["celo","stable","mobile","defi"],"image":["https://cdn.steemitimages.com/DQmbG9NvnHGeBDCruXuF4u4q6GZSKK9Jh61ZjKcCoTtGodb/image.png","https://cdn.steemitimages.com/DQmccePh3X521TJvVWF9JfVWD76mPtaWYB3Zs1y7hjY8QzY/image.png"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #38396023/Trx 514ee924770f5d1ed1e2fdc567242d5e8f8eb455 |
View Raw JSON Data
{
"trx_id": "514ee924770f5d1ed1e2fdc567242d5e8f8eb455",
"block": 38396023,
"trx_in_block": 15,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-11-22T11:20:57",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "celo",
"author": "sigmoid",
"permlink": "celo-a-multi-asset-cryptographic-protocol-for-decentralized-social-payments",
"title": "Celo: A Multi-Asset Cryptographic Protocol for Decentralized Social Payments",
"body": "์๋
ํ์ธ์, Sigmoid ์
๋๋ค. \n(์ด๋์ ๋ ์ ์ ์ด ๋ง์ด ์์ด์ ํฌ์คํ
์ด ์ข ๋ธํ๋ค์.)\n์ค๋์ ์ฌ๋ฌ๋ถ๋ค๊ป Celo๋ผ๋ ํ๋ก์ ํธ์ ๋ฐฑ์๋ฅผ ์๊ฐํ๋ ค๊ณ ํฉ๋๋ค.\n\nCelo๋ Stable Coin์ ๋ฐํํ ์ ์๋ ํ๋ซํผ์ธ๋ฐ, ์ ๊ฐ ์ด ํ๋ก์ ํธ๋ฅผ ์ฃผ์ํ๊ณ ์๋ ์ด์ ๋ ๊ธฐ์ ์ ์น์ํจ ๋ณด๋ค๋\nease-of-use์ stable-value ์ด๋ ๊ฒ ๋๊ฐ์ง ์
๋๋ค.\n\nceloํ์ ์ํธํํ๊ฐ ๋ ์ ๋ ดํ๊ณ ๋น ๋ฅด๋ฉฐ, ์์ ํ๊ฒ ๊ฒ์ฆ๊ฐ๋ฅํ ๊ฒฐ์ ์๋จ์ด๋ผ๊ณ ์ ์ํฉ๋๋ค. ๊ฒ๋ค๊ฐ \"Programmable\" ํ๊ธฐ๋๋ฌธ์ ๋ค์ํ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ ์ ์์ฃ .\n\n๊ทธ๋ผ์๋ ์ฌ์ฉ์๋ค์ด ์ฝ๊ฒ ์ธ์ ์๋ ์ด์ ๋, \n1. ๊ณ ์ ๋ ์ฝ์ธ ๋ฐํ ๋ฃฐ๊ณผ ์์ธก ํ ์ ์๋ ์์๋๋ฌธ์ ๊ฐ๊ฒฉ๋ณ๋์ด ์ฌํ๊ณ ,\n2. ์ฝ์ธ์ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํด ์ฌ์ฉ์๋ผ๋ฆฌ ์๋ก ๊ณต๊ฐํค์ ๊ฐ์ธํค๋ฅผ ์ค๋นํด์ผํ๋ ์ง์
์ฅ๋ฒฝ ๋๋ฌธ์
๋๋ค.\n(์์ฆ ๋ง์ ๋ถ๋ค์ด ๋นํธ์ฝ์ธ์ Store Value ๋ก ์ ์ํ์๋ ๊ฒ ๊ฐ์ต๋๋ค.)\n\n์ฐธ๊ณ ๋ก, ์ด๋๋ฆฌ์ ๊ตฌํ์ฒด์ธ Geth๋ฅผ ํฌํฌํ์ฌ Istanbul BFT ํฉ์๋ฅผ ๋ถ์ฌ Proof of Stake ๊ธฐ๋ฐ์ผ๋ก ๋ณ๊ฒฝํ์์ต๋๋ค.\n\n\n์ฌ์ด ์ก๊ธ์ ์ํด, celo๋ Address-Based Encryption์ ์ฌ์ฉํฉ๋๋ค. ์ ์ ๋ค์ ์์ ์ ํด๋ํฐ ๋ฒํธ๋ ์ด๋ฉ์ผ ์ฃผ์๋ฅผ ์ฌ์ฉํ์ฌ ๋์ ๋ณด๋ผ์ ์๊ฒ ๋ฉ๋๋ค.์ด๋ฅผ ์ง์ํ๊ธฐ์ํด address -> public key ๋งตํํ
์ด๋ธ์ ์ฌ์ฉํ๋๋ฐ\n์ง๊ฐ์ ์ค์นํด๋ณด๋ฉด ํด๋ํฐ๋ง์ผ๋ก ์ธ์ฆ์ด ๋๊ณ , celo๋ฅผ ๋ชจ๋ฅด๋ ์น๊ตฌ์๊ฒ celo dollar๋ฅผ ๋ณด๋ผ์๋ ์๋ค์.\n\n\n๋ฐ๋ ์ฌ๋ ์
์ฅ์์๋ celo ์ง๊ฐ์ค์น์ ์ ํ๋ฒํธ๋ก ์ธ์ฆ์ ๋ฐ๊ฒ๋๋ฉด publickey๊ฐ ์์ฑ๋๋ฉฐ, ์ง๊ฐ์ ์ด๋ฏธ ๋์ด ๋ค์ด์์๊ฒ ๋ฉ๋๋ค.\n\nstableํ celo dollar์ํ๋ฅผ ๋ง๋ค๊ธฐ ์ํด์๋ ์๋์ ๊ฐ์ ๋ก์ง์ผ๋ก ๊ฐ๊ฒฉ์ ์ ์งํ๊ฒ ๋ฉ๋๋ค.\n๋จผ์ celo dollar๊ฐ ์์๊ฐ ๋ง์์ ธ์ 1$๋ณด๋ค ๊ฐ๊ฒฉ์ด ๋์์ง ๊ฒฝ์ฐ, celo dollar๋ฅผ ๋ฐํํฉ๋๋ค.\n์ด ๋์ผ๋ก dex์์ celo gold๋ฅผ ์ฌ์ ๋ฆฌ์ ๋ธ์ ๋ฃ๊ณ ์.\n์์๊ฐ ์ ์ด์ ธ์ 1$๋ณด๋ค ๊ฐ๊ฒฉ์ด ๋ฎ์์ง ๊ฒฝ์ฐ, ๋ฆฌ์ ๋ธ์ celo gold๋ฅผ ์ฌ์ฉํด์ celo dollar๋ฅผ ์ฐ ํ, burnํด ๋ฒ๋ฆฝ๋๋ค.\n๊ทธ๋ฆผ์ผ๋ก ๋ณด์ค๊น์?\n\n\n๋๋ถ๋ถ์ stable coin์ ๊ฒฝ์ฐ ์ค๋ผํด ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค(1$์ฌ๋ถ๋ฅผ ํ์ธํ๊ธฐ ์ํด). celo์ ๊ฒฝ์ฐ๋ dex๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ถ๋ถ์ ํด๊ฒฐํ๋ค์.\n\n๋ง์ ์ฌ๋๋ค์ด ๋ธ๋ก์ฒด์ธ์ ์ ๋ขฐ์ ๊ธฐ์ ์ด๋ผ๊ณ ํฉ๋๋ค. celo๋ ๊ธฐ์ ์ ์ ๋ขฐ์์ ์ฌ๋์ ์ํ ์ ๋ขฐ๋ฅผ ๋ง๋ค๊ณ ์ ํ๋๊ฒ ๊ฐ์ต๋๋ค. ์คํ
์ด๋ธ ์ฝ์ธ์ด ์ด๋ป๊ฒ ์ ๋ขฐ๋ฅผ ๋ง๋ค๊ณ ๋ฐ์ ์์ผ ๋๊ฐ์ง ๊ต์ฅํ ๊ธฐ๋๊ฐ ๋๋๊ฒ ๊ฐ์ต๋๋ค.",
"json_metadata": "{\"tags\":[\"celo\",\"stable\",\"mobile\",\"defi\"],\"image\":[\"https://cdn.steemitimages.com/DQmbG9NvnHGeBDCruXuF4u4q6GZSKK9Jh61ZjKcCoTtGodb/image.png\",\"https://cdn.steemitimages.com/DQmccePh3X521TJvVWF9JfVWD76mPtaWYB3Zs1y7hjY8QzY/image.png\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}2019/07/21 08:27:03
2019/07/21 08:27:03
| parent author | sigmoid |
| parent permlink | ov-net |
| author | etc.korea |
| permlink | puzgt1 |
| title | |
| body | ์๋ ํ์ธ์ ์ด๋๋ฆฌ์ ํด๋์ ์ฝ๋ฆฌ์์ ๋๋ค. ํน์ ํด๋น ํ๋ก์ ํธ ๊ด๋ จํด์ ๊ฐ์ธ์ ์ผ๋ก ์ฐ๋ฝ์ ๋๋ฆฌ๊ณ ์ถ์๋ฐ, ํน์ ๊ฐ๋ฅํ์ ๊ฐ์? |
| json metadata | {"tags":["ethereum"],"app":"steemit/0.1"} |
| Transaction Info | Block #34851345/Trx a3c4a485f9ac395f657047cff8874d7f10643132 |
View Raw JSON Data
{
"trx_id": "a3c4a485f9ac395f657047cff8874d7f10643132",
"block": 34851345,
"trx_in_block": 0,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-07-21T08:27:03",
"op": [
"comment",
{
"parent_author": "sigmoid",
"parent_permlink": "ov-net",
"author": "etc.korea",
"permlink": "puzgt1",
"title": "",
"body": "์๋
ํ์ธ์ ์ด๋๋ฆฌ์ ํด๋์ ์ฝ๋ฆฌ์์
๋๋ค. \n\nํน์ ํด๋น ํ๋ก์ ํธ ๊ด๋ จํด์ ๊ฐ์ธ์ ์ผ๋ก ์ฐ๋ฝ์ ๋๋ฆฌ๊ณ ์ถ์๋ฐ, ํน์ ๊ฐ๋ฅํ์ ๊ฐ์?",
"json_metadata": "{\"tags\":[\"ethereum\"],\"app\":\"steemit/0.1\"}"
}
]
}2019/07/16 06:48:42
2019/07/16 06:48:42
| parent author | sigmoid |
| parent permlink | my-next-topic-nxt-project |
| author | jaydih |
| permlink | puq2x7 |
| title | |
| body | ใ ใ ๊ทธ์ผ๋ง๋ก ๋นํธ์ฝ์ธ โ๊ทธ๋ค์โ์ด์ฃ . ๊ผญ ์ถ๋ฝํ ์ธ๊ณ์ธ UFO์ ๊ฐ์ด ๋๊ปด์ง๋ค๋๊น์. ์ด ๊ณณ์์ ๋ธ๋ก์ฒด์ธ ๊ธฐ์ ๋ค์ ๋ง์ด ์ถ์ถํด์ ์ฌ์ฉํ๋ ๊ฒ ๊ฐ์์. |
| json metadata | {"tags":["nxt"],"app":"steemit/0.1"} |
| Transaction Info | Block #34705545/Trx 2ae4e0d15f0fdddf275575bd1198ca24f33d5737 |
View Raw JSON Data
{
"trx_id": "2ae4e0d15f0fdddf275575bd1198ca24f33d5737",
"block": 34705545,
"trx_in_block": 30,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-07-16T06:48:42",
"op": [
"comment",
{
"parent_author": "sigmoid",
"parent_permlink": "my-next-topic-nxt-project",
"author": "jaydih",
"permlink": "puq2x7",
"title": "",
"body": "ใ
ใ
๊ทธ์ผ๋ง๋ก ๋นํธ์ฝ์ธ โ๊ทธ๋ค์โ์ด์ฃ . \n๊ผญ ์ถ๋ฝํ ์ธ๊ณ์ธ UFO์ ๊ฐ์ด ๋๊ปด์ง๋ค๋๊น์. ์ด ๊ณณ์์ ๋ธ๋ก์ฒด์ธ ๊ธฐ์ ๋ค์ ๋ง์ด ์ถ์ถํด์ ์ฌ์ฉํ๋ ๊ฒ ๊ฐ์์.",
"json_metadata": "{\"tags\":[\"nxt\"],\"app\":\"steemit/0.1\"}"
}
]
}milkysun913upvoted (100.00%) @sigmoid / my-next-topic-nxt-project2019/07/08 13:32:54
milkysun913upvoted (100.00%) @sigmoid / my-next-topic-nxt-project
2019/07/08 13:32:54
| voter | milkysun913 |
| author | sigmoid |
| permlink | my-next-topic-nxt-project |
| weight | 10000 (100.00%) |
| Transaction Info | Block #34483465/Trx b0737c0c7747caa3bc8a2a05d741b7ea1b459ea3 |
View Raw JSON Data
{
"trx_id": "b0737c0c7747caa3bc8a2a05d741b7ea1b459ea3",
"block": 34483465,
"trx_in_block": 7,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-07-08T13:32:54",
"op": [
"vote",
{
"voter": "milkysun913",
"author": "sigmoid",
"permlink": "my-next-topic-nxt-project",
"weight": 10000
}
]
}carthagoupvoted (100.00%) @sigmoid / my-next-topic-nxt-project2019/07/08 12:06:15
carthagoupvoted (100.00%) @sigmoid / my-next-topic-nxt-project
2019/07/08 12:06:15
| voter | carthago |
| author | sigmoid |
| permlink | my-next-topic-nxt-project |
| weight | 10000 (100.00%) |
| Transaction Info | Block #34481735/Trx 02ddb2a62c476ce51c303994e3589d3dd6e9b56d |
View Raw JSON Data
{
"trx_id": "02ddb2a62c476ce51c303994e3589d3dd6e9b56d",
"block": 34481735,
"trx_in_block": 30,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-07-08T12:06:15",
"op": [
"vote",
{
"voter": "carthago",
"author": "sigmoid",
"permlink": "my-next-topic-nxt-project",
"weight": 10000
}
]
}serginoupvoted (4.00%) @sigmoid / my-next-topic-nxt-project2019/06/25 14:24:45
serginoupvoted (4.00%) @sigmoid / my-next-topic-nxt-project
2019/06/25 14:24:45
| voter | sergino |
| author | sigmoid |
| permlink | my-next-topic-nxt-project |
| weight | 400 (4.00%) |
| Transaction Info | Block #34110627/Trx c5c02aad2754c84752559438d9791b2bd00d9d22 |
View Raw JSON Data
{
"trx_id": "c5c02aad2754c84752559438d9791b2bd00d9d22",
"block": 34110627,
"trx_in_block": 24,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-06-25T14:24:45",
"op": [
"vote",
{
"voter": "sergino",
"author": "sigmoid",
"permlink": "my-next-topic-nxt-project",
"weight": 400
}
]
}sigmoidpublished a new post: my-next-topic-nxt-project2019/06/25 14:15:21
sigmoidpublished a new post: my-next-topic-nxt-project
2019/06/25 14:15:21
| parent author | |
| parent permlink | nxt |
| author | sigmoid |
| permlink | my-next-topic-nxt-project |
| title | My nextย topic - Nxt project |
| body | Hi everyone. It's been a long time. A years ago, I decided that write code analysis blog about Ethereum. Because, unlike most block chain projects, this project has good leader, many nice contributors, quality documentations Through managing this blog, I archived many thing. Little fame in korea blockchain industry, and various pitching opportunities in big conferences (devstamp 2018, ethcon.kr 2019, devground 2019 and so on) Most of all, what I got, I founded my own blockchain lab in seoul, korea. Our website is here: www.dsrvlabs.com (Visit anytime, when you want!) (Non-profit, So poor, Help us) Some days ago, I met one friend who work in Jelurida foundation. He introduce their project to me, and that was very impressive. So I scanning jelurida's white papers and FIND this amazing picture.  (from: https://www.jelurida.com/sites/default/files/JeluridaWhitepaper.pdf) Can you find why I decided nxt as a my next topic? See their research timeline 2013-2015 - naming service - messaging - voting - pruning - shuffling They have been doing research about these topics what still difficult to solve, very early-stage of blockchain. (At that time I did not know what blockchain is) So, with my respect for old gurus, I will start nxt code analysis in my blog from today. Please look forward to my next article!! > Sorry for lack of my english writing skill :) |
| json metadata | {"tags":["nxt","ardor","jelurida"],"image":["https://cdn.steemitimages.com/DQmRkcr7VHWVP6bR9uPVPPLNm7fxz4FKsJE9eUnHRedVfgg/image.png"],"links":["https://www.jelurida.com/sites/default/files/JeluridaWhitepaper.pdf"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #34110439/Trx 18200712e9a350abd0d7d278a952bcae615f5eb6 |
View Raw JSON Data
{
"trx_id": "18200712e9a350abd0d7d278a952bcae615f5eb6",
"block": 34110439,
"trx_in_block": 18,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-06-25T14:15:21",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "nxt",
"author": "sigmoid",
"permlink": "my-next-topic-nxt-project",
"title": "My nextย topic - Nxt project",
"body": "Hi everyone.\nIt's been a long time.\n\nA years ago, I decided that write code analysis blog about Ethereum.\nBecause, unlike most block chain projects, this project has good leader, many nice contributors, quality documentations \n\nThrough managing this blog, I archived many thing.\nLittle fame in korea blockchain industry, and various pitching opportunities in big conferences\n(devstamp 2018, ethcon.kr 2019, devground 2019 and so on)\n\nMost of all, what I got, I founded my own blockchain lab in seoul, korea. \nOur website is here: www.dsrvlabs.com (Visit anytime, when you want!)\n(Non-profit, So poor, Help us) \n\nSome days ago, I met one friend who work in Jelurida foundation.\nHe introduce their project to me, and that was very impressive. \nSo I scanning jelurida's white papers and FIND this amazing picture.\n\n\n (from: https://www.jelurida.com/sites/default/files/JeluridaWhitepaper.pdf)\n\nCan you find why I decided nxt as a my next topic?\nSee their research timeline 2013-2015\n\n- naming service\n- messaging\n- voting\n- pruning\n- shuffling\n\nThey have been doing research about these topics what still difficult to solve, very early-stage of blockchain. \n(At that time I did not know what blockchain is)\n\nSo, with my respect for old gurus, I will start nxt code analysis in my blog from today.\nPlease look forward to my next article!!\n\n> Sorry for lack of my english writing skill :)",
"json_metadata": "{\"tags\":[\"nxt\",\"ardor\",\"jelurida\"],\"image\":[\"https://cdn.steemitimages.com/DQmRkcr7VHWVP6bR9uPVPPLNm7fxz4FKsJE9eUnHRedVfgg/image.png\"],\"links\":[\"https://www.jelurida.com/sites/default/files/JeluridaWhitepaper.pdf\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}sigmoidreceived 0.015 SBD, 0.049 SP author reward for @sigmoid / event-for-outside-watchers2019/06/05 08:36:12
sigmoidreceived 0.015 SBD, 0.049 SP author reward for @sigmoid / event-for-outside-watchers
2019/06/05 08:36:12
| author | sigmoid |
| permlink | event-for-outside-watchers |
| sbd payout | 0.015 SBD |
| steem payout | 0.000 STEEM |
| vesting payout | 79.688215 VESTS |
| Transaction Info | Block #33528568/Virtual Operation #62 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 33528568,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 62,
"timestamp": "2019-06-05T08:36:12",
"op": [
"author_reward",
{
"author": "sigmoid",
"permlink": "event-for-outside-watchers",
"sbd_payout": "0.015 SBD",
"steem_payout": "0.000 STEEM",
"vesting_payout": "79.688215 VESTS"
}
]
}sct.cu12upvoted (50.00%) @sigmoid / event-for-outside-watchers2019/05/30 03:57:15
sct.cu12upvoted (50.00%) @sigmoid / event-for-outside-watchers
2019/05/30 03:57:15
| voter | sct.cu12 |
| author | sigmoid |
| permlink | event-for-outside-watchers |
| weight | 5000 (50.00%) |
| Transaction Info | Block #33350380/Trx bfb302dfbc205f2939f5dfa8c95be00592471d02 |
View Raw JSON Data
{
"trx_id": "bfb302dfbc205f2939f5dfa8c95be00592471d02",
"block": 33350380,
"trx_in_block": 40,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-30T03:57:15",
"op": [
"vote",
{
"voter": "sct.cu12",
"author": "sigmoid",
"permlink": "event-for-outside-watchers",
"weight": 5000
}
]
}2019/05/29 14:13:57
2019/05/29 14:13:57
| parent author | sigmoid |
| parent permlink | event-for-outside-watchers |
| author | steemitboard |
| permlink | steemitboard-notify-sigmoid-20190529t141359000z |
| title | |
| body | Congratulations @sigmoid! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) : <table><tr><td><img src="https://steemitimages.com/60x70/http://steemitboard.com/@sigmoid/voted.png?201905291226"></td><td>You received more than 250 upvotes. Your next target is to reach 500 upvotes.</td></tr> </table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@sigmoid) and compare to others on the [Steem Ranking](http://steemitboard.com/ranking/index.php?name=sigmoid)_</sub> <sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub> ###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes! |
| json metadata | {"image":["https://steemitboard.com/img/notify.png"]} |
| Transaction Info | Block #33333931/Trx d532bfe50c002eae5fb7a930b0bdca72f31d3c38 |
View Raw JSON Data
{
"trx_id": "d532bfe50c002eae5fb7a930b0bdca72f31d3c38",
"block": 33333931,
"trx_in_block": 67,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-29T14:13:57",
"op": [
"comment",
{
"parent_author": "sigmoid",
"parent_permlink": "event-for-outside-watchers",
"author": "steemitboard",
"permlink": "steemitboard-notify-sigmoid-20190529t141359000z",
"title": "",
"body": "Congratulations @sigmoid! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :\n\n<table><tr><td><img src=\"https://steemitimages.com/60x70/http://steemitboard.com/@sigmoid/voted.png?201905291226\"></td><td>You received more than 250 upvotes. Your next target is to reach 500 upvotes.</td></tr>\n</table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@sigmoid) and compare to others on the [Steem Ranking](http://steemitboard.com/ranking/index.php?name=sigmoid)_</sub>\n<sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub>\n\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\"]}"
}
]
}sct.cu14upvoted (100.00%) @sigmoid / event-for-outside-watchers2019/05/29 11:40:54
sct.cu14upvoted (100.00%) @sigmoid / event-for-outside-watchers
2019/05/29 11:40:54
| voter | sct.cu14 |
| author | sigmoid |
| permlink | event-for-outside-watchers |
| weight | 10000 (100.00%) |
| Transaction Info | Block #33330872/Trx c49ad29bae219765a57442d53d7cdcefdfe82512 |
View Raw JSON Data
{
"trx_id": "c49ad29bae219765a57442d53d7cdcefdfe82512",
"block": 33330872,
"trx_in_block": 11,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-29T11:40:54",
"op": [
"vote",
{
"voter": "sct.cu14",
"author": "sigmoid",
"permlink": "event-for-outside-watchers",
"weight": 10000
}
]
}2019/05/29 10:13:42
2019/05/29 10:13:42
| parent author | sigmoid |
| parent permlink | event-for-outside-watchers |
| author | lindaflyhigh |
| permlink | re-event-for-outside-watchers-20190529t101341 |
| title | |
| body | ์๋ ํ์ธ์ sigmoid๋ ์ข์ ํ๋ฃจ ๋ณด๋ด์ธ์!!  |
| json metadata | |
| Transaction Info | Block #33329128/Trx 384c8036a3596be8e26852d34aa20572765dff8a |
View Raw JSON Data
{
"trx_id": "384c8036a3596be8e26852d34aa20572765dff8a",
"block": 33329128,
"trx_in_block": 12,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-29T10:13:42",
"op": [
"comment",
{
"parent_author": "sigmoid",
"parent_permlink": "event-for-outside-watchers",
"author": "lindaflyhigh",
"permlink": "re-event-for-outside-watchers-20190529t101341",
"title": "",
"body": "์๋
ํ์ธ์ sigmoid๋\n\n์ข์ ํ๋ฃจ ๋ณด๋ด์ธ์!!\n\n",
"json_metadata": ""
}
]
}lindaflyhighupvoted (1.00%) @sigmoid / event-for-outside-watchers2019/05/29 10:13:36
lindaflyhighupvoted (1.00%) @sigmoid / event-for-outside-watchers
2019/05/29 10:13:36
| voter | lindaflyhigh |
| author | sigmoid |
| permlink | event-for-outside-watchers |
| weight | 100 (1.00%) |
| Transaction Info | Block #33329126/Trx ff352279903ebb573e23028a0a0387ff216f9d12 |
View Raw JSON Data
{
"trx_id": "ff352279903ebb573e23028a0a0387ff216f9d12",
"block": 33329126,
"trx_in_block": 5,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-29T10:13:36",
"op": [
"vote",
{
"voter": "lindaflyhigh",
"author": "sigmoid",
"permlink": "event-for-outside-watchers",
"weight": 100
}
]
}2019/05/29 10:00:45
2019/05/29 10:00:45
| parent author | sigmoid |
| parent permlink | event-for-outside-watchers |
| author | eunsik |
| permlink | re-sigmoid-event-for-outside-watchers-20190529t100038551z |
| title | |
| body | ์ ๊ฐ ์ ์ ์๋ ์ด๋๋ฆฌ์ ์ค๊ณ ์ฒ ํ๊ณผ ์๋ฆฌ๋ํฐ๋ผ๋ ๋ํดํ ํ๋ก๊ทธ๋จ ์ธ์ด์ ๊ดํ ๊ธ์ด๊ตฐ์. ์ ๊ฐ ์ดํดํ์ง ๋ชปํ๋๋ผ๋ ์ด๋ฐ ๊ธ์ ์ฝ๊ณ ์ดํดํ ์ฌ๋์ ๋ง์ ๊ฒ ๊ฐ์์. ์คํ์ ํ์๋ ์๋ ๋ ๊ณ ๊ธฐ๋ ์ฌ๋์ด ๋ง์ผ๋๊น์. ์ฉ๊ธฐ๋ฅผ ๋ด์ ๋ง์ด ์จ์ฃผ์ธ์. |
| json metadata | {"tags":["ethereum","sct"],"app":"steemcoinpan/0.1"} |
| Transaction Info | Block #33328869/Trx 49d22903fc0cc54fa3c7aa579349f830def69a1c |
View Raw JSON Data
{
"trx_id": "49d22903fc0cc54fa3c7aa579349f830def69a1c",
"block": 33328869,
"trx_in_block": 3,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-29T10:00:45",
"op": [
"comment",
{
"parent_author": "sigmoid",
"parent_permlink": "event-for-outside-watchers",
"author": "eunsik",
"permlink": "re-sigmoid-event-for-outside-watchers-20190529t100038551z",
"title": "",
"body": "์ ๊ฐ ์ ์ ์๋ ์ด๋๋ฆฌ์ ์ค๊ณ ์ฒ ํ๊ณผ ์๋ฆฌ๋ํฐ๋ผ๋ ๋ํดํ ํ๋ก๊ทธ๋จ ์ธ์ด์ ๊ดํ ๊ธ์ด๊ตฐ์. ์ ๊ฐ ์ดํดํ์ง ๋ชปํ๋๋ผ๋ ์ด๋ฐ ๊ธ์ ์ฝ๊ณ ์ดํดํ ์ฌ๋์ ๋ง์ ๊ฒ ๊ฐ์์. ์คํ์ ํ์๋ ์๋ ๋ ๊ณ ๊ธฐ๋ ์ฌ๋์ด ๋ง์ผ๋๊น์. ์ฉ๊ธฐ๋ฅผ ๋ด์ ๋ง์ด ์จ์ฃผ์ธ์.",
"json_metadata": "{\"tags\":[\"ethereum\",\"sct\"],\"app\":\"steemcoinpan/0.1\"}"
}
]
}sct.cu16upvoted (30.00%) @sigmoid / event-for-outside-watchers2019/05/29 09:25:54
sct.cu16upvoted (30.00%) @sigmoid / event-for-outside-watchers
2019/05/29 09:25:54
| voter | sct.cu16 |
| author | sigmoid |
| permlink | event-for-outside-watchers |
| weight | 3000 (30.00%) |
| Transaction Info | Block #33328172/Trx f37a96bb43c09c507d105051d0d3c3b25bf8755b |
View Raw JSON Data
{
"trx_id": "f37a96bb43c09c507d105051d0d3c3b25bf8755b",
"block": 33328172,
"trx_in_block": 17,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-29T09:25:54",
"op": [
"vote",
{
"voter": "sct.cu16",
"author": "sigmoid",
"permlink": "event-for-outside-watchers",
"weight": 3000
}
]
}2019/05/29 09:25:48
2019/05/29 09:25:48
| parent author | sigmoid |
| parent permlink | event-for-outside-watchers |
| author | sct.cu16 |
| permlink | re-sigmoid-event-for-outside-watchers-20190529t092415710z |
| title | |
| body | ์ด๋๋ฆฌ์ ๊ฐ๋ฐ ๊ด๋ จ ๊ธ์ด๋ค์. ๋ด์ฉ์ ํ์ ํ๊ธด ํ๋ค์ง๋ง ๋ณดํ ํ๊ณ ๊ฐ๋๋ค. (ํ๋ ์ดํฐ ์ค ๊ฐ๋ฐ ์ ๋ฌธ๊ฐ๊ฐ ์์์ผ๋ฉด ํ๋ ์๊ฐ์ด ๋ฌธ๋ ๋ญ๋๋ค.) |
| json metadata | {"tags":["ethereum","sct"],"app":"steemcoinpan/0.1"} |
| Transaction Info | Block #33328170/Trx f5439a8c6dcb9ab3cdddefcf4ab3089d9ab287df |
View Raw JSON Data
{
"trx_id": "f5439a8c6dcb9ab3cdddefcf4ab3089d9ab287df",
"block": 33328170,
"trx_in_block": 39,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-29T09:25:48",
"op": [
"comment",
{
"parent_author": "sigmoid",
"parent_permlink": "event-for-outside-watchers",
"author": "sct.cu16",
"permlink": "re-sigmoid-event-for-outside-watchers-20190529t092415710z",
"title": "",
"body": "์ด๋๋ฆฌ์ ๊ฐ๋ฐ ๊ด๋ จ ๊ธ์ด๋ค์. \n๋ด์ฉ์ ํ์
ํ๊ธด ํ๋ค์ง๋ง ๋ณดํ
ํ๊ณ ๊ฐ๋๋ค. (ํ๋ ์ดํฐ ์ค ๊ฐ๋ฐ ์ ๋ฌธ๊ฐ๊ฐ ์์์ผ๋ฉด ํ๋ ์๊ฐ์ด ๋ฌธ๋ ๋ญ๋๋ค.)",
"json_metadata": "{\"tags\":[\"ethereum\",\"sct\"],\"app\":\"steemcoinpan/0.1\"}"
}
]
}2019/05/29 08:55:27
2019/05/29 08:55:27
| parent author | sigmoid |
| parent permlink | event-for-outside-watchers |
| author | sct.cu10 |
| permlink | re-sigmoid-event-for-outside-watchers-20190529t085527814z |
| title | |
| body | ๊พธ์คํ ๊ธ์ ์จ์ฃผ์ธ์. ์์ํฉ๋๋ค. |
| json metadata | {"tags":["ethereum","sct"],"app":"steemcoinpan/0.1"} |
| Transaction Info | Block #33327563/Trx 7d8cc53138f00b2241aa6ee88311165097558561 |
View Raw JSON Data
{
"trx_id": "7d8cc53138f00b2241aa6ee88311165097558561",
"block": 33327563,
"trx_in_block": 36,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-29T08:55:27",
"op": [
"comment",
{
"parent_author": "sigmoid",
"parent_permlink": "event-for-outside-watchers",
"author": "sct.cu10",
"permlink": "re-sigmoid-event-for-outside-watchers-20190529t085527814z",
"title": "",
"body": "๊พธ์คํ ๊ธ์ ์จ์ฃผ์ธ์. ์์ํฉ๋๋ค.",
"json_metadata": "{\"tags\":[\"ethereum\",\"sct\"],\"app\":\"steemcoinpan/0.1\"}"
}
]
}sct.cu10upvoted (100.00%) @sigmoid / event-for-outside-watchers2019/05/29 08:55:12
sct.cu10upvoted (100.00%) @sigmoid / event-for-outside-watchers
2019/05/29 08:55:12
| voter | sct.cu10 |
| author | sigmoid |
| permlink | event-for-outside-watchers |
| weight | 10000 (100.00%) |
| Transaction Info | Block #33327558/Trx 142e424f5c387afa62fc7180aeb34600ba00f9f9 |
View Raw JSON Data
{
"trx_id": "142e424f5c387afa62fc7180aeb34600ba00f9f9",
"block": 33327558,
"trx_in_block": 8,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-29T08:55:12",
"op": [
"vote",
{
"voter": "sct.cu10",
"author": "sigmoid",
"permlink": "event-for-outside-watchers",
"weight": 10000
}
]
}sct.cu18upvoted (48.00%) @sigmoid / event-for-outside-watchers2019/05/29 08:52:42
sct.cu18upvoted (48.00%) @sigmoid / event-for-outside-watchers
2019/05/29 08:52:42
| voter | sct.cu18 |
| author | sigmoid |
| permlink | event-for-outside-watchers |
| weight | 4800 (48.00%) |
| Transaction Info | Block #33327508/Trx 382cdcf1a2ff24df0783466d10c91a54cd1e6f57 |
View Raw JSON Data
{
"trx_id": "382cdcf1a2ff24df0783466d10c91a54cd1e6f57",
"block": 33327508,
"trx_in_block": 35,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-29T08:52:42",
"op": [
"vote",
{
"voter": "sct.cu18",
"author": "sigmoid",
"permlink": "event-for-outside-watchers",
"weight": 4800
}
]
}seapyupvoted (60.00%) @sigmoid / event-for-outside-watchers2019/05/29 08:48:12
seapyupvoted (60.00%) @sigmoid / event-for-outside-watchers
2019/05/29 08:48:12
| voter | seapy |
| author | sigmoid |
| permlink | event-for-outside-watchers |
| weight | 6000 (60.00%) |
| Transaction Info | Block #33327418/Trx 58e8da6936d8c285027246506bb65aefa28b87ab |
View Raw JSON Data
{
"trx_id": "58e8da6936d8c285027246506bb65aefa28b87ab",
"block": 33327418,
"trx_in_block": 25,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-29T08:48:12",
"op": [
"vote",
{
"voter": "seapy",
"author": "sigmoid",
"permlink": "event-for-outside-watchers",
"weight": 6000
}
]
}igbotierupvoted (60.00%) @sigmoid / event-for-outside-watchers2019/05/29 08:43:06
igbotierupvoted (60.00%) @sigmoid / event-for-outside-watchers
2019/05/29 08:43:06
| voter | igbotier |
| author | sigmoid |
| permlink | event-for-outside-watchers |
| weight | 6000 (60.00%) |
| Transaction Info | Block #33327317/Trx 24936ebefe5eab4cb918c69789085c290197587f |
View Raw JSON Data
{
"trx_id": "24936ebefe5eab4cb918c69789085c290197587f",
"block": 33327317,
"trx_in_block": 23,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-29T08:43:06",
"op": [
"vote",
{
"voter": "igbotier",
"author": "sigmoid",
"permlink": "event-for-outside-watchers",
"weight": 6000
}
]
}laissez-faireupvoted (100.00%) @sigmoid / event-for-outside-watchers2019/05/29 08:43:06
laissez-faireupvoted (100.00%) @sigmoid / event-for-outside-watchers
2019/05/29 08:43:06
| voter | laissez-faire |
| author | sigmoid |
| permlink | event-for-outside-watchers |
| weight | 10000 (100.00%) |
| Transaction Info | Block #33327317/Trx f1d099b0a54d512100c115326e6fd1632ebcaf83 |
View Raw JSON Data
{
"trx_id": "f1d099b0a54d512100c115326e6fd1632ebcaf83",
"block": 33327317,
"trx_in_block": 21,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-29T08:43:06",
"op": [
"vote",
{
"voter": "laissez-faire",
"author": "sigmoid",
"permlink": "event-for-outside-watchers",
"weight": 10000
}
]
}yougotresteemedupvoted (25.00%) @sigmoid / event-for-outside-watchers2019/05/29 08:43:06
yougotresteemedupvoted (25.00%) @sigmoid / event-for-outside-watchers
2019/05/29 08:43:06
| voter | yougotresteemed |
| author | sigmoid |
| permlink | event-for-outside-watchers |
| weight | 2500 (25.00%) |
| Transaction Info | Block #33327317/Trx 165a40c4f4d0a32bc89ceba0f4fe3529cafe74d6 |
View Raw JSON Data
{
"trx_id": "165a40c4f4d0a32bc89ceba0f4fe3529cafe74d6",
"block": 33327317,
"trx_in_block": 19,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-29T08:43:06",
"op": [
"vote",
{
"voter": "yougotresteemed",
"author": "sigmoid",
"permlink": "event-for-outside-watchers",
"weight": 2500
}
]
}imisstheoldkanyeupvoted (1.00%) @sigmoid / event-for-outside-watchers2019/05/29 08:43:00
imisstheoldkanyeupvoted (1.00%) @sigmoid / event-for-outside-watchers
2019/05/29 08:43:00
| voter | imisstheoldkanye |
| author | sigmoid |
| permlink | event-for-outside-watchers |
| weight | 100 (1.00%) |
| Transaction Info | Block #33327315/Trx 04c07d6416af8558c2bac55cf0974481108028ed |
View Raw JSON Data
{
"trx_id": "04c07d6416af8558c2bac55cf0974481108028ed",
"block": 33327315,
"trx_in_block": 23,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-29T08:43:00",
"op": [
"vote",
{
"voter": "imisstheoldkanye",
"author": "sigmoid",
"permlink": "event-for-outside-watchers",
"weight": 100
}
]
}cheneatsupvoted (25.00%) @sigmoid / event-for-outside-watchers2019/05/29 08:42:57
cheneatsupvoted (25.00%) @sigmoid / event-for-outside-watchers
2019/05/29 08:42:57
| voter | cheneats |
| author | sigmoid |
| permlink | event-for-outside-watchers |
| weight | 2500 (25.00%) |
| Transaction Info | Block #33327314/Trx 7bc1c12876e98a9dff74ba4b645e05e6162a6338 |
View Raw JSON Data
{
"trx_id": "7bc1c12876e98a9dff74ba4b645e05e6162a6338",
"block": 33327314,
"trx_in_block": 9,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-29T08:42:57",
"op": [
"vote",
{
"voter": "cheneats",
"author": "sigmoid",
"permlink": "event-for-outside-watchers",
"weight": 2500
}
]
}sigmoidpublished a new post: event-for-outside-watchers2019/05/29 08:36:12
sigmoidpublished a new post: event-for-outside-watchers
2019/05/29 08:36:12
| parent author | |
| parent permlink | ethereum |
| author | sigmoid |
| permlink | event-for-outside-watchers |
| title | Event: for outside watchers |
| body | Event: for outside watchers === ์ด๋๋ฆฌ์์ ๋น๋๊ธฐ์ ์๋ ์ปดํจํฐ๋ค. ์ฆ, ๋ด๊ฐ ์์ฒญํ ์์ ์ด ์ธ์ ์คํ๋ ์ง ํ์ ํ๊ธฐ๊ฐ ํ๋ค๋ค. ์ด๋ฌํ ํ๊ฒฝ์์ Dapp์ ๋ง๋ค ๋ ๊ฐ์ฅ ํฐ ํจ๋ํฐ๋ ์์ฒญ์ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ๋ค๋ฅธ ๋ก์ง์ ์คํํด์ผ ํ ๋์ผ ๊ฒ์ด๋ค.์ด๋ฐ ๊ฒฝ์ฐ ์ฐ๋ฆฌ๊ฐ ์ทจํ ์ ์๋ ๋จ์ํ ๋ฐฉ๋ฒ์ ๋ด์์ ์ด ์คํ๋ ๋๊น์ง, ๋ฐ๋ณต์ ์ผ๋ก ์ฒด์ธ์ ์ฝ์ด ํ์ธํด ๋ณด๋ ๊ฒ์ผ ๊ฒ์ด๋ค. ๋น์ฐํ ์ด ๋ฐฉ์์ ๋ฉ๋ํ๊ธฐ ์ด๋ ต๋ค. ๊ทธ๋์ ์ค๋์ ์ด๋๋ฆฌ์์ด ์ด ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ๊ทน๋ณตํด ๋๊ฐ๊ณ ์๋์ง, "Design-Rationale"(https://github.com/ethereum/wiki/wiki/Design-Rationale)๋ฌธ์๋ฅผ ์์์ผ๋ก ์ ๋ฆฌํด ๋ณด๋ ์๊ฐ์ ๊ฐ์ง๊ธฐ๋ก ํ๋ค. ### ์ธ๋ถ ๊ด์ฐฐ์์๊ฒ ํฅ๋ฏธ์๋ ์ด๋ฒคํธ ์ด๋๋ฆฌ์ ์ค๊ณ ๊ทผ๊ฑฐ์๋ ๋ค์๊ณผ ๊ฐ์ ๋ด์ฉ์ด ๋์จ๋ค >Ethereum ์ค๊ณ์ ํ๋กํ ์ฝ์ ๊ธฐ๋ฅ๊ณผ opcode๋ค์ ์ต๋ํ ์ ์์ค์ผ๋ก ๊ตฌํํจ์ผ๋ก์จ, ๋์ค์ ๋์ฌ์ ์๋ ๋ ์ข์ ์์ฉ ๋ฐฉ์์ ์ ๋์ ํ ์ ์๋๋ก ํ๊ณ , (ํด๋น ๋ฐฉ์์์)ํ์์๋ ๋ถ๋ถ์ ์ฝ๊ฒ ์ ๊ฑฐ ํ ์ ์๋๋ก ํ์ฌ ์ข๋ ํจ์จ์ ์ธ ๋์์ ์ง์ํ๋๋ก ํ๋ค. > ๊ทธ ์๋ก LOG opcode๊ฐ ์๋ค. "๋ฉ์์ง"๋ ์ค์ ๋ก "ํจ์ ํธ์ถ"๊ณผ "์ธ๋ถ ๊ด์ฐฐ์์๊ฒ ํฅ๋ฏธ์๋ ์ด๋ฒคํธ"๋ฅผ ๋น๋กฏํ ์ฌ๋ฌ ๊ฐ๋ ์ด ํตํฉ๋์ด ์์ผ๋ฉฐ, ์ด ๋ ๊ฐ์ง๋ ๋ถ๋ฆฌํ ๋งํ ๊ฐ์น๊ฐ ์๋ค.(์์ญ) ์ด๋๋ฆฌ์์ ์ธ๋ถ ๊ด์ฐฐ์๊ฐ ๊ด์ฌ์์ดํ๋ ์ ๋ณด๋ฅผ ์ป๋ ๊ณผ์ ์์ ๊ฒช์ ์ด๋ ค์์ ์ค์ฌ์ฃผ๊ธฐ ์ํด Log Opcode๋ฅผ ์ ๊ณตํ๋ค. ### ์๋ฆฌ๋ํฐ์ ์ด๋ฒคํธ ์ ์ ์๋ฆฌ๋ํฐ ๋ฌธ์์์๋ ์๋์ ๊ฐ์ด ์ด๋ฒคํธ๋ฅผ ์ ์ํ๋ค. > 1. Solidity ์ด๋ฒคํธ๋ EVM์ ๋ก๊น ๊ธฐ๋ฅ ์์ ์ถ์ํ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ Ethereum ํด๋ผ์ด์ธํธ์ RPC ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ด๋ฌํ ์ด๋ฒคํธ๋ฅผ ๊ตฌ๋ ํ๊ณ ์ฒญ์ทจ ํ ์ ์์ต๋๋ค. > 2. ์ด๋ฒคํธ๊ฐ ํธ์ถ๋๋ฉด ์ธ์(๋ณ์)๊ฐ ํธ๋์ญ์ ๋ก๊ทธ์ ์ ์ฅ๋ฉ๋๋ค. ์ด ๋ก๊ทธ๋ ๊ณ์ฝ์ ์ฃผ์์ ์ฐ๊ฒฐ๋์ด ๋ธ๋ก ์ฒด์ธ์ ํตํฉ๋๋ฉฐ ๋ธ๋ก์ด ์ก์ธ์ค ๊ฐ๋ฅํ ํ ๊ณ์ ์ ์ง๋ฉ๋๋ค > 3. ๋ก๊ทธ ๋ฐ์ดํฐ์ ์ผ๋ถ๋ ๋ธ๋ฃธ ํํฐ์ ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ ํจ์จ์ ์ด๊ณ ์ํธํ์ ์ผ๋ก ์์ ํ ๋ฐฉ๋ฒ์ผ๋ก ์ด ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ ํ ์ ์์ต๋๋ค. > 4. ์ต๋ ์ธ ๊ฐ์ ๋งค๊ฐ ๋ณ์์ ์์ธ ๋ ์์ฑ์ ์ถ๊ฐํ์ฌ ๋ก๊ทธ์ ๋ฐ์ดํฐ ๋ถ๋ถ ๋์ "Topic"์ด๋ผ๋ ํน์ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์ถ๊ฐ ํ ์ ์์ต๋๋ค. ์๋ฆฌ๋ํฐ ๊ฐ๋ฐ์๋ ํจ์์ ์คํ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๊ธฐ ์ํด, ์ด๋ฒคํธ๋ฅผ ์ฌ์ฉํ๊ณ , ๊ตฌ๋ ํจ์ผ๋ก์ ์์ฒญํ ์ฐ์ฐ์ ์๋ฃ์ฌ๋ถ๋, ๊ฒฐ๊ณผ๋ฑ์ ํธํ๋ฐฉ์์ผ๋ก ํ์ธ ํ ์ ์๊ฒ ๋๋ค. ## Log op code์ ์๋ฆฌ๋ํฐ์ Event์ ๊ด๊ณ ์ง๊ธ๋ถํฐ๋ log opcode์ ์๋ฆฌ๋ํฐ์ Event์ ๋ํด ์กฐ๊ธ ๋ ์์ธํ ๋ถ์ํ๊ณ ๋์ ์๊ด ๊ด๊ณ๋ฅผ ์ดํดํด ๋ณด๋๋ก ํ๊ฒ ๋ค. ### LOG op์ฝ๋๋ ์ธ์ ์์ฑ๋๋๊ฐ? ``` contract A { event E(...); function foo() public { emit E(...); } } ``` ์ ์ฝ๋๋ ์๋ฆฌ๋ํฐ์์ ์ด๋ฒคํธ๋ฅผ ์ฌ์ฉํ๋ ํจํด์ด๋ค. ์ด๋ฌํ ํจํด์ ์ฝ๋๋ ์๋ฆฌ๋ํฐ ์ปดํ์ผ๋ฌ์์ ๋ค์๊ณผ ๊ฐ์ด ํด์๋๋ค.  ํจ์ ํธ์ถ ๊ณผ์ ์์ ์๋ฆฌ๋ํฐ ์ปดํ์ผ๋ฌ๊ฐ Contract ํค์๋๋ฅผ ์ธ์ํ์ฌ ๋ด์ฉ์ ํ์ฑํ๊ณ , Event token๊ณผ block๋ด์ Emit token์ ์ธ์ํ ํ, ํด๋น ๋ธ๋ก์์ emit์ด ๋ฐ์ํ ๊ฒฝ์ฐ LOG opcode๋ฅผ ์ฝ์ ํ๋ ๊ณผ์ ์ ํ์ธํ ์ ์๋ค. > ๋๋ถ๋ถ์ ์ปดํ์ผ๋ฌ์ ๊ฐ์ด ์๋ฆฌ๋ํฐ ์ปดํ์ผ๋ฌ๋ parsing -> ast -> code generation์์์ด๋ฏ๋ก, ์๊ฐ์ด ๋ ๋ ํ๋ฒ์ฏค ๋ด๋๋๊ฒ๋ ์ข์๊ฒ ๊ฐ๋ค. ### EVM์์์์ LOG op์ฝ๋์ ์คํ ์ปดํ์ผ๋ฌ์์ ์ฝ์ ํ LOG op์ฝ๋๋ evm์์ ๋ค์๊ณผ ๊ฐ์ด ์ฒ๋ฆฌ๋๋ค.  Contract์ foo ํจ์๋ฅผ ํธ์ถํ๋ ํธ๋ ์ ์ ์ด ๋ธ๋ก์ ํฌํจ๋๋ฉด, ๋ ธ๋๋ค์ ํด๋น ํธ๋ ์ ์ ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด EVM์ ์์ฑํ๋ค. EVM์์์๋ ๊ณ์ฝ์ ์ฝ๋๋ฅผ ์ค๋นํ ํ, ์ธํฐํ๋ฆฌํฐ๋ฅผ ํตํด ์คํ์ํจ๋ค. ์ด๋ Program Counter๊ฐ ์ฆ๊ฐํ๋ฉด์ ํด์๋ opcode๋ฅผ jump table์์ ํธ์ถํ๊ฒ ๋๋ฉฐ, Log op์ฝ๋์ ๊ฒฝ์ฐ jump table์ ๋ฑ๋ก๋ makeLogํจ์๊ฐ ํธ์ถ๋๋ค. makeLogํจ์ ๋ด๋ถ๋ฅผ ์ดํด๋ณด๋ฉด(๋ณด๋ผ์) **์คํ์์ ๋ฐ์ดํฐ๋ก ํ ํฝํ๋๋ฅผ ์ฑ์ฐ๊ณ , ๋ฐ์ดํฐํ๋๋ ๋ฉ๋ชจ๋ฆฌ ์์์ง์ ๋ถํฐ ํฌ๊ธฐ๋งํผ ์ฝ๋๋ค.** ์ด ๊ฒฐ๊ณผ๋ค์ ํฌํจํ๋ LOG๋ฐ์ดํฐ๊ฐ stateDB์ ์ ์ฅ๋๋ค. ### ํ ํฝ๊ณผ ๋ฐ์ดํฐ ์คํ์์ ์ฝ์ ํ ํฝ๊ณผ, ๋ฉ๋ชจ๋ฆฌ์์ ์ฝ์ ๋ฐ์ดํฐ์ ๋ด์ฉ์ ์ด๋ค๊ฒ์ผ๊น? ์์ฑํ ์ปจํธ๋ ํธ๋ฅผ ์ปดํ์ผ ํด๋ณด์๋ค.  ``` solc --opcodes event.sol > opcodes.txt ======= event.sol:B ======= Opcodes: ... PUSH32 0x2D4DD5FE18ADA5A020A9F5591539A8DC3010A5C074BA6A70E1C956659F02786A PUSH1 0x1 PUSH1 0x40 MLOAD ... LOG1 ... ``` LOG1 op์ฝ๋์ ๋์ ์์ ์ ๊ธฐ์ ์ผ๋ก ์คํ์๋ ์ด๋ฒคํธ์ ์ํ์ ๋ํ ํด์๊ฐ์ด ๋ค์ด์๊ณ , ๋ค์ ์๋ 2๊ฐ์ ์คํ op์ mload๋ก ์ธํด evm๋ฉ๋ชจ๋ฆฌ์ 0x40๋ฒ์ง์ 1์ด๋ผ๋ ๊ฐ์ด ๋ค์ด์๊ฒ ๋๋ค. **๊ฒฐ๋ก ์ ์ผ๋ก topic ํ๋์๋ ์ด๋ฒคํธ์ ์ํ์ด ๋ค์ด๊ฐ ๊ฒ์ด๊ณ , data ํ๋์๋ ๋ฉ๋ชจ๋ฆฌ์์ 1๊ฐ์ ์ฑ์ฐ๊ฒ ๋๋ค.** ์ค์ ์ ์ฅ์ด ์ ๋๋์ง ๋ฆฌ๋ฏน์ค๋ฅผ ํตํด ํ์ธํด๋ณด์๋ค.  <input 0xc2985578 (ํจ์๋ช ์ ๋ํ ํด์๊ฐ์ ์์4๋ฐ์ดํธ)>  <topic: 0x2d4dd5fe18ada5a020a9f5591539a8dc3010a5c074ba6a70e1c956659f02786a ์ด๋ฒคํธ์ ์ํ์ ๋ํ ํด์๊ฐ>  [{"address":"0x8c1ed7e19abaa9f23c476da86dc1577f1ef401f5",**"data":"0x0000000000000000000000000000000000000000000000000000000000000001","topics":["0x2d4dd5fe18ada5a020a9f5591539a8dc3010a5c074ba6a70e1c956659f02786a"]**,"rawVMResponse":[{"type":"Buffer","data":[140,30,215,225,154,186,169,242,60,71,109,168,109,193,87,127,30,244,1,245]},[{"type":"Buffer","data":[45,77,213,254,24,173,165,160,32,169,245,89,21,57,168,220,48,16,165,192,116,186,106,112,225,201,86,101,159,2,120,106]}],{"type":"Buffer","data":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]}]}] >Yay! ์ด์ ์ฐ๋ฆฌ๋ opcode๊ฐ ์คํ๋์์๋ ์ฒด์ธ์์ ์ด๋ค ๋ฐ์ดํฐ๊ฐ ์ด๋ค ํํ๋ก ์ ์ฅ๋๋์ง ํ์ธํ์๋ค. ### Event ๊ตฌ๋ (RPC) https://web3py.readthedocs.io/en/stable/contracts.html#event-log-object ์ ์์ ๋ฅผ ์์์ผ๋ก dapp๊ณผ solidity event์ rpc์ ์ฐ๊ณ๊ด๊ณ๋ฅผ ์์๋ณธ๋ค. ``` >>> transfer_filter = my_token_contract.eventFilter('Transfer', {'filter': {'_from': '0xdc3a9db694bcdd55ebae4a89b22ac6d12b3f0c24'}}) >>> transfer_filter.get_new_entries() ``` ์ ์์ ๋ ์ด๋ค ๊ณ์ฝ์ Transfer์ด๋ฒคํธ๋ฅผ ๊ฐ์งํ๋ ํํฐ๋ฅผ ์์ฑํ๊ณ , ํํฐ๋ฅผ ํตํด ์ด๋ฒคํธ์ ๋ฐ์์ฌ๋ถ๋ฅผ ํ์ธํ๋ dapp ์์ ์ด๋ค. ๋จผ์ web3์ ์ญํ ์ ๋ณด์  web3๋ฅผ ํตํด "eth_newFilter"๋ผ๋ json request๋ฅผ ๋ง๋ค์ด https provider์ ์ธ์ ์ผ๋ก postํ ํ, response๋ฅผ ๋ฐ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.(blocking๋์์ด๋ค) ์ด๋ฌํ https์์ฒญ์ geth๊ตฌํ์ฒด์ rpc์๋ฒ๋ก ์ ๋ฌ๋์ด ์ฒ๋ฆฌ๋๋ค. rpc์๋ฒ๋ JSON request๋ฅผ decodingํ ๋ ์๋น์ค์ ํจ์์ด๋ฆ์ "_"๋ก ๋ถ๋ฆฌํ๋ค. ์ฆ ๊ทธ๋ฆผ์์๋ eth์๋น์ค์ NewFilterํจ์๊ฐ ํธ์ถ๋๊ฒ ๋๋ฉฐ. ์ดํจ์ ๋ด๋ถ์์๋ ์ด๋๋ฆฌ์์ ์ด๋ฒคํธ ์์คํ ์์ ๋ฐ์ํ๋ Log์ด๋ฒคํธ์ ๋ํด subscription์ ์ ์ฒญํ๋ค.  ### ๊ตฌ๋ feed์ ๊ฐฑ์ (Log Opcode) ๋ ธ๋์ชฝ์ Log์ด๋ฒคํธ๋ ์๋ก์ด block์ด ์ฒด์ธ์ ์ถ๊ฐ๋ ๋ InsertChainํจ์๋ด์์ ๋ฐ์ํ๋ค. ์๋กญ๊ฒ ์์ ํ ๋ธ๋ก์ ์ฒ๋ฆฌ๊ฐ ๋ชจ๋ ๋๋๋ฉด, ํธ๋ ์ ์ ์ฒ๋ฆฌ์ค Log opcode์ ์ํด ์์ฑ๋ ๋ก๊ทธ๋ฅผ ๋ชจ๋ ๋ชจ์ EventSystem์ ์ ๋ฌํ๊ณ , ์ด ์ด๋ฒคํธ ์์คํ ์ ๊ตฌ๋ ์ ์ ์ฒญํ ๋ชจ๋ ์์ฒญ์์๊ฒ ํด๋น log๋ฅผ broadcastingํ๋ค. ์๊น ์ฐ๋ฆฌ์ rpc์๋ฒ๋ ๊ตฌ๋ ์ ํ๊ธฐ ๋๋ฌธ์, ์์ ์์ ํฌํจ๋ ๊ฒ์ด๋ฉฐ, ์์ ํ ๋ก๊ทธ๋ฅผ ์ด์ฉํ์ฌ ํํฐ๋ฅผ ์ ๋ฐ์ดํธ ํ๋ค. ์ดํ, get_new_entires๊ฐ dapp์์ ํธ์ถ๋๋ฉด filter์ ๋ณ๊ฒฝ ์ฌ๋ถ๋ฅผ ํ๋จํ์ฌ ๋ณ๊ฒฝ์ฌํญ์ ๋ฐํํ๊ฒ ๋๋ค. >eth_getFilterChanges๊ฐ node์ ์ ๋ฌ๋๋ฉด eth/GetFilterChanges ํจ์๊ฐ ํธ์ถ๋ ๊ฒ์ด๋ค. ### ๊ฐ๋จํ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํค๊ธฐ ์ํด ์ ๋ง ๋ง์ ์ผ๋ค์ด ๋ฒ์ด์ง๋ค. ์๋ ๊ทธ๋ฆผ์ด ์ค๋์ ๊ฒฐ๋ก ์ด๋ค. Dapp์ ์ด๋ฒคํธ๋ฅผ ํตํด ํธ์ถํ contract ํจ์์ feedback์ ๋ฐ์์ ์์ผ๋ฉฐ, ์ด feedback์ log opcode๊ฐ ์คํ๋์ด ๋ก๊ทธ๊ฐ ์์ฑ๋๋ฉด, ์ด๋ฒคํธ ์์คํ ๊ณผ rpc๋ฅผ ๊ฑฐ์ณ dapp์๊ฒ ์ ๋ฌ๋๋ค.  ## ๋ง์น๋ฉฐ, ์กฐ๊ธ ๋ค์ํ ์คํ์ ๋ชจ๋ ๊ฑฐ์ณ์ผ ํ๋ค๋ณด๋ ๊น์ด๋ ์กฐ๊ธ ๋ถ์กฑํ๊ฒ ๊ฐ์ง๋ง ์ปจํธ๋ ํธ์ ์ ์๋ ์ด๋ฒคํธ๊ฐ ๋ค์ dapp์๊ฒ ๋์์ค๊ธฐ ๊น์ง ๊ณผ์ ์ ๋ถ์์ ํตํด ์ด๋๋ฆฌ์์ ์ธ๋ถ ์ด๋ฒคํธ ์์คํ ์ ์กฐ๊ธ์ด๋๋ง ๋ ์ดํดํ ์ ์์๋ค. > ์ฒจ์ญ/์์ ์ ์ธ์ ๋ ๊ฐ์ฌํ ๋ฐ๊ฒ ์ต๋๋ค. > [email protected]๋ก ์ฐ๋ฝ๋ถํ๋๋ฆฝ๋๋ค. |
| json metadata | {"tags":["ethereum","event","sct","kr"],"image":["https://i.imgur.com/La1ofCW.png","https://i.imgur.com/xCCX8s5.png","https://i.imgur.com/IeBXAUp.png","https://i.imgur.com/DQ7t2xn.png","https://i.imgur.com/9mtK5dh.png","https://i.imgur.com/3Y7XcdX.png","https://i.imgur.com/pLsTpaK.png","https://i.imgur.com/3z94FXX.png","https://i.imgur.com/ES8FXuU.png"],"links":["https://github.com/ethereum/wiki/wiki/Design-Rationale","https://web3py.readthedocs.io/en/stable/contracts.html#event-log-object"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #33327179/Trx bb438ebff63959be48fb70dbd83f0dac03550157 |
View Raw JSON Data
{
"trx_id": "bb438ebff63959be48fb70dbd83f0dac03550157",
"block": 33327179,
"trx_in_block": 23,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-29T08:36:12",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "ethereum",
"author": "sigmoid",
"permlink": "event-for-outside-watchers",
"title": "Event: for outside watchers",
"body": "Event: for outside watchers\n===\n\n์ด๋๋ฆฌ์์ ๋น๋๊ธฐ์ ์๋ ์ปดํจํฐ๋ค. ์ฆ, ๋ด๊ฐ ์์ฒญํ ์์
์ด ์ธ์ ์คํ๋ ์ง ํ์ ํ๊ธฐ๊ฐ ํ๋ค๋ค. ์ด๋ฌํ ํ๊ฒฝ์์ Dapp์ ๋ง๋ค ๋ ๊ฐ์ฅ ํฐ ํจ๋ํฐ๋ ์์ฒญ์ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ๋ค๋ฅธ ๋ก์ง์ ์คํํด์ผ ํ ๋์ผ ๊ฒ์ด๋ค.์ด๋ฐ ๊ฒฝ์ฐ ์ฐ๋ฆฌ๊ฐ ์ทจํ ์ ์๋ ๋จ์ํ ๋ฐฉ๋ฒ์ ๋ด์์
์ด ์คํ๋ ๋๊น์ง, ๋ฐ๋ณต์ ์ผ๋ก ์ฒด์ธ์ ์ฝ์ด ํ์ธํด ๋ณด๋ ๊ฒ์ผ ๊ฒ์ด๋ค.\n\n๋น์ฐํ ์ด ๋ฐฉ์์ ๋ฉ๋ํ๊ธฐ ์ด๋ ต๋ค. ๊ทธ๋์ ์ค๋์ ์ด๋๋ฆฌ์์ด ์ด ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ๊ทน๋ณตํด ๋๊ฐ๊ณ ์๋์ง, \"Design-Rationale\"(https://github.com/ethereum/wiki/wiki/Design-Rationale)๋ฌธ์๋ฅผ ์์์ผ๋ก ์ ๋ฆฌํด ๋ณด๋ ์๊ฐ์ ๊ฐ์ง๊ธฐ๋ก ํ๋ค.\n\n\n### ์ธ๋ถ ๊ด์ฐฐ์์๊ฒ ํฅ๋ฏธ์๋ ์ด๋ฒคํธ \n์ด๋๋ฆฌ์ ์ค๊ณ ๊ทผ๊ฑฐ์๋ ๋ค์๊ณผ ๊ฐ์ ๋ด์ฉ์ด ๋์จ๋ค\n>Ethereum ์ค๊ณ์ ํ๋กํ ์ฝ์ ๊ธฐ๋ฅ๊ณผ opcode๋ค์ ์ต๋ํ ์ ์์ค์ผ๋ก ๊ตฌํํจ์ผ๋ก์จ, ๋์ค์ ๋์ฌ์ ์๋ ๋ ์ข์ ์์ฉ ๋ฐฉ์์ ์ ๋์ ํ ์ ์๋๋ก ํ๊ณ , (ํด๋น ๋ฐฉ์์์)ํ์์๋ ๋ถ๋ถ์ ์ฝ๊ฒ ์ ๊ฑฐ ํ ์ ์๋๋ก ํ์ฌ ์ข๋ ํจ์จ์ ์ธ ๋์์ ์ง์ํ๋๋ก ํ๋ค.\n> ๊ทธ ์๋ก LOG opcode๊ฐ ์๋ค. \"๋ฉ์์ง\"๋ ์ค์ ๋ก \"ํจ์ ํธ์ถ\"๊ณผ \"์ธ๋ถ ๊ด์ฐฐ์์๊ฒ ํฅ๋ฏธ์๋ ์ด๋ฒคํธ\"๋ฅผ ๋น๋กฏํ ์ฌ๋ฌ ๊ฐ๋
์ด ํตํฉ๋์ด ์์ผ๋ฉฐ, ์ด ๋ ๊ฐ์ง๋ ๋ถ๋ฆฌํ ๋งํ ๊ฐ์น๊ฐ ์๋ค.(์์ญ)\n\n์ด๋๋ฆฌ์์ ์ธ๋ถ ๊ด์ฐฐ์๊ฐ ๊ด์ฌ์์ดํ๋ ์ ๋ณด๋ฅผ ์ป๋ ๊ณผ์ ์์ ๊ฒช์ ์ด๋ ค์์ ์ค์ฌ์ฃผ๊ธฐ ์ํด Log Opcode๋ฅผ ์ ๊ณตํ๋ค.\n\n### ์๋ฆฌ๋ํฐ์ ์ด๋ฒคํธ ์ ์\n์๋ฆฌ๋ํฐ ๋ฌธ์์์๋ ์๋์ ๊ฐ์ด ์ด๋ฒคํธ๋ฅผ ์ ์ํ๋ค. \n> 1. Solidity ์ด๋ฒคํธ๋ EVM์ ๋ก๊น
๊ธฐ๋ฅ ์์ ์ถ์ํ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์์ฉ ํ๋ก๊ทธ๋จ์ Ethereum ํด๋ผ์ด์ธํธ์ RPC ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ด๋ฌํ ์ด๋ฒคํธ๋ฅผ ๊ตฌ๋
ํ๊ณ ์ฒญ์ทจ ํ ์ ์์ต๋๋ค.\n> 2. ์ด๋ฒคํธ๊ฐ ํธ์ถ๋๋ฉด ์ธ์(๋ณ์)๊ฐ ํธ๋์ญ์
๋ก๊ทธ์ ์ ์ฅ๋ฉ๋๋ค. ์ด ๋ก๊ทธ๋ ๊ณ์ฝ์ ์ฃผ์์ ์ฐ๊ฒฐ๋์ด ๋ธ๋ก ์ฒด์ธ์ ํตํฉ๋๋ฉฐ ๋ธ๋ก์ด ์ก์ธ์ค ๊ฐ๋ฅํ ํ ๊ณ์ ์ ์ง๋ฉ๋๋ค\n> 3. ๋ก๊ทธ ๋ฐ์ดํฐ์ ์ผ๋ถ๋ ๋ธ๋ฃธ ํํฐ์ ์ ์ฅ๋๊ธฐ ๋๋ฌธ์ ํจ์จ์ ์ด๊ณ ์ํธํ์ ์ผ๋ก ์์ ํ ๋ฐฉ๋ฒ์ผ๋ก ์ด ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ ํ ์ ์์ต๋๋ค.\n> 4. ์ต๋ ์ธ ๊ฐ์ ๋งค๊ฐ ๋ณ์์ ์์ธ ๋ ์์ฑ์ ์ถ๊ฐํ์ฌ ๋ก๊ทธ์ ๋ฐ์ดํฐ ๋ถ๋ถ ๋์ \"Topic\"์ด๋ผ๋ ํน์ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์ถ๊ฐ ํ ์ ์์ต๋๋ค. \n\n์๋ฆฌ๋ํฐ ๊ฐ๋ฐ์๋ ํจ์์ ์คํ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๊ธฐ ์ํด, ์ด๋ฒคํธ๋ฅผ ์ฌ์ฉํ๊ณ , ๊ตฌ๋
ํจ์ผ๋ก์ ์์ฒญํ ์ฐ์ฐ์ ์๋ฃ์ฌ๋ถ๋, ๊ฒฐ๊ณผ๋ฑ์ ํธํ๋ฐฉ์์ผ๋ก ํ์ธ ํ ์ ์๊ฒ ๋๋ค. \n\n\n## Log op code์ ์๋ฆฌ๋ํฐ์ Event์ ๊ด๊ณ\n์ง๊ธ๋ถํฐ๋ log opcode์ ์๋ฆฌ๋ํฐ์ Event์ ๋ํด ์กฐ๊ธ ๋ ์์ธํ ๋ถ์ํ๊ณ \n๋์ ์๊ด ๊ด๊ณ๋ฅผ ์ดํดํด ๋ณด๋๋ก ํ๊ฒ ๋ค.\n\n### LOG op์ฝ๋๋ ์ธ์ ์์ฑ๋๋๊ฐ?\n```\n contract A {\n event E(...);\n function foo() public {\n emit E(...);\n }\n }\n```\n์ ์ฝ๋๋ ์๋ฆฌ๋ํฐ์์ ์ด๋ฒคํธ๋ฅผ ์ฌ์ฉํ๋ ํจํด์ด๋ค. ์ด๋ฌํ ํจํด์ ์ฝ๋๋ ์๋ฆฌ๋ํฐ ์ปดํ์ผ๋ฌ์์ ๋ค์๊ณผ ๊ฐ์ด ํด์๋๋ค.\n\n\n\nํจ์ ํธ์ถ ๊ณผ์ ์์ ์๋ฆฌ๋ํฐ ์ปดํ์ผ๋ฌ๊ฐ Contract ํค์๋๋ฅผ ์ธ์ํ์ฌ ๋ด์ฉ์ ํ์ฑํ๊ณ , Event token๊ณผ block๋ด์ Emit token์ ์ธ์ํ ํ, ํด๋น ๋ธ๋ก์์ emit์ด ๋ฐ์ํ ๊ฒฝ์ฐ LOG opcode๋ฅผ ์ฝ์
ํ๋ ๊ณผ์ ์ ํ์ธํ ์ ์๋ค. \n\n> ๋๋ถ๋ถ์ ์ปดํ์ผ๋ฌ์ ๊ฐ์ด ์๋ฆฌ๋ํฐ ์ปดํ์ผ๋ฌ๋ parsing -> ast -> code generation์์์ด๋ฏ๋ก, ์๊ฐ์ด ๋ ๋ ํ๋ฒ์ฏค ๋ด๋๋๊ฒ๋ ์ข์๊ฒ ๊ฐ๋ค.\n\n\n### EVM์์์์ LOG op์ฝ๋์ ์คํ\n์ปดํ์ผ๋ฌ์์ ์ฝ์
ํ LOG op์ฝ๋๋ evm์์ ๋ค์๊ณผ ๊ฐ์ด ์ฒ๋ฆฌ๋๋ค.\n\n\n\nContract์ foo ํจ์๋ฅผ ํธ์ถํ๋ ํธ๋ ์ ์
์ด ๋ธ๋ก์ ํฌํจ๋๋ฉด, ๋
ธ๋๋ค์ ํด๋น ํธ๋ ์ ์
์ ์ฒ๋ฆฌํ๊ธฐ ์ํด EVM์ ์์ฑํ๋ค. EVM์์์๋ ๊ณ์ฝ์ ์ฝ๋๋ฅผ ์ค๋นํ ํ, ์ธํฐํ๋ฆฌํฐ๋ฅผ ํตํด ์คํ์ํจ๋ค. ์ด๋ Program Counter๊ฐ ์ฆ๊ฐํ๋ฉด์ ํด์๋ opcode๋ฅผ jump table์์ ํธ์ถํ๊ฒ ๋๋ฉฐ, Log op์ฝ๋์ ๊ฒฝ์ฐ jump table์ ๋ฑ๋ก๋ makeLogํจ์๊ฐ ํธ์ถ๋๋ค. \n\nmakeLogํจ์ ๋ด๋ถ๋ฅผ ์ดํด๋ณด๋ฉด(๋ณด๋ผ์) **์คํ์์ ๋ฐ์ดํฐ๋ก ํ ํฝํ๋๋ฅผ ์ฑ์ฐ๊ณ , ๋ฐ์ดํฐํ๋๋ ๋ฉ๋ชจ๋ฆฌ ์์์ง์ ๋ถํฐ ํฌ๊ธฐ๋งํผ ์ฝ๋๋ค.** ์ด ๊ฒฐ๊ณผ๋ค์ ํฌํจํ๋ LOG๋ฐ์ดํฐ๊ฐ stateDB์ ์ ์ฅ๋๋ค. \n\n### ํ ํฝ๊ณผ ๋ฐ์ดํฐ \n์คํ์์ ์ฝ์ ํ ํฝ๊ณผ, ๋ฉ๋ชจ๋ฆฌ์์ ์ฝ์ ๋ฐ์ดํฐ์ ๋ด์ฉ์ ์ด๋ค๊ฒ์ผ๊น? ์์ฑํ ์ปจํธ๋ ํธ๋ฅผ ์ปดํ์ผ ํด๋ณด์๋ค.\n\n\n```\nsolc --opcodes event.sol > opcodes.txt\n\n======= event.sol:B =======\nOpcodes:\n...\nPUSH32 0x2D4DD5FE18ADA5A020A9F5591539A8DC3010A5C074BA6A70E1C956659F02786A \nPUSH1 0x1 \nPUSH1 0x40 \nMLOAD\n...\nLOG1 \n...\n```\nLOG1 op์ฝ๋์ ๋์ ์์ ์ ๊ธฐ์ ์ผ๋ก ์คํ์๋ ์ด๋ฒคํธ์ ์ํ์ ๋ํ ํด์๊ฐ์ด ๋ค์ด์๊ณ , ๋ค์ ์๋ 2๊ฐ์ ์คํ op์ mload๋ก ์ธํด evm๋ฉ๋ชจ๋ฆฌ์ 0x40๋ฒ์ง์ 1์ด๋ผ๋ ๊ฐ์ด ๋ค์ด์๊ฒ ๋๋ค. **๊ฒฐ๋ก ์ ์ผ๋ก topic ํ๋์๋ ์ด๋ฒคํธ์ ์ํ์ด ๋ค์ด๊ฐ ๊ฒ์ด๊ณ , data ํ๋์๋ ๋ฉ๋ชจ๋ฆฌ์์ 1๊ฐ์ ์ฑ์ฐ๊ฒ ๋๋ค.** ์ค์ ์ ์ฅ์ด ์ ๋๋์ง ๋ฆฌ๋ฏน์ค๋ฅผ ํตํด ํ์ธํด๋ณด์๋ค.\n\n\n<input 0xc2985578 (ํจ์๋ช
์ ๋ํ ํด์๊ฐ์ ์์4๋ฐ์ดํธ)>\n\n<topic: 0x2d4dd5fe18ada5a020a9f5591539a8dc3010a5c074ba6a70e1c956659f02786a ์ด๋ฒคํธ์ ์ํ์ ๋ํ ํด์๊ฐ>\n\n\n[{\"address\":\"0x8c1ed7e19abaa9f23c476da86dc1577f1ef401f5\",**\"data\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"topics\":[\"0x2d4dd5fe18ada5a020a9f5591539a8dc3010a5c074ba6a70e1c956659f02786a\"]**,\"rawVMResponse\":[{\"type\":\"Buffer\",\"data\":[140,30,215,225,154,186,169,242,60,71,109,168,109,193,87,127,30,244,1,245]},[{\"type\":\"Buffer\",\"data\":[45,77,213,254,24,173,165,160,32,169,245,89,21,57,168,220,48,16,165,192,116,186,106,112,225,201,86,101,159,2,120,106]}],{\"type\":\"Buffer\",\"data\":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]}]}]\n>Yay!\n\n์ด์ ์ฐ๋ฆฌ๋ opcode๊ฐ ์คํ๋์์๋ ์ฒด์ธ์์ ์ด๋ค ๋ฐ์ดํฐ๊ฐ ์ด๋ค ํํ๋ก ์ ์ฅ๋๋์ง ํ์ธํ์๋ค.\n\n### Event ๊ตฌ๋
(RPC)\nhttps://web3py.readthedocs.io/en/stable/contracts.html#event-log-object ์ ์์ ๋ฅผ ์์์ผ๋ก dapp๊ณผ solidity event์ rpc์ ์ฐ๊ณ๊ด๊ณ๋ฅผ ์์๋ณธ๋ค.\n```\n>>> transfer_filter = my_token_contract.eventFilter('Transfer', {'filter': {'_from': '0xdc3a9db694bcdd55ebae4a89b22ac6d12b3f0c24'}})\n>>> transfer_filter.get_new_entries()\n```\n์ ์์ ๋ ์ด๋ค ๊ณ์ฝ์ Transfer์ด๋ฒคํธ๋ฅผ ๊ฐ์งํ๋ ํํฐ๋ฅผ ์์ฑํ๊ณ , ํํฐ๋ฅผ ํตํด ์ด๋ฒคํธ์ ๋ฐ์์ฌ๋ถ๋ฅผ ํ์ธํ๋ dapp ์์ ์ด๋ค. ๋จผ์ web3์ ์ญํ ์ ๋ณด์\n\n\nweb3๋ฅผ ํตํด \"eth_newFilter\"๋ผ๋ json request๋ฅผ ๋ง๋ค์ด https provider์ ์ธ์
์ผ๋ก postํ ํ, response๋ฅผ ๋ฐ์ ์ฒ๋ฆฌํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.(blocking๋์์ด๋ค) ์ด๋ฌํ https์์ฒญ์ geth๊ตฌํ์ฒด์ rpc์๋ฒ๋ก ์ ๋ฌ๋์ด ์ฒ๋ฆฌ๋๋ค.\n\nrpc์๋ฒ๋ JSON request๋ฅผ decodingํ ๋ ์๋น์ค์ ํจ์์ด๋ฆ์ \"_\"๋ก ๋ถ๋ฆฌํ๋ค.\n์ฆ ๊ทธ๋ฆผ์์๋ eth์๋น์ค์ NewFilterํจ์๊ฐ ํธ์ถ๋๊ฒ ๋๋ฉฐ. ์ดํจ์ ๋ด๋ถ์์๋ ์ด๋๋ฆฌ์์ ์ด๋ฒคํธ ์์คํ
์์ ๋ฐ์ํ๋ Log์ด๋ฒคํธ์ ๋ํด subscription์ ์ ์ฒญํ๋ค.\n\n\n\n### ๊ตฌ๋
feed์ ๊ฐฑ์ (Log Opcode)\n๋
ธ๋์ชฝ์ Log์ด๋ฒคํธ๋ ์๋ก์ด block์ด ์ฒด์ธ์ ์ถ๊ฐ๋ ๋ InsertChainํจ์๋ด์์ ๋ฐ์ํ๋ค.\n์๋กญ๊ฒ ์์ ํ ๋ธ๋ก์ ์ฒ๋ฆฌ๊ฐ ๋ชจ๋ ๋๋๋ฉด, ํธ๋ ์ ์
์ฒ๋ฆฌ์ค Log opcode์ ์ํด ์์ฑ๋ ๋ก๊ทธ๋ฅผ ๋ชจ๋ ๋ชจ์ EventSystem์ ์ ๋ฌํ๊ณ , ์ด ์ด๋ฒคํธ ์์คํ
์ ๊ตฌ๋
์ ์ ์ฒญํ ๋ชจ๋ ์์ฒญ์์๊ฒ ํด๋น log๋ฅผ broadcastingํ๋ค.\n\n์๊น ์ฐ๋ฆฌ์ rpc์๋ฒ๋ ๊ตฌ๋
์ ํ๊ธฐ ๋๋ฌธ์, ์์ ์์ ํฌํจ๋ ๊ฒ์ด๋ฉฐ, ์์ ํ ๋ก๊ทธ๋ฅผ ์ด์ฉํ์ฌ ํํฐ๋ฅผ ์
๋ฐ์ดํธ ํ๋ค. ์ดํ, get_new_entires๊ฐ dapp์์ ํธ์ถ๋๋ฉด filter์ ๋ณ๊ฒฝ ์ฌ๋ถ๋ฅผ ํ๋จํ์ฌ ๋ณ๊ฒฝ์ฌํญ์ ๋ฐํํ๊ฒ ๋๋ค.\n>eth_getFilterChanges๊ฐ node์ ์ ๋ฌ๋๋ฉด eth/GetFilterChanges ํจ์๊ฐ ํธ์ถ๋ ๊ฒ์ด๋ค.\n\n### ๊ฐ๋จํ ์ด๋ฒคํธ๋ฅผ ๋ฐ์์ํค๊ธฐ ์ํด ์ ๋ง ๋ง์ ์ผ๋ค์ด ๋ฒ์ด์ง๋ค.\n์๋ ๊ทธ๋ฆผ์ด ์ค๋์ ๊ฒฐ๋ก ์ด๋ค. Dapp์ ์ด๋ฒคํธ๋ฅผ ํตํด ํธ์ถํ contract ํจ์์ feedback์ ๋ฐ์์ ์์ผ๋ฉฐ, ์ด feedback์ log opcode๊ฐ ์คํ๋์ด ๋ก๊ทธ๊ฐ ์์ฑ๋๋ฉด, ์ด๋ฒคํธ ์์คํ
๊ณผ rpc๋ฅผ ๊ฑฐ์ณ dapp์๊ฒ ์ ๋ฌ๋๋ค. \n\n\n\n\n## ๋ง์น๋ฉฐ,\n์กฐ๊ธ ๋ค์ํ ์คํ์ ๋ชจ๋ ๊ฑฐ์ณ์ผ ํ๋ค๋ณด๋ ๊น์ด๋ ์กฐ๊ธ ๋ถ์กฑํ๊ฒ ๊ฐ์ง๋ง\n์ปจํธ๋ ํธ์ ์ ์๋ ์ด๋ฒคํธ๊ฐ ๋ค์ dapp์๊ฒ ๋์์ค๊ธฐ ๊น์ง ๊ณผ์ ์ ๋ถ์์ ํตํด\n์ด๋๋ฆฌ์์ ์ธ๋ถ ์ด๋ฒคํธ ์์คํ
์ ์กฐ๊ธ์ด๋๋ง ๋ ์ดํดํ ์ ์์๋ค.\n\n\n> ์ฒจ์ญ/์์ ์ ์ธ์ ๋ ๊ฐ์ฌํ ๋ฐ๊ฒ ์ต๋๋ค.\n> [email protected]๋ก ์ฐ๋ฝ๋ถํ๋๋ฆฝ๋๋ค.",
"json_metadata": "{\"tags\":[\"ethereum\",\"event\",\"sct\",\"kr\"],\"image\":[\"https://i.imgur.com/La1ofCW.png\",\"https://i.imgur.com/xCCX8s5.png\",\"https://i.imgur.com/IeBXAUp.png\",\"https://i.imgur.com/DQ7t2xn.png\",\"https://i.imgur.com/9mtK5dh.png\",\"https://i.imgur.com/3Y7XcdX.png\",\"https://i.imgur.com/pLsTpaK.png\",\"https://i.imgur.com/3z94FXX.png\",\"https://i.imgur.com/ES8FXuU.png\"],\"links\":[\"https://github.com/ethereum/wiki/wiki/Design-Rationale\",\"https://web3py.readthedocs.io/en/stable/contracts.html#event-log-object\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}sigmoidreceived 0.771 SBD, 2.410 SP author reward for @sigmoid / ethreumdb-in-a-nutshell2019/05/27 16:52:27
sigmoidreceived 0.771 SBD, 2.410 SP author reward for @sigmoid / ethreumdb-in-a-nutshell
2019/05/27 16:52:27
| author | sigmoid |
| permlink | ethreumdb-in-a-nutshell |
| sbd payout | 0.771 SBD |
| steem payout | 0.000 STEEM |
| vesting payout | 3924.619148 VESTS |
| Transaction Info | Block #33279549/Virtual Operation #8 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 33279549,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 8,
"timestamp": "2019-05-27T16:52:27",
"op": [
"author_reward",
{
"author": "sigmoid",
"permlink": "ethreumdb-in-a-nutshell",
"sbd_payout": "0.771 SBD",
"steem_payout": "0.000 STEEM",
"vesting_payout": "3924.619148 VESTS"
}
]
}2019/05/25 05:22:33
2019/05/25 05:22:33
| parent author | sigmoid |
| parent permlink | all-about-ethereum-gas |
| author | steemitboard |
| permlink | steemitboard-notify-sigmoid-20190525t052235000z |
| title | |
| body | Congratulations @sigmoid! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) : <table><tr><td><img src="https://steemitimages.com/60x70/http://steemitboard.com/@sigmoid/comments.png?201905250455"></td><td>You made more than 10 comments. Your next target is to reach 50 comments.</td></tr> </table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@sigmoid) and compare to others on the [Steem Ranking](http://steemitboard.com/ranking/index.php?name=sigmoid)_</sub> <sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub> ###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes! |
| json metadata | {"image":["https://steemitboard.com/img/notify.png"]} |
| Transaction Info | Block #33208214/Trx a6b6f822f378c5275dd3bba212fc649868bbf82d |
View Raw JSON Data
{
"trx_id": "a6b6f822f378c5275dd3bba212fc649868bbf82d",
"block": 33208214,
"trx_in_block": 21,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-25T05:22:33",
"op": [
"comment",
{
"parent_author": "sigmoid",
"parent_permlink": "all-about-ethereum-gas",
"author": "steemitboard",
"permlink": "steemitboard-notify-sigmoid-20190525t052235000z",
"title": "",
"body": "Congratulations @sigmoid! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :\n\n<table><tr><td><img src=\"https://steemitimages.com/60x70/http://steemitboard.com/@sigmoid/comments.png?201905250455\"></td><td>You made more than 10 comments. Your next target is to reach 50 comments.</td></tr>\n</table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@sigmoid) and compare to others on the [Steem Ranking](http://steemitboard.com/ranking/index.php?name=sigmoid)_</sub>\n<sub>_If you no longer want to receive notifications, reply to this comment with the word_ `STOP`</sub>\n\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\"]}"
}
]
}sigmoidpublished a new post: all-about-ethereum-gas2019/05/25 03:26:03
sigmoidpublished a new post: all-about-ethereum-gas
2019/05/25 03:26:03
| parent author | |
| parent permlink | factom |
| author | sigmoid |
| permlink | all-about-ethereum-gas |
| title | All about Ethereum Gas |
| body | All about Ethereum Gas === ์์ฆ ์ฃผ๋ณ ๊ฐ๋ฐ์๋ค ์ฌ์ด์์ ํํ ๋ฃ๋ฆฌ๋ ์๋ฆฌ๋, "์ปจํธ๋ ํธ๋ฅผ ์งฐ๋๋ฐ ์ ๋๋ก ๋์ํ์ง ์์์ ํ์ธํด ๋ณด๋ Gas๋ฌธ์ ์๋ค." ์ธ ๊ฒ ๊ฐ๋ค. ์ผ๋ง์ facebook์๋ EstimateGas๋งํผ Gas๋ฅผ ์ค์ ํด์ ํธ๋ ์ ์ ์ ๋ณด๋๋๋ฐ, negative gas๊ฐ ๋ฐ์ํ๋ ํธ๋ ์ ์ ์ด์ฌ์ ์ต์ข ์ฌ์ฉ๋์ด ์ ๊ฒ ๊ณ์ฐ๋๊ฒ์ด๋๋ผ. ๊ทธ๋์ ์ค์ ์คํ์์๋ gas limit์ ๋์ด๊ฐ๋ ์๊ฐ์ด ๋ฐ์ํ๋๋ผ๋ผ๋ ํฅ๋ฏธ๋ก์ด ์ด์ผ๊ธฐ๋ ๋ค์๋ค. ์ฌ์ค Gas์ ์ฌ์ฉ๋์, ๊ณ์ฝ์ ์ฝ๋๊ฐ ์๋ชจํ๋ ๋ + OnChain state์ ๋ณํ๋์ด ํจ๊ป ์กด์ฌํ๋ ๊ฐ๋ ์ด๊ธฐ ๋๋ฌธ์, ์ ํํ๊ฒ ์์ธกํ๊ธฐ๊ฐ ์ด๋ ต๋ค. ์ฌ์ง์ด Web3์์ ์ ๊ณตํ๋ ํจ์์ด๋ฆ๋ EstimateGas ์ด์ง ์์๊ฐ? ๊ทธ๋์ ์ค๋์ ์ด๋๋ฆฌ์์ Gas์ EVM ์์ ์ฒ๋ฆฌ ๋ก์ง์ ์ ๋ฆฌํด๋ณด๊ณ EsimateGasํจ์์ ๋์์๋ฆฌ๋ฅผ ํ์ ํด๋ณด๊ณ ์ ์ด ๊ธ์ ์์ํ์๋ค. ## Gas๊ฐ ๋ญ์ผ? ์ด๋๋ฆฌ์์ ๋ด์ฌ๊ฐ์น๋ ๋น์ฐํ Ether์ธ๋ฐ ์ Gas๋ผ๋ ๋จ์ด๋ฅผ ๋ง๋ค์ด ์ฐ๋ฆฌ๋ฅผ ํท๊ฐ๋ฆฌ๊ฒ ํ ๊น? ์ด๋ถ๋ถ์ ๋จผ์ ๋ช ํํ๊ฒ ์ดํดํ๊ณ ๊ด๋ฆฌ ๋ก์ง์ ๋ค์ฌ๋ค ๋ณด๋๋ก ํ์. ### Ethereum์์ Gas์ ์ญํ Ethreum Yellow paper๊ธฐ์ค์ผ๋ก Gas๋ ์ด๋๋ฆฌ์ ํ๋กํ ์ฝ์์์ ๋ค์์ ์ญํ ์ ๋ถ์ฌ๋ฐ์๋ค. 1. ์ด๋๋ฆฌ์์ ๊ฐ๊ฒฉ ๋ณ๋์ฑ์ ๋ํ ๋ฒํผ์ญํ 2. ๋ง์ด๋์ ๋ํ ๋ณด์์ ์ญํ (Reward ๋ง๊ณ ์ฐ์ฐ์ ๋ํ Fee) 3. Dos๋ฑ์ ๊ณต๊ฒฉ์ ๋ง๋ ์ญํ ์์ ์ญํ ์ค 1๋ฒ์ด ์ด ๊ธ์์ ๊ฐ์ฅ ์ค์ํ ๋ด์ฉ์ด๋ค.(2๋ฒ๊ณผ 3๋ฒ์ ๋ค๋ฃจ์ง ์๋๋ค) ๋จผ์ ์ ๊ฐ๋ฐ์๋ค์ด ๋งํ๋ ๊ฐ์ค๋น๋ Gas Price์ Gas ์ฌ์ฉ๋(Unit์ด๋ผ๋ ํํ์ ๋น๋ฆฐ๋ค)์ ์กฐํฉ์ด๋ค. Gas Price๋ Gas 1 unit๋น ์ด๋๋ฆฌ์ ๊ฐ๊ฒฉ์ด๋ค. Gas Unit์ Ethereum์ EVM operation์์ ๋น์ฉ์ ์ฑ ์ ํ๋ ๊ณ ์ ์ ๋จ์์ด๋ค. ๊ทธ๋์ opcode๋น ์ค์ ๋น์ฉ์ Gast cost * unit/opcode๊ฐ ๋๋ค. ์ด๋ฌํ ๋น์ฉ๊ตฌ์กฐ๋ Action์ ์์ฑํ๋ user๊ฐ unit๋น Gas price๋ฅผ ์กฐ์ ํจ์ผ๋ก์ ์ด๋๋ฆฌ์์ ์ธ๋ถ๊ฐ๊ฒฉ๋ณ๋(์, ๋ฌ๋ฌ๋ฑ)์ผ๋ก๋ถํฐ ์์ ๋ก์ ์ง์์๋ ๊ธฐํ๋ฅผ ์ค๋ค. ๋ง์ฝ ๊ฐ์ค๋น๋ก ์ฒ์์ ๋ด๊ณ ์ถ์ผ๋ฉด, ๋ด Action์ด ์๋ชจํ๊ฒ๋ Gas unit์ ์๋ก ์ฒ์์ ๋๋๊ณ , ์ ๋๋น ์ํ๊ฐ๊ฒฉ์ด ๋์ค๋ฉด, ํด๋น ์ํ๊ฐ๊ฒฉ์ ๋์๋๋ Gas Price๋ฅผ ์ด๋๋ฆฌ์์ผ๋ก ์ ๋ ฅํ๋ฉด ๋๋ค. ์ฆ, ์ด๋๋ฆฌ์์ด ๋น์ธ์ง๋ฉด Gas price๋ฅผ ์ ๊ฒ ์ ๊ณ , ์ด๋๋ฆฌ์์ด ์ธ์ง๋ฉด p๋๊ฒ ์ ์ด ๋ด์ด์ ์ต์ข ์๋น ๊ธ์ก์ ์ฒ์์ ๋ง์ถ ์ ์๋ค ์ค์ ํธ๋ ์ ์ ์ ์์ฑํ๋ ๊ณผ์ ์์ ์ฐ๋ฆฌ๋ Gas์ ๊ด๋ จํ 2๊ฐ์ field์ธGas Cost์ Gas Limit์ ์ ๋ ฅํ๊ฒ ๋๋๋ฐ, Cost๋ ์ด๋๋ฆฌ์๊ณผ ์ฐ๊ฒฐ๋๊ณ , Limit์ opcode๊ฐ ์๋ชจํ๋ (์ต๋)Unit์๋ก ์ ์๋๋ค. ๊ทธ๋์ ์ต์ข ์ง๋ถํ๋ ๊ฐ์ค๋น๋ Cost * Unit Limit์ผ๋ก ๊ณ์ฐ๋๋ ๊ฒ์ด๋ค. ### ๊ฒฐ๊ตญ Gas๋ EVM์์์๋ง ์กด์ฌํ๋ค. ์ด๋๋ฆฌ์์์๋ ์ฐ์ฐ์ ํ๋๊ฒ๋, State๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ๋ ๋ชจ๋ EVM์ด๋ค. ์ฆ ๊ฐ์ค๋ฅผ ์๋ชจํ๊ณ ์ญํ ์ ๋ชจ๋ EVM์์ ํ๋ค. ๋์ค์ ๋์ค๊ฒ ์ง๋ง, Refundํ ๋๋ ์ด๋๋ฆฌ์์ผ๋ก ๋๋ ค์ค์ผ ํ๋ฏ๋ก ๋จ์ Gas ์ ๋์ * Gas Cost๋ฅผ ํด์ ๋ณํ๋ ๊ฐ์น๋ฅผ ๋๋ ค์ค๋ค. ## Ethereum์ Gas ์ ์ฑ ### ์ฐ์ฐ๋น ์๋ชจ๋ EVM์ op code๋ฅผ ์คํํ๋ ๋จธ์ ์ด๋ฉฐ, ์๋์ ๊ฐ์ด op code๋ฅผ ์คํํ ๋ ๋ง๋ค Gas Unit์ ์๋ชจํ๋๋ก ์ค๊ณ๊ฐ ๋์ด์๋ค.  (From: https://github.com/djrtwo/evm-opcode-gas-costs/blob/master/opcode-gas-costs_EIP-150_revision-1e18248_2017-04-12.csv) ### State ๋ณํ์ ๋ํ ๋น์ฉ๊ณผ Negative Gas ๋๋จน๋ ํ๋ง๊ฐ์ผ๋๋ผ๊ณ , ๋ฉ๋ชจ๋ฆฌ๋ OnChain์ ๊ธฐ๋ก๋ Storage๋ฅผ ์ฝ๊ณ ์ฐ๋๋ฐ๋ ๋น์ฉ์ด ๋ ๋ค. M์ Memory, S๋ Storage์ด๋ค. ๋ค๋ค ๊ทธ๋์ ์ต์ข ์ ์ฅํ ๋ ๋ง๊ณ ๋ Memory๋ฅผ ์ฌ์ฉํ๋ค.  Negative Gas๊ฐ ์ฌ๋ฏธ์๋ ๊ฐ๋ ์ธ๋ฐ, ์ด๋๋ฆฌ์์ ์ฌ์ฉํ์ง ์๋ ์คํ ๋ฆฌ์ง๋ ์ด์นด์ดํธ์ ์ญ์ ๋ฅผ ์ฅ๋ คํ๊ธฐ ์ํด, Gas๋ฅผ ๋๋ ค์ฃผ๋ ์ ์ฑ ์ ๋ง๋ค์๋ค. ๊ธ์ ์์๋ถ์ ์ธ๊ธํ๋ Negative Gas ๋ฌธ์ ๋ฅผ ์ดํดํ๋๋ฐ ๋์์ ์ค ๊ฒ์ด๋ค. * Deleting a contract (SELFDESTRUCT) is worth a refund of 24,000 gas. * Changing a storage address from a nonzero value to zero (SSTORE[x] = 0) is worth a refund of 15,000 gas. > ๊ณผ์ฐ ์ด๋ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ฒ ๋ ๊น! ## Gas๊ฐ ์๋น ๋๋ ๊ณผ์ . ### Transaction Gas Limit vs. Block Gas Limit ์ด๋๋ฆฌ์ ์์๋ 2๊ฐ์ Gas Limit์ด ์กด์ฌํ๋ค. ์ค์ Gas์ ์๋น๋ฅผ ์ดํดํ๊ธฐ ์ํด ๋ Gas Limit์ ๋ํด ๊ฐ๋จํ ์ง๊ณ ๋์ด๊ฐ์ผํ๋ค. ์ ์ฑํฐ์์ ํธ๋ ์ ์ ์ ์์ฑํ๊ธฐ ์ํด ์ ๋ ฅํ๋ 2๊ฐ์ ํ๋์ค ํ๋๊ฐ Gas Limit์ด๋ผ๊ณ ํ๋๋ฐ, ์ด๊ฒ์ ์ ํํ ๋ช ์นญ์ Transaction Gas Limit์ผ๋ก, ์ด ํธ๋ ์ ์ ์ ์คํํ๋ ๊ณผ์ ์์ ์๋ชจํ ์ต๋ unit์๋ฅผ ๊ฐ๋ฆฌํจ๋ค. ์ด ์ ๋์๋ฅผ ๋์ด๊ฐ๋ฉด ์คํํ opcode๊ฐ ๋จ์์๋๋ผ๋ EVM์ ์คํ์ด ๋ฉ์ถ๊ฒ ๋ ๊ฒ์ด๋ค. ๋๋ฒ์งธ Block Gas Limit์ ํด๋น ๋ธ๋ก๋ด์์ ํธ๋ ์ ์ ๋ค์ด ์ฌ์ฉ๊ฐ๋ฅํ ์ต๋ Gas unit์์ด๋ค. ์ฆ, ์์ ํธ๋ ์ ์ ์์ Block Gas Limit๋งํผ์ unit์ ์ฌ์ฉํ๋ค๋ฉด, ๋ค๋ฅธ ํธ๋ ์ ์ ์ ์คํ ๋ ์ ์๋ค.(์ค์ ๋ก ๊ทธ๋ฐ์ผ์ ๋ฐ์ํ์ง ์๋๋ค. ํธ๋ ์ ์ ์ด ๋ธ๋ก์ ํฌํจ๋๋ ๊ณผ์ ์์ ์ด๋ฏธ ๊ฑธ๋ฌ์ง๊ธฐ ๋๋ฌธ์) ### EVM์ Gas ์ฌ์ฉ๋ฐฉ์ - Gas Pool Gas Pool์ ๋ธ๋ก์ state๋ฅผ Processingํ ๋ ์ฌ์ฉ๋๋ ๊ฐ๋ ์ด๋ค. ์ด๋ค ๋ธ๋ก์ ์ฒ๋ฆฌํ ๋(์ ํํ๋ ๋ธ๋ก๋ด์ transaction์ ์ฒ๋ฆฌ) ์ฌ์ฉ๊ฐ๋ฅํ ๊ฐ์ค๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ pool๋ก์, ๋ธ๋ก ์ฒ๋ฆฌ ์์์ ์์ฑ๋๋ฉฐ BlockGasLimit๊ฐ์ผ๋ก ์ด๊ธฐํ๋๋ค (์ค์!) ์๋ ํจ์ ํธ์ถ ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด, Gas Pool์ ์์ฑํ๊ณ ๋ธ๋ก ์์ ํธ๋ ์ ์ ์ ์คํํ๊ธฐ ์ํด ๋งค ํธ๋ ์ ์ ๋ง๋ค Gas Pool์์ Transaction Limit๋งํผ ๊ฐ์ค๋ฅผ ์ฌ๊ณ , ์ฌ๋ ๊ฐ์ค์์ opcode์ cost๋ฅผ ์๋ชจํ๋ ๊ฒ์ ํ์ธํ ์์๋ค. ์ดํ ๋จ์ ๊ฐ์ค๋ ํ๋ถ ๋ ๊ฐ์ค์ unit์๋ Pool์ ๋ฐํ๋๋ค.  ์ด๋ฌํ ๋ก์ง์ ํตํด ํธ๋ ์ ์ ์ด ์ค์ ์ฌ์ฉํ Gas unit๋๋ง์ ๊ณ ๋ คํ์ฌ ๋ธ๋ก์ ํธ๋ ์ ์ ์ ์ต๋ํ ๊ฐ๋ ์ฑ์ธ ์ ์๊ฒ ๋๋ค. ### Estimate Gas์ ๋์๋ฐฉ์ EstimateGasํจ์๋ ํธ๋ ์ ์ ์ ์ฌ์ฉ๋์ ์์ธกํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ํจ์์ด๋ค. ์ด ํจ์๋ ์ต์๊ฐ์ 21000์ ๋์ผ๋ก, ๋ ์ต๋๊ฐ์ ํ์ฌ ๊ฐ์ฅ ์ต์ ์ ๋ธ๋ก(๋ง์ด๋์ ํ๊ณ ์์๊ฒฝ์ฐ ๋ง์ด๋๋์์ง๋ง ์์ง canonicalํ์ ์ด ๋์ง ์์ ๋ธ๋ก์ด ์กด์ฌํ ์ ์์ผ๋ฏ๋ก, ์ต์ ๋ง์ด๋๋ ๋ธ๋ก)์ Block Gas Limit์ผ๋ก ์ค์ ํ ํ ๋ฐ์ด๋๋ฆฌ ์์น๋ฅผ ํตํด Contractํธ์ถ์ transaction์ด ์ฑ๊ณตํ๋ ๊ฒฝ์ฐ์ Gas๋ฅผ ๋ฐํํ๋ค.  ์ค์ ๋ก Contractํธ์ถํจ์๋ ์ด๋ ๊ฒ ์๊ฒผ๋ค ์ค๋ฅ๊ฐ ๋์ง ์๋๋ก ์์ balance๋ ์ต๋๋ก ์ฃผ๊ณ , ๊ฐ์คํ๋ ์ต๋๊ฐ์ผ๋ก ์ค๋ค.  ์ด๋ฐ ํธ์ถ ๋ฐฉ์์ด๋ผ๋ฉด, Gas Pool์ ์ค๋ช ํ๋ ํจ์ ํธ์ถ ๋ถ๋ถ์์ ์ด๋ถ๋ถ์ ๊ณตํต์ผ๋ก ์ฌ์ฉํ๊ณ ์์์ ์์ ์๋ค.  ๊ทธ๋ ๋ค๋ฉด ์ฒ๋ฆฌ๋ก์ง์ ์๋์ ๊ฐ์ด ์์ฝ ํ ์ ์๋ค. 1. ๋ฐ์ด๋๋ฆฌ ์์น๋ฅผ ํตํด ์ ๋ ฅํ ๊ฐ์ค ๊ฐ๋งํผ ๊ฐ์คํ์์ ๊ฐ์ค๋ฅผ ์ฐ๋ค. 2. ํธ๋ ์ ์ ์ ์คํํด๋ณธ๋ค. 3. ์คํ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๋ค. 1. halt๊ฐ ๋๋ฉด ์คํ ์ดํธ๋ฅผ ์์๋ณต์ํ๊ณ , ๋ค๋ฅธ ์ ๋ ฅ์ ๋ฃ๋๋ค. 2. ์ฑ๊ณตํ๋ค๋ฉด ์ ๋ ฅํ ๊ฐ์ ๋ฆฌํดํ๋ค (!) ์ด์ํ๋ค. ์ค์ ์ฌ์ฉํ ๊ฐ์ค๊ฐ์ ๋ฆฌํดํ๋ ๊ฑฐ๋ผ๋ฉด, negative gas๋ฅผ ๊ณ ๋ คํ์ฌ ์ค์ peak์ํฉ๋ณด๋ค ์์ ๊ฐ์ด ๋ฐํ๋๊ฒ ์ง๋ง, ์ฝ๋ ๋ถ์์ ๋ฐ๋ฅด๋ฉด ์ด๋ฏธ ์ฐ ๊ฐ์ค๋ฅผ ๊ฐ์ง๊ณ ์คํ์ด ๋๋์ง ์๋๋์ง๋ฅผ ๊ฒ์ฆํด๋ณด๊ณ ํด๋น ๊ฐ์ค๋ฅผ ๋ฐํํ๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋๋ฉด ์๋๋ค! ## ๋ค์ ๋ฌธ์ ๋ก ๋์๊ฐ์. ๊ทธ๋ผ ์ธ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒ์ผ๊น? ์์๋๋ ๋ถ๋ถ์ผ๋ก๋ ์์ธก์ ์ฌ์ฉ๋ state๊ฐ ์คํ ๋น์์ ๋ค๋ฅผ ๊ฒฝ์ฐ๋ค. ์์ธก์ ์ฌ์ฉ๋ ์ต์ ๋ธ๋ก์ ๋ค์ ๋ธ๋ก์ ๋ด ํธ๋ ์ญ์ ์ด ์ฒซ๋ฒ์งธ๋ก ํฌํจ๋๋ค๋ ๋ณด์ฅ์ด ์๊ธฐ ๋๋ฌธ์, ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค. ๋ํ ๋ค์๋ธ๋ก์ ํฌํจ๋๋๋ผ๋, ์์ชฝ์ ํธ๋ ์ ์ ์ด ๋ด๊ฐ ์ฌ์ฉํ๋ state๋ฅผ ๋ณ๊ฒฝํ์ ๊ฒฝ์ฐ์๋, ๋ฌธ์ ๊ฐ ๋ฐ์๊ฐ๋ฅํ๋ค. ๋ง์ง๋ง Miningํ ๋ธ๋ก์ด uncle๋ธ๋ก์ผ๋ก ์ฒ๋ฆฌ๋์์ ๊ฒฝ์ฐ, ๋ฐ๋ก ๋ค์ ๋ธ๋ก์ ์ฒซ๋ฒ์งธ๋ก ํฌํจ๋๋ค ํ๋๋ผ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์๊ฒ์ผ๋ก ์์ํ๋ค. ## ๋ง์น๋ฉฐ, ์ค์ ๋ก ํ ์คํธ๋ฅผ ํด๋ณธ๊ฒ์ ์๋๊ธฐ ๋๋ฌธ์, 100% ํ์ ํ ์ ์์ง๋ง ์ต์ํ ์ค์ ์ฌ์ฉ๋ gas๋ฅผ ๋ฆฌํดํ๋ ๊ฒ์ด ์๋๋ผ, ์ ๋ ฅํ GasLimit์ผ๋ก ํธ๋ ์ ์ ์ด ๋์ํ๋์ง๋ฅผ ํ์ธํ ๊ฐ์ ๋ฆฌํดํ๋ ๋ก์ง์ผ๋ก ๊ตฌํ์ด ๋์ด ์๋ค๋ ๊ฒ์ ํ์ธํ์๋ค. ๋ค๋ง, Estimate Gas๋ก ์์ธกํ ๊ฐ๊ฒฉ์ ๋ง์ด๋ ์ํ์, ๋ธ๋ก์ ํฌํจ๋๋ ์๊ฐ์ ๋ฐ๋ผ ์ธ์ ๋ ๋ฌดํจํด ์ง์ ์๋ค๋ ๊ฒ์ ํ์ธํ์๊ธฐ ๋๋ฌธ์, ์ต์ด ์ธ๊ธ๋ ์ ๋ณด๋ ๋ถ์์ด ํ๋ ธ์ ํ๋ฅ ์ด ๋๋ค๋๊ฒ๋ง ํ์ธํ๊ณ , ๊ธ์ ๋ง๋ฌด๋ฆฌ ํ๊ธฐ๋ก ํ๋ค. > ์๋ชป ๋ถ์๋ ๋ด์ฉ์ด ์๊ฑฐ๋, ์์ ํ ๋ถ๋ถ์ด ์๋ค๋ฉด > [email protected]๋ก ์ธ์ ๋ ์ฐ๋ฝ๋ถํ๋๋ฆฝ๋๋ค. |
| json metadata | {"tags":["ethereum","gas","sct","kr","factom"],"image":["https://i.imgur.com/LiiyW7x.png","https://i.imgur.com/Vd9lYEM.png","https://i.imgur.com/ZcUCMxP.png","https://i.imgur.com/g7wkGIE.png","https://i.imgur.com/mkwhh6a.png","https://i.imgur.com/AbrjTLr.png"],"links":["https://github.com/djrtwo/evm-opcode-gas-costs/blob/master/opcode-gas-costs_EIP-150_revision-1e18248_2017-04-12.csv"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #33205885/Trx 2a97c157e1d1d2976833f6a747f2112f3261cffc |
View Raw JSON Data
{
"trx_id": "2a97c157e1d1d2976833f6a747f2112f3261cffc",
"block": 33205885,
"trx_in_block": 11,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-25T03:26:03",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "factom",
"author": "sigmoid",
"permlink": "all-about-ethereum-gas",
"title": "All about Ethereum Gas",
"body": "All about Ethereum Gas\n===\n์์ฆ ์ฃผ๋ณ ๊ฐ๋ฐ์๋ค ์ฌ์ด์์ ํํ ๋ฃ๋ฆฌ๋ ์๋ฆฌ๋, \"์ปจํธ๋ ํธ๋ฅผ ์งฐ๋๋ฐ ์ ๋๋ก ๋์ํ์ง ์์์ ํ์ธํด ๋ณด๋ Gas๋ฌธ์ ์๋ค.\" ์ธ ๊ฒ ๊ฐ๋ค. \n\n์ผ๋ง์ facebook์๋ EstimateGas๋งํผ Gas๋ฅผ ์ค์ ํด์ ํธ๋ ์ ์
์ ๋ณด๋๋๋ฐ, negative gas๊ฐ ๋ฐ์ํ๋ ํธ๋ ์ ์
์ด์ฌ์ ์ต์ข
์ฌ์ฉ๋์ด ์ ๊ฒ ๊ณ์ฐ๋๊ฒ์ด๋๋ผ. ๊ทธ๋์ ์ค์ ์คํ์์๋ gas limit์ ๋์ด๊ฐ๋ ์๊ฐ์ด ๋ฐ์ํ๋๋ผ๋ผ๋ ํฅ๋ฏธ๋ก์ด ์ด์ผ๊ธฐ๋ ๋ค์๋ค.\n\n์ฌ์ค Gas์ ์ฌ์ฉ๋์, ๊ณ์ฝ์ ์ฝ๋๊ฐ ์๋ชจํ๋ ๋ + OnChain state์ ๋ณํ๋์ด ํจ๊ป ์กด์ฌํ๋ ๊ฐ๋
์ด๊ธฐ ๋๋ฌธ์, ์ ํํ๊ฒ ์์ธกํ๊ธฐ๊ฐ ์ด๋ ต๋ค. ์ฌ์ง์ด Web3์์ ์ ๊ณตํ๋ ํจ์์ด๋ฆ๋ EstimateGas ์ด์ง ์์๊ฐ?\n\n๊ทธ๋์ ์ค๋์ ์ด๋๋ฆฌ์์ Gas์ EVM ์์ ์ฒ๋ฆฌ ๋ก์ง์ ์ ๋ฆฌํด๋ณด๊ณ \nEsimateGasํจ์์ ๋์์๋ฆฌ๋ฅผ ํ์
ํด๋ณด๊ณ ์ ์ด ๊ธ์ ์์ํ์๋ค.\n\n## Gas๊ฐ ๋ญ์ผ?\n์ด๋๋ฆฌ์์ ๋ด์ฌ๊ฐ์น๋ ๋น์ฐํ Ether์ธ๋ฐ ์ Gas๋ผ๋ ๋จ์ด๋ฅผ ๋ง๋ค์ด ์ฐ๋ฆฌ๋ฅผ ํท๊ฐ๋ฆฌ๊ฒ ํ ๊น? ์ด๋ถ๋ถ์ ๋จผ์ ๋ช
ํํ๊ฒ ์ดํดํ๊ณ ๊ด๋ฆฌ ๋ก์ง์ ๋ค์ฌ๋ค ๋ณด๋๋ก ํ์.\n\n### Ethereum์์ Gas์ ์ญํ \nEthreum Yellow paper๊ธฐ์ค์ผ๋ก Gas๋ ์ด๋๋ฆฌ์ ํ๋กํ ์ฝ์์์ ๋ค์์ ์ญํ ์ ๋ถ์ฌ๋ฐ์๋ค.\n1. ์ด๋๋ฆฌ์์ ๊ฐ๊ฒฉ ๋ณ๋์ฑ์ ๋ํ ๋ฒํผ์ญํ \n2. ๋ง์ด๋์ ๋ํ ๋ณด์์ ์ญํ (Reward ๋ง๊ณ ์ฐ์ฐ์ ๋ํ Fee)\n3. Dos๋ฑ์ ๊ณต๊ฒฉ์ ๋ง๋ ์ญํ \n\n์์ ์ญํ ์ค 1๋ฒ์ด ์ด ๊ธ์์ ๊ฐ์ฅ ์ค์ํ ๋ด์ฉ์ด๋ค.(2๋ฒ๊ณผ 3๋ฒ์ ๋ค๋ฃจ์ง ์๋๋ค)\n\n๋จผ์ ์ ๊ฐ๋ฐ์๋ค์ด ๋งํ๋ ๊ฐ์ค๋น๋ Gas Price์ Gas ์ฌ์ฉ๋(Unit์ด๋ผ๋ ํํ์ ๋น๋ฆฐ๋ค)์ ์กฐํฉ์ด๋ค. Gas Price๋ Gas 1 unit๋น ์ด๋๋ฆฌ์ ๊ฐ๊ฒฉ์ด๋ค. Gas Unit์ Ethereum์ EVM operation์์ ๋น์ฉ์ ์ฑ
์ ํ๋ ๊ณ ์ ์ ๋จ์์ด๋ค. ๊ทธ๋์ opcode๋น ์ค์ ๋น์ฉ์ Gast cost * unit/opcode๊ฐ ๋๋ค. ์ด๋ฌํ ๋น์ฉ๊ตฌ์กฐ๋ Action์ ์์ฑํ๋ user๊ฐ unit๋น Gas price๋ฅผ ์กฐ์ ํจ์ผ๋ก์ ์ด๋๋ฆฌ์์ ์ธ๋ถ๊ฐ๊ฒฉ๋ณ๋(์, ๋ฌ๋ฌ๋ฑ)์ผ๋ก๋ถํฐ ์์ ๋ก์ ์ง์์๋ ๊ธฐํ๋ฅผ ์ค๋ค.\n\n๋ง์ฝ ๊ฐ์ค๋น๋ก ์ฒ์์ ๋ด๊ณ ์ถ์ผ๋ฉด, ๋ด Action์ด ์๋ชจํ๊ฒ๋ Gas unit์ ์๋ก ์ฒ์์ ๋๋๊ณ , ์ ๋๋น ์ํ๊ฐ๊ฒฉ์ด ๋์ค๋ฉด, ํด๋น ์ํ๊ฐ๊ฒฉ์ ๋์๋๋ Gas Price๋ฅผ ์ด๋๋ฆฌ์์ผ๋ก ์
๋ ฅํ๋ฉด ๋๋ค. ์ฆ, ์ด๋๋ฆฌ์์ด ๋น์ธ์ง๋ฉด Gas price๋ฅผ ์ ๊ฒ ์ ๊ณ , ์ด๋๋ฆฌ์์ด ์ธ์ง๋ฉด p๋๊ฒ ์ ์ด ๋ด์ด์ ์ต์ข
์๋น ๊ธ์ก์ ์ฒ์์ ๋ง์ถ ์ ์๋ค \n\n์ค์ ํธ๋ ์ ์
์ ์์ฑํ๋ ๊ณผ์ ์์ ์ฐ๋ฆฌ๋ Gas์ ๊ด๋ จํ 2๊ฐ์ field์ธGas Cost์ Gas Limit์ ์
๋ ฅํ๊ฒ ๋๋๋ฐ, Cost๋ ์ด๋๋ฆฌ์๊ณผ ์ฐ๊ฒฐ๋๊ณ , Limit์ opcode๊ฐ ์๋ชจํ๋ (์ต๋)Unit์๋ก ์ ์๋๋ค.\n๊ทธ๋์ ์ต์ข
์ง๋ถํ๋ ๊ฐ์ค๋น๋ Cost * Unit Limit์ผ๋ก ๊ณ์ฐ๋๋ ๊ฒ์ด๋ค.\n\n### ๊ฒฐ๊ตญ Gas๋ EVM์์์๋ง ์กด์ฌํ๋ค.\n์ด๋๋ฆฌ์์์๋ ์ฐ์ฐ์ ํ๋๊ฒ๋, State๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ๋ ๋ชจ๋ EVM์ด๋ค.\n์ฆ ๊ฐ์ค๋ฅผ ์๋ชจํ๊ณ ์ญํ ์ ๋ชจ๋ EVM์์ ํ๋ค.\n๋์ค์ ๋์ค๊ฒ ์ง๋ง, Refundํ ๋๋ ์ด๋๋ฆฌ์์ผ๋ก ๋๋ ค์ค์ผ ํ๋ฏ๋ก ๋จ์ Gas ์ ๋์ * Gas Cost๋ฅผ ํด์ ๋ณํ๋ ๊ฐ์น๋ฅผ ๋๋ ค์ค๋ค.\n\n## Ethereum์ Gas ์ ์ฑ
\n### ์ฐ์ฐ๋น ์๋ชจ๋\nEVM์ op code๋ฅผ ์คํํ๋ ๋จธ์ ์ด๋ฉฐ, ์๋์ ๊ฐ์ด op code๋ฅผ ์คํํ ๋ ๋ง๋ค Gas Unit์ ์๋ชจํ๋๋ก ์ค๊ณ๊ฐ ๋์ด์๋ค. \n\n(From: https://github.com/djrtwo/evm-opcode-gas-costs/blob/master/opcode-gas-costs_EIP-150_revision-1e18248_2017-04-12.csv)\n\n### State ๋ณํ์ ๋ํ ๋น์ฉ๊ณผ Negative Gas \n๋๋จน๋ ํ๋ง๊ฐ์ผ๋๋ผ๊ณ , ๋ฉ๋ชจ๋ฆฌ๋ OnChain์ ๊ธฐ๋ก๋ Storage๋ฅผ ์ฝ๊ณ ์ฐ๋๋ฐ๋ ๋น์ฉ์ด ๋ ๋ค. M์ Memory, S๋ Storage์ด๋ค. ๋ค๋ค ๊ทธ๋์ ์ต์ข
์ ์ฅํ ๋ ๋ง๊ณ ๋ Memory๋ฅผ ์ฌ์ฉํ๋ค. \n\n\nNegative Gas๊ฐ ์ฌ๋ฏธ์๋ ๊ฐ๋
์ธ๋ฐ, ์ด๋๋ฆฌ์์ ์ฌ์ฉํ์ง ์๋ ์คํ ๋ฆฌ์ง๋ ์ด์นด์ดํธ์ ์ญ์ ๋ฅผ ์ฅ๋ คํ๊ธฐ ์ํด, Gas๋ฅผ ๋๋ ค์ฃผ๋ ์ ์ฑ
์ ๋ง๋ค์๋ค. ๊ธ์ ์์๋ถ์ ์ธ๊ธํ๋ Negative Gas ๋ฌธ์ ๋ฅผ ์ดํดํ๋๋ฐ ๋์์ ์ค ๊ฒ์ด๋ค.\n * Deleting a contract (SELFDESTRUCT) is worth a refund of 24,000 gas.\n * Changing a storage address from a nonzero value to zero (SSTORE[x] = 0) is worth a refund of 15,000 gas.\n> ๊ณผ์ฐ ์ด๋ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ฒ ๋ ๊น!\n\n## Gas๊ฐ ์๋น ๋๋ ๊ณผ์ .\n### Transaction Gas Limit vs. Block Gas Limit\n์ด๋๋ฆฌ์ ์์๋ 2๊ฐ์ Gas Limit์ด ์กด์ฌํ๋ค. \n์ค์ Gas์ ์๋น๋ฅผ ์ดํดํ๊ธฐ ์ํด ๋ Gas Limit์ ๋ํด ๊ฐ๋จํ ์ง๊ณ ๋์ด๊ฐ์ผํ๋ค. \n\n์ ์ฑํฐ์์ ํธ๋ ์ ์
์ ์์ฑํ๊ธฐ ์ํด ์
๋ ฅํ๋ 2๊ฐ์ ํ๋์ค ํ๋๊ฐ Gas Limit์ด๋ผ๊ณ ํ๋๋ฐ, ์ด๊ฒ์ ์ ํํ ๋ช
์นญ์ Transaction Gas Limit์ผ๋ก, ์ด ํธ๋ ์ ์
์ ์คํํ๋ ๊ณผ์ ์์ ์๋ชจํ ์ต๋ unit์๋ฅผ ๊ฐ๋ฆฌํจ๋ค. ์ด ์ ๋์๋ฅผ ๋์ด๊ฐ๋ฉด ์คํํ opcode๊ฐ ๋จ์์๋๋ผ๋ EVM์ ์คํ์ด ๋ฉ์ถ๊ฒ ๋ ๊ฒ์ด๋ค.\n\n๋๋ฒ์งธ Block Gas Limit์ ํด๋น ๋ธ๋ก๋ด์์ ํธ๋ ์ ์
๋ค์ด ์ฌ์ฉ๊ฐ๋ฅํ ์ต๋ Gas unit์์ด๋ค. ์ฆ, ์์ ํธ๋ ์ ์
์์ Block Gas Limit๋งํผ์ unit์ ์ฌ์ฉํ๋ค๋ฉด, ๋ค๋ฅธ ํธ๋ ์ ์
์ ์คํ ๋ ์ ์๋ค.(์ค์ ๋ก ๊ทธ๋ฐ์ผ์ ๋ฐ์ํ์ง ์๋๋ค. ํธ๋ ์ ์
์ด ๋ธ๋ก์ ํฌํจ๋๋ ๊ณผ์ ์์ ์ด๋ฏธ ๊ฑธ๋ฌ์ง๊ธฐ ๋๋ฌธ์)\n\n### EVM์ Gas ์ฌ์ฉ๋ฐฉ์ - Gas Pool\nGas Pool์ ๋ธ๋ก์ state๋ฅผ Processingํ ๋ ์ฌ์ฉ๋๋ ๊ฐ๋
์ด๋ค.\n์ด๋ค ๋ธ๋ก์ ์ฒ๋ฆฌํ ๋(์ ํํ๋ ๋ธ๋ก๋ด์ transaction์ ์ฒ๋ฆฌ) ์ฌ์ฉ๊ฐ๋ฅํ ๊ฐ์ค๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ pool๋ก์, ๋ธ๋ก ์ฒ๋ฆฌ ์์์ ์์ฑ๋๋ฉฐ BlockGasLimit๊ฐ์ผ๋ก ์ด๊ธฐํ๋๋ค (์ค์!)\n\n์๋ ํจ์ ํธ์ถ ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด, Gas Pool์ ์์ฑํ๊ณ ๋ธ๋ก ์์ ํธ๋ ์ ์
์ ์คํํ๊ธฐ ์ํด ๋งค ํธ๋ ์ ์
๋ง๋ค Gas Pool์์ Transaction Limit๋งํผ ๊ฐ์ค๋ฅผ ์ฌ๊ณ , ์ฌ๋ ๊ฐ์ค์์ opcode์ cost๋ฅผ ์๋ชจํ๋ ๊ฒ์ ํ์ธํ ์์๋ค. ์ดํ ๋จ์ ๊ฐ์ค๋ ํ๋ถ ๋ ๊ฐ์ค์ unit์๋ Pool์ ๋ฐํ๋๋ค.\n\n\n์ด๋ฌํ ๋ก์ง์ ํตํด ํธ๋ ์ ์
์ด ์ค์ ์ฌ์ฉํ Gas unit๋๋ง์ ๊ณ ๋ คํ์ฌ ๋ธ๋ก์ ํธ๋ ์ ์
์ ์ต๋ํ ๊ฐ๋ ์ฑ์ธ ์ ์๊ฒ ๋๋ค.\n\n### Estimate Gas์ ๋์๋ฐฉ์\nEstimateGasํจ์๋ ํธ๋ ์ ์
์ ์ฌ์ฉ๋์ ์์ธกํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ํจ์์ด๋ค. ์ด ํจ์๋ ์ต์๊ฐ์ 21000์ ๋์ผ๋ก, ๋ ์ต๋๊ฐ์ ํ์ฌ ๊ฐ์ฅ ์ต์ ์ ๋ธ๋ก(๋ง์ด๋์ ํ๊ณ ์์๊ฒฝ์ฐ ๋ง์ด๋๋์์ง๋ง ์์ง canonicalํ์ ์ด ๋์ง ์์ ๋ธ๋ก์ด ์กด์ฌํ ์ ์์ผ๋ฏ๋ก, ์ต์ ๋ง์ด๋๋ ๋ธ๋ก)์ Block Gas Limit์ผ๋ก ์ค์ ํ ํ ๋ฐ์ด๋๋ฆฌ ์์น๋ฅผ ํตํด Contractํธ์ถ์ transaction์ด ์ฑ๊ณตํ๋ ๊ฒฝ์ฐ์ Gas๋ฅผ ๋ฐํํ๋ค. \n\n\n\n์ค์ ๋ก Contractํธ์ถํจ์๋ ์ด๋ ๊ฒ ์๊ฒผ๋ค\n์ค๋ฅ๊ฐ ๋์ง ์๋๋ก ์์ balance๋ ์ต๋๋ก ์ฃผ๊ณ , ๊ฐ์คํ๋ ์ต๋๊ฐ์ผ๋ก ์ค๋ค.\n\n\n์ด๋ฐ ํธ์ถ ๋ฐฉ์์ด๋ผ๋ฉด, Gas Pool์ ์ค๋ช
ํ๋ ํจ์ ํธ์ถ ๋ถ๋ถ์์ ์ด๋ถ๋ถ์ ๊ณตํต์ผ๋ก ์ฌ์ฉํ๊ณ ์์์ ์์ ์๋ค.\n\n\n๊ทธ๋ ๋ค๋ฉด ์ฒ๋ฆฌ๋ก์ง์ ์๋์ ๊ฐ์ด ์์ฝ ํ ์ ์๋ค.\n1. ๋ฐ์ด๋๋ฆฌ ์์น๋ฅผ ํตํด ์
๋ ฅํ ๊ฐ์ค ๊ฐ๋งํผ ๊ฐ์คํ์์ ๊ฐ์ค๋ฅผ ์ฐ๋ค.\n2. ํธ๋ ์ ์
์ ์คํํด๋ณธ๋ค.\n3. ์คํ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๋ค.\n 1. halt๊ฐ ๋๋ฉด ์คํ
์ดํธ๋ฅผ ์์๋ณต์ํ๊ณ , ๋ค๋ฅธ ์
๋ ฅ์ ๋ฃ๋๋ค.\n 2. ์ฑ๊ณตํ๋ค๋ฉด ์
๋ ฅํ ๊ฐ์ ๋ฆฌํดํ๋ค (!)\n\n์ด์ํ๋ค. ์ค์ ์ฌ์ฉํ ๊ฐ์ค๊ฐ์ ๋ฆฌํดํ๋ ๊ฑฐ๋ผ๋ฉด, negative gas๋ฅผ ๊ณ ๋ คํ์ฌ ์ค์ peak์ํฉ๋ณด๋ค ์์ ๊ฐ์ด ๋ฐํ๋๊ฒ ์ง๋ง, ์ฝ๋ ๋ถ์์ ๋ฐ๋ฅด๋ฉด ์ด๋ฏธ ์ฐ ๊ฐ์ค๋ฅผ ๊ฐ์ง๊ณ ์คํ์ด ๋๋์ง ์๋๋์ง๋ฅผ ๊ฒ์ฆํด๋ณด๊ณ ํด๋น ๊ฐ์ค๋ฅผ ๋ฐํํ๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋๋ฉด ์๋๋ค!\n\n## ๋ค์ ๋ฌธ์ ๋ก ๋์๊ฐ์.\n๊ทธ๋ผ ์ธ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒ์ผ๊น?\n\n์์๋๋ ๋ถ๋ถ์ผ๋ก๋ ์์ธก์ ์ฌ์ฉ๋ state๊ฐ ์คํ ๋น์์ ๋ค๋ฅผ ๊ฒฝ์ฐ๋ค.\n์์ธก์ ์ฌ์ฉ๋ ์ต์ ๋ธ๋ก์ ๋ค์ ๋ธ๋ก์ ๋ด ํธ๋ ์ญ์
์ด ์ฒซ๋ฒ์งธ๋ก ํฌํจ๋๋ค๋ ๋ณด์ฅ์ด ์๊ธฐ ๋๋ฌธ์, ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค. \n\n๋ํ ๋ค์๋ธ๋ก์ ํฌํจ๋๋๋ผ๋, ์์ชฝ์ ํธ๋ ์ ์
์ด ๋ด๊ฐ ์ฌ์ฉํ๋ state๋ฅผ ๋ณ๊ฒฝํ์ ๊ฒฝ์ฐ์๋, ๋ฌธ์ ๊ฐ ๋ฐ์๊ฐ๋ฅํ๋ค.\n\n๋ง์ง๋ง Miningํ ๋ธ๋ก์ด uncle๋ธ๋ก์ผ๋ก ์ฒ๋ฆฌ๋์์ ๊ฒฝ์ฐ, ๋ฐ๋ก ๋ค์ ๋ธ๋ก์ ์ฒซ๋ฒ์งธ๋ก ํฌํจ๋๋ค ํ๋๋ผ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์๊ฒ์ผ๋ก ์์ํ๋ค.\n\n\n## ๋ง์น๋ฉฐ,\n์ค์ ๋ก ํ
์คํธ๋ฅผ ํด๋ณธ๊ฒ์ ์๋๊ธฐ ๋๋ฌธ์, 100% ํ์ ํ ์ ์์ง๋ง\n์ต์ํ ์ค์ ์ฌ์ฉ๋ gas๋ฅผ ๋ฆฌํดํ๋ ๊ฒ์ด ์๋๋ผ, ์
๋ ฅํ GasLimit์ผ๋ก ํธ๋ ์ ์
์ด ๋์ํ๋์ง๋ฅผ ํ์ธํ ๊ฐ์ ๋ฆฌํดํ๋ ๋ก์ง์ผ๋ก ๊ตฌํ์ด ๋์ด ์๋ค๋ ๊ฒ์ ํ์ธํ์๋ค.\n\n๋ค๋ง, Estimate Gas๋ก ์์ธกํ ๊ฐ๊ฒฉ์ ๋ง์ด๋ ์ํ์, ๋ธ๋ก์ ํฌํจ๋๋ ์๊ฐ์ ๋ฐ๋ผ ์ธ์ ๋ ๋ฌดํจํด ์ง์ ์๋ค๋ ๊ฒ์ ํ์ธํ์๊ธฐ ๋๋ฌธ์, ์ต์ด ์ธ๊ธ๋ ์ ๋ณด๋ ๋ถ์์ด ํ๋ ธ์ ํ๋ฅ ์ด ๋๋ค๋๊ฒ๋ง ํ์ธํ๊ณ , ๊ธ์ ๋ง๋ฌด๋ฆฌ ํ๊ธฐ๋ก ํ๋ค.\n\n> ์๋ชป ๋ถ์๋ ๋ด์ฉ์ด ์๊ฑฐ๋, ์์ ํ ๋ถ๋ถ์ด ์๋ค๋ฉด \n> [email protected]๋ก ์ธ์ ๋ ์ฐ๋ฝ๋ถํ๋๋ฆฝ๋๋ค.",
"json_metadata": "{\"tags\":[\"ethereum\",\"gas\",\"sct\",\"kr\",\"factom\"],\"image\":[\"https://i.imgur.com/LiiyW7x.png\",\"https://i.imgur.com/Vd9lYEM.png\",\"https://i.imgur.com/ZcUCMxP.png\",\"https://i.imgur.com/g7wkGIE.png\",\"https://i.imgur.com/mkwhh6a.png\",\"https://i.imgur.com/AbrjTLr.png\"],\"links\":[\"https://github.com/djrtwo/evm-opcode-gas-costs/blob/master/opcode-gas-costs_EIP-150_revision-1e18248_2017-04-12.csv\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}sigmoidpublished a new post: ethreumdb-in-a-nutshell2019/05/25 03:25:33
sigmoidpublished a new post: ethreumdb-in-a-nutshell
2019/05/25 03:25:33
| parent author | |
| parent permlink | ethereum |
| author | sigmoid |
| permlink | ethreumdb-in-a-nutshell |
| title | EthreumDB in a nutshell |
| body | EthreumDB in a nutshell === ์ฒด์ธ ๋ฐ์ดํฐ๊ฐ 100GB๋จ์๋ฅผ ๋์ด๊ฐ๋ฉด์, Syncํ ๋ ๋ง์ ๋ฌธ์ ๋ค์ด ๋ฐ์ํ๊ณ ์์ผ๋ฉฐ, ๋ค์ํ ๊ด๋ จ ์ฐ๊ตฌ๋ค์ด ์งํ์ค์ด์ง๋ง, ํ์ค์ ์ผ๋ก ๋ค๊ฐ์ค๊ธฐ์ ์๊ฐ์ด ์กฐ๊ธ ๋ ํ์ํ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค. ์ผ๋ง์ ๋ถํฐ ์ด๋๋ฆฌ์์ DB ๋ถ์์ ๊ณ์ ํด์๋ ์ด์ ๋, ์ด๋ป๊ฒํ๋ฉด ๋ ธ๋์ ์ฌ์ด ๋คํธ์ํฌ ๊ฐ์ ์ ์ง์ํ ์ ์์๊น ๊ณ ๋ฏผํ๋ค, ์ฒซ๋ฒ์งธ ๋์ด์ผ ํ ํ๋ค์ด ๋ฐ์ดํฐ ํฌ๊ธฐ๋ผ๋ ๊ฒ์ ์๊ฐ์ด ๋ฟ์๊ธฐ ๋๋ฌธ์ด๋ค. ํ์ฌ ๋ฐ์ดํฐ๋ค์ด ์ด๋ป๊ฒ ๊ตฌ์ฑ๋์ด ์์ฌ๊ฐ๊ณ ์๋์ง ๋ฅผ ๋ถ์ํ๊ณ , ์ข๋ ์ข์ ๋ฐฉํฅ์ผ๋ก ์ฐ๊ตฌ๋ฅผ ์งํํด ๋ณด๊ณ ์, ์ด ๊ธ์ ์์ํ๋ค. ## ๊ธฐ๋ณธ ์๋ฃํ ์๊ธฐ geth์ ๊ฒฝ์ฐ chaindata ํด๋(leveldb)์ ๋ธ๋ก ์ฒด์ธ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋๋ฐ, ์ ์ฅ๋๋ ๋ฐ์ดํฐ์ ์ข ๋ฅ๋ ๋ค์๊ณผ ๊ฐ๋ค. ### 1. State Data ํํ ๋งํ๋ ์ด๋๋ฆฌ์ ๊ณ์ ์ ์ ๋ณด์ด๋ค. key, value์ ํํ๋ก ๋ณด์๋ฉด [secure-key + hash : address] [hash , rlp(stateObject)] [roothash, rlp(trie-node) ์ ๋ฐ์ดํฐ๊ฐ ์ฃผ๋ฅผ ์ด๋ฃจ๋ฉฐ, ํํ ์ฐ๋ฆฌ๊ฐ ์ด์ผ๊ธฐํ๋ ๋จธํดํจํธ๋ฆฌ์ค(MPT) ์๋ฃ๊ตฌ์กฐ์ ๋ฐ์ดํฐ๋ฅผ ์๊ฐํ๋ฉด ๋๋ค.  DB์๋ ์๋์ ๊ฐ์ ์์ผ๋ก ์์ผ๊ฒ์ด๋ค.  >Tip 1.: ๋ธ๋ก์ฒด์ธ์ ํํ๋ค ์ง๊ฐ์ ๋์ด์๋ค๊ณ ํํํ๋๋ฐ, ๊ทธ ์ด์ ๊ฐ ์ฌ๊ธฐ์ ์๋ค. ์ง๊ฐ์ ๋จ์ง ์ด๋๋ฆฌ์ ๊ณ์ ์ ์ฃผ์์ ์๋ช ๊ธฐ๋ฅ๋ง์ ๊ฐ์ง๊ณ ์์ ๋ฟ, ํด๋น ์ฃผ์์ ์ค์ ๋ฐ์ดํฐ ์์ฒด๋ stateObject๋ผ๋ ํ์ ์ผ๋ก ๋ ธ๋์ DB์ ์กด์ฌํ๋ค. ### 2. Chain data ํํ ๋ธ๋ก์ฒด์ธ์ด๋ผ๊ณ ํํํ๋ ๋ฐ์ดํฐ๋ค์ด๋ฉฐ, ๋ค์์ ๋ฐ์ดํฐ๋ค์ด LevelDB์ ์ ์ฅ๋๋ค. #### Transaction ํธ๋ ์ ์ ์ ์๋ฃ๊ตฌ์กฐ๋ ์ด๋ ๊ฒ ์๊ฒผ๊ณ , ์๋์ ๊ทธ๋ฆผ์ฒ๋ผ ํธ๋ ์ ์ ํด์๋ ์๋ช ๊ฐ์ด ์ฑ์์ง๋ค.  ํธ๋ ์ ์ ํด์์ ์๋ช ํ๋๋ ๋ค์๊ณผ ๊ฐ์ด ๊ณ์ฐ๋๋ค.   #### Block Header ๋ธ๋ก์ฒด์ธ์ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ๊ฑฐ์ ๋๋ถ๋ถ ํค๋์ ๋ด๊ธด๋ค๊ณ ๋ณผ ์ ์๊ฒ ๋ค. ๋ ์ค๋ช ํ ํ์๋ ์์๋ฏ.  #### Block Body ๋ธ๋ก์ ๋ด๊ธธ transaction list์ uncle ๋ธ๋ก์ผ๋ก ํ์ ๋ ๋ธ๋ก์ header hash list๋ฅผ ์ ์ฅํ๋ค.  #### Reciept & Log ํธ๋ ์ ์ ์ ์คํ๊ฒฐ๊ณผ, ์๋ชจ๊ฐ์ค๋ ๋ฑ์ด ์ ์ฅ๋๋ ์์์ฆ๊ณผ, contract์ event emit์ ํ์ฉ๋ Log์ ๋ณด๋ฑ์ ํฌํจํ๋ค  > Tip 2. DB์ ์ค๋ฆฌ๋ ์ถ๊ฐ์ ๋ณด๋ค Database version, Last[Block,Hash,...]๋ sync logic์ ๊ด๋ จ๋ ํ๋๋ค์ด๋ค. ํค๋, ๋ธ๋ก๋ฑ์ด ํ์ฌ ์ด๋๊น์ง ์ฑํฌ๋์๋์ง๋ฅผ ๋ํ๋ด๋ ํ๋๋ก์, Node๊ฐ On/Off๋ ๋ DB๋ฅผ ์ฝ์ด ์ด์ด ๋ฐ๊ธฐ๋ฅผ ํ ์ ์๋ค. ## DB๋ฅผ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋๋์ด ๋ณด์๋ค ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์์ Db์ ๋๋๊ณ ์ถ์์ง๋ง, ์ฐ์ ์ฝ๋ ๊ตฌํ์ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ์์ ํ ์ ์์ด๋ณด์๊ธฐ ๋๋ฌธ์ chaindata์ Statedata๋ฅผ ๋ฐ๋ก ์ ์ฅํ๋๋ก ๋ถ๋ฆฌ๋ฅผ ํด ๋ณด์๋ค. >(์์ : https://github.com/NAKsir-melody/go-ethereum/commit/192a1412677ae0332a46f8ea17ba46ff6e79708c ์ฐธ์กฐ) #### ๋จผ์ , private network single node์์์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ฆํด ๋ณธ๋ค. self mining์ ๊ฒฝ์ฐ ๋ธ๋ก confirm ํ์ด๋ฐ์ด ๋์ด์ผ potential block์ genesis chain์ ์ถ๊ฐํ๋ค.๋ฐ๋ผ์ DB์ ์๋ณด์ผ์ ์์ผ๋ฏ๋ก caching๊ด๋ จ์ต์ ์ ๋๊ณ , confirmํ์๋ 1๋ก ๋ณ๊ฒฝํด์ผ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ํ๋ณดํ ์ ์์๋ค. ๋ฐ์ดํฐ ๊ฒ์ฆ์ ์๋ ์ฒ๋ผ ์ด์นด์ดํธ 2๊ฐ๋ฅผ ์์ฑํ ๊ฒ์ดstatedb์ ์ฐ์ฌ์ง๊ณ ,ํธ๋ ์ ์ ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ฉด, Trie๊ฐ ์ถ๊ฐ์ ์ผ๋ก ์จ์ง๋ ๊ฒ์ ํ์ธํ๋ ๋ฐฉ์์ผ๋ก ์งํํ์๋ค. chaindb์๋ ๋๋จธ์ง ๋ธ๋ก์ ๋ณด๋ง ์กด์ฌํ๋ ๊ฒ์ ํ์ธํ์๋ค. ``` //coinbase์์ฑํ๊ณ personal.newAccount("base") miner.start() miner.stop() //1๋ฒ ๋ธ๋ก์ด ๋ง์ด๋๋์์๋ dbํ์ธ //์ถ๊ฐ ๊ณ์ ์ ์์ฑํ๊ณ , ํด๋น ๊ณ์ ์ผ๋ก 1eth์ ์ก personal.newAccount("guest1") eth.sendTransaction({from:eth.coinbase, to:eth.accounts[1], value: web3.toWei(5,"ether")}) //2๋ฒ๋ธ๋ก mining miner.start() miner.stop() // statedb์ stateObject๋ฅผ ํ์ธํ์ฌ balance๊ฐ 9, 1 ether๊ฐ ๋์์ผ ํ๋ค. ``` >์ด์ ๋๊ฐ๊ณ ๋ rlp๋ฅผ ๊น์ ์๊ฒ ๋์๋ค lol  #### Public ์ฒด์ธ์ ๋ฐ์ดํฐ๋ฅผ ํ์ธํด๋ณด์ private networkํ ์คํธ์์ ์๊ฐํ์ง ๋ชปํ ๋ถ๋ถ์ db์ ๋ฐ์ดํธ๊ฐ sync์์๋ ์ผ์ด๋๋ค๋ ๊ฒ์ด๋ค. sync๋ก์ง์์ ๊ธฐ์กด์ ๋ฐ์ดํฐ๊ฐ 1๊ฐ์ db๋ก ์ด๋ฃจ์ด์ ธ ์๋ค๊ณ ๊ฐ์ ํ์ฌ stateroot๋ฅผ chaindb์์ ์์ฑํ๋ ค๊ณ ํ๋ ๋ฌธ์ ๊ฐ ์์๋ค > ์์ (https://github.com/NAKsir-melody/go-ethereum/commit/c5cf1f83d05991dc5ccf891edab350d409693141 ์ฑํฌ๊ฐ ๋์ํ๋ฉด์, ๊ฐ์ฅ ๋จผ์ ์์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ค์ด ์ฃผ๊ธฐ์ ์ผ๋ก db์ ์ฌ์ด์ฆ๋ฅผ ๋ชจ๋ํฐ๋งํด๋ดค๋ค. ``` #!/usr/bin/python3 import subprocess import time def du(path): return subprocess.check_output(['du','-sb', path]).split()[0].decode('utf-8') if __name__ == "__main__": f = open('data.csv', 'w') while True: string = du('chaindata') + '\t' + du('statedata') +'\n' print(string) f.write(string) f.flush() time.sleep(3) f.close() ``` ## ์ด๊ธฐ ๊ฒฐ๊ณผ ํ์ธ Testnet ์ฑํฌ์ด๊ธฐ์ ๊ฐ DB์ ํฌ๊ธฐ๋ณ๊ฒฝ ์ถ์ธ๋ฅผ ๊ทธ๋ํ๋ก ๋ํ๋ด๋ณด๋ฉด, ์๋์ ๊ฐ๋ค.  ํ๋์ ๋ฐ์ดํฐ๊ฐ chaindb์ด๊ณ , ๋นจ๊ฐ์ ๋ฐ์ดํฐ๊ฐ statedb์ฌ์ด์ฆ์ธ๋ฐ, statedb๊ฐ ์๋ฑํ ๋ง์ ๊ฒ์ ํ์ธํ์๋ค. ์ด๊ธฐ์๋ ๊ณ์ ์ ๋ง์ด ๋ง๋ค์ด๋๊ณ ๋ง์ ํธ๋ ์ ์ ์ด ๋ณ๋ก ์์๋? ํ๋ ์๊ฐ๋ ๋ค๊ณ , ์ด๋ฌ๋ค๊ฐ ํธ๋ ์ ์ ์ด ํ์ฑํ ๋๋ฉด, ์ญ์ ํ๊ฒ ์ง? ๋ผ๋ ์๊ฐ๋ ๋ ๋ค. ๋ฌดํผ ๋ฐ์ดํฐ ๋ถ์ ํ๊ฒฝ์ ์ฐ์ ์ฑ๊ณต์ ์ผ๋ก ๊ตฌ์ถ์ด ๋๊ฒ์ผ๋ก ํ๋จ๋๋ค. ## ์ต์ข ๊ฒฐ๊ณผ๋ ์งํ์ค, ๊ฐ์ธ์ ์ผ๋ก ์งํ์ค(๋ฐํฌ๊ธฐ์ค)์ด๋ค. ์ฌ์ฉํ๋ ์ค๋๋ ๋ ธํธ๋ถ์ ๋ฆฌ์์ค ๋ฌธ์ ๋ก ๋์ด์ ์งํํ๊ธฐ ํ๋ค๊ฒ ๊ฐ๋ค. ๋ค๋ง, ์ด๋ฌํ ์๋๋ฅผ ํตํด ๋ฌด์ธ๊ฐ sync๋ฐฉ์์ ์ข๋ ๋ณํ์ํฌ์ ์์๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋๋๊ฒ ๊ฐ๋ค. ์ ๋ฆฌ๋์ง ์์ ์ค์ผ์น์ด์ง๋ง, ์ฒซ์ฑํฌ๋๋ ํ์๋ถ๋ถ์ ์ฒด์ธ๋ฐ์ดํฐ๊ฐ ํ์์๊ฒ ํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๋ ์ค์ด๋ค. ์ฑํฌ ์ดํ์๋ ์์ฒญ์ ๋ฐ๋ผ lesํ๋กํ ์ฝ์ ODR๋ก ์ฝ์ด์์ค์ผ ํ ๊ฒ์ด๋ค. ๊ทธ๋ฐ๋ฐ ์๊ฐํด๋ณด๋ฉด parity warp์ฑํฌ๋ ๊ทธ๋ค์ง ๋ค๋ฅธ๊ฑฐ ๊ฐ์ง๋ ์๋ค.  ## ๋ง์น๋ฉฐ, ๋ฐฑ์์ํ์ค์ ํด์จ ์ ๋ฌด๋ฅผ ์ ๋ฆฌํ๋ ์ฐจ์์์ ๊ธ์ ์ ๋ฆฌํด๋ณด์๋๋ฐ, ์ด๊ฒ ์ฐ๊ตฌ์ธ์ง, ํผ์๋๊ธฐ์ ์ง์์ธ์ง ์กฐ๊ธ ํท๊ฐ๋ฆฐ๋ค. ์ด์ ํ์ฌ์์ ๋๋ผ์ง ๋ชปํ๋ ๋ฆฌ์์ค์ ๋ถ์ฌ์ ๋ํ ์์ฌ์๋ ์๊ณ . ๋ธ๋ก์ฒด์ธ ์ ํ๋๊ณ ์ ๋ง ๋ง์ ์ง๋ฌธ์ ๋ฐ์๋ค. ๋งค๋ฒ ์ค๋ช ํ ๋๋ง๋ค ์ฅํฉ ํ์๋๋ฐ, ์๊ทผ๋ ์กฐ๊ธ์ฉ ์ ๋ฆฌ๊ฐ ๋์๋ค. "๋์ด ๋ ๊ฒ ๊ฐ์์ ๋์๋๋ฐ, ์ฝ๋๊ฐ ๋๋ฌด ์ฌ๋ฐ์ด์ ๋๋ฌ ์์์ต๋๋ค." > ์๋ชป ๋ถ์๋ ๋ด์ฉ์ด ์๊ฑฐ๋, ์์ ํ ๋ถ๋ถ์ด ์๋ค๋ฉด > [email protected]๋ก ์ธ์ ๋ ์ฐ๋ฝ๋ถํ๋๋ฆฝ๋๋ค. |
| json metadata | {"tags":["ethereum","sct","kr"],"image":["https://i.imgur.com/7JizzH2.png","https://i.imgur.com/6HIWqhe.png","https://i.imgur.com/41CHHBo.png","https://i.imgur.com/p4mwdXr.png","https://i.imgur.com/TjLlCXO.png","https://i.imgur.com/FpcJasQ.png","https://i.imgur.com/xvcTgT0.png","https://i.imgur.com/qlUbFsn.png","https://i.imgur.com/HrwRXMq.png","https://i.imgur.com/KLB4mAY.png","https://i.imgur.com/ayvlFcD.png"],"links":["https://github.com/NAKsir-melody/go-ethereum/commit/192a1412677ae0332a46f8ea17ba46ff6e79708c","https://github.com/NAKsir-melody/go-ethereum/commit/c5cf1f83d05991dc5ccf891edab350d409693141"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #33205875/Trx d7cca92d69ad997887e42368bb8bbfec341a7b43 |
View Raw JSON Data
{
"trx_id": "d7cca92d69ad997887e42368bb8bbfec341a7b43",
"block": 33205875,
"trx_in_block": 5,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-25T03:25:33",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "ethereum",
"author": "sigmoid",
"permlink": "ethreumdb-in-a-nutshell",
"title": "EthreumDB in a nutshell",
"body": "EthreumDB in a nutshell\n===\n\n์ฒด์ธ ๋ฐ์ดํฐ๊ฐ 100GB๋จ์๋ฅผ ๋์ด๊ฐ๋ฉด์, \nSyncํ ๋ ๋ง์ ๋ฌธ์ ๋ค์ด ๋ฐ์ํ๊ณ ์์ผ๋ฉฐ, ๋ค์ํ ๊ด๋ จ ์ฐ๊ตฌ๋ค์ด ์งํ์ค์ด์ง๋ง, ํ์ค์ ์ผ๋ก ๋ค๊ฐ์ค๊ธฐ์ ์๊ฐ์ด ์กฐ๊ธ ๋ ํ์ํ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.\n\n์ผ๋ง์ ๋ถํฐ ์ด๋๋ฆฌ์์ DB ๋ถ์์ ๊ณ์ ํด์๋ ์ด์ ๋, ์ด๋ป๊ฒํ๋ฉด ๋
ธ๋์ ์ฌ์ด ๋คํธ์ํฌ ๊ฐ์
์ ์ง์ํ ์ ์์๊น ๊ณ ๋ฏผํ๋ค, ์ฒซ๋ฒ์งธ ๋์ด์ผ ํ ํ๋ค์ด ๋ฐ์ดํฐ ํฌ๊ธฐ๋ผ๋ ๊ฒ์ ์๊ฐ์ด ๋ฟ์๊ธฐ ๋๋ฌธ์ด๋ค.\n\nํ์ฌ ๋ฐ์ดํฐ๋ค์ด ์ด๋ป๊ฒ ๊ตฌ์ฑ๋์ด ์์ฌ๊ฐ๊ณ ์๋์ง ๋ฅผ ๋ถ์ํ๊ณ , ์ข๋ ์ข์ ๋ฐฉํฅ์ผ๋ก ์ฐ๊ตฌ๋ฅผ ์งํํด ๋ณด๊ณ ์, ์ด ๊ธ์ ์์ํ๋ค.\n\n## ๊ธฐ๋ณธ ์๋ฃํ ์๊ธฐ\n\ngeth์ ๊ฒฝ์ฐ chaindata ํด๋(leveldb)์ ๋ธ๋ก ์ฒด์ธ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋๋ฐ, ์ ์ฅ๋๋ ๋ฐ์ดํฐ์ ์ข
๋ฅ๋ ๋ค์๊ณผ ๊ฐ๋ค.\n\n### 1. State Data\nํํ ๋งํ๋ ์ด๋๋ฆฌ์ ๊ณ์ ์ ์ ๋ณด์ด๋ค.\nkey, value์ ํํ๋ก ๋ณด์๋ฉด\n[secure-key + hash : address]\n[hash , rlp(stateObject)]\n[roothash, rlp(trie-node)\n์ ๋ฐ์ดํฐ๊ฐ ์ฃผ๋ฅผ ์ด๋ฃจ๋ฉฐ, ํํ ์ฐ๋ฆฌ๊ฐ ์ด์ผ๊ธฐํ๋ ๋จธํดํจํธ๋ฆฌ์ค(MPT) ์๋ฃ๊ตฌ์กฐ์ ๋ฐ์ดํฐ๋ฅผ ์๊ฐํ๋ฉด ๋๋ค.\n\n\nDB์๋ ์๋์ ๊ฐ์ ์์ผ๋ก ์์ผ๊ฒ์ด๋ค.\n\n>Tip 1.: ๋ธ๋ก์ฒด์ธ์ ํํ๋ค ์ง๊ฐ์ ๋์ด์๋ค๊ณ ํํํ๋๋ฐ, ๊ทธ ์ด์ ๊ฐ ์ฌ๊ธฐ์ ์๋ค. ์ง๊ฐ์ ๋จ์ง ์ด๋๋ฆฌ์ ๊ณ์ ์ ์ฃผ์์ ์๋ช
๊ธฐ๋ฅ๋ง์ ๊ฐ์ง๊ณ ์์ ๋ฟ, ํด๋น ์ฃผ์์ ์ค์ ๋ฐ์ดํฐ ์์ฒด๋ stateObject๋ผ๋ ํ์
์ผ๋ก ๋
ธ๋์ DB์ ์กด์ฌํ๋ค. \n\n\n### 2. Chain data\nํํ ๋ธ๋ก์ฒด์ธ์ด๋ผ๊ณ ํํํ๋ ๋ฐ์ดํฐ๋ค์ด๋ฉฐ, ๋ค์์ ๋ฐ์ดํฐ๋ค์ด LevelDB์ ์ ์ฅ๋๋ค.\n\n#### Transaction\nํธ๋ ์ ์
์ ์๋ฃ๊ตฌ์กฐ๋ ์ด๋ ๊ฒ ์๊ฒผ๊ณ , ์๋์ ๊ทธ๋ฆผ์ฒ๋ผ ํธ๋ ์ ์
ํด์๋ ์๋ช
๊ฐ์ด ์ฑ์์ง๋ค.\n\n\nํธ๋ ์ ์
ํด์์ ์๋ช
ํ๋๋ ๋ค์๊ณผ ๊ฐ์ด ๊ณ์ฐ๋๋ค.\n\n\n\n\n#### Block Header\n๋ธ๋ก์ฒด์ธ์ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ๊ฑฐ์ ๋๋ถ๋ถ ํค๋์ ๋ด๊ธด๋ค๊ณ ๋ณผ ์ ์๊ฒ ๋ค. ๋ ์ค๋ช
ํ ํ์๋ ์์๋ฏ.\n\n\n\n\n#### Block Body\n๋ธ๋ก์ ๋ด๊ธธ transaction list์ uncle ๋ธ๋ก์ผ๋ก ํ์ ๋ ๋ธ๋ก์ header hash list๋ฅผ ์ ์ฅํ๋ค.\n\n\n\n#### Reciept & Log\nํธ๋ ์ ์
์ ์คํ๊ฒฐ๊ณผ, ์๋ชจ๊ฐ์ค๋ ๋ฑ์ด ์ ์ฅ๋๋ ์์์ฆ๊ณผ, contract์ event emit์ ํ์ฉ๋ Log์ ๋ณด๋ฑ์ ํฌํจํ๋ค\n\n\n\n> Tip 2. DB์ ์ค๋ฆฌ๋ ์ถ๊ฐ์ ๋ณด๋ค\nDatabase version, Last[Block,Hash,...]๋ sync logic์ ๊ด๋ จ๋ ํ๋๋ค์ด๋ค.\nํค๋, ๋ธ๋ก๋ฑ์ด ํ์ฌ ์ด๋๊น์ง ์ฑํฌ๋์๋์ง๋ฅผ ๋ํ๋ด๋ ํ๋๋ก์, Node๊ฐ On/Off๋ ๋ DB๋ฅผ ์ฝ์ด ์ด์ด ๋ฐ๊ธฐ๋ฅผ ํ ์ ์๋ค.\n\n\n## DB๋ฅผ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋๋์ด ๋ณด์๋ค\n\n๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์์ Db์ ๋๋๊ณ ์ถ์์ง๋ง, ์ฐ์ ์ฝ๋ ๊ตฌํ์ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ์์
ํ ์ ์์ด๋ณด์๊ธฐ ๋๋ฌธ์ chaindata์ Statedata๋ฅผ ๋ฐ๋ก ์ ์ฅํ๋๋ก ๋ถ๋ฆฌ๋ฅผ ํด ๋ณด์๋ค.\n>(์์ : https://github.com/NAKsir-melody/go-ethereum/commit/192a1412677ae0332a46f8ea17ba46ff6e79708c ์ฐธ์กฐ)\n\n#### ๋จผ์ , private network single node์์์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ฆํด ๋ณธ๋ค.\nself mining์ ๊ฒฝ์ฐ ๋ธ๋ก confirm ํ์ด๋ฐ์ด ๋์ด์ผ potential block์ genesis chain์ ์ถ๊ฐํ๋ค.๋ฐ๋ผ์ DB์ ์๋ณด์ผ์ ์์ผ๋ฏ๋ก caching๊ด๋ จ์ต์
์ ๋๊ณ , confirmํ์๋ 1๋ก ๋ณ๊ฒฝํด์ผ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ํ๋ณดํ ์ ์์๋ค.\n \n๋ฐ์ดํฐ ๊ฒ์ฆ์ ์๋ ์ฒ๋ผ ์ด์นด์ดํธ 2๊ฐ๋ฅผ ์์ฑํ ๊ฒ์ดstatedb์ ์ฐ์ฌ์ง๊ณ ,ํธ๋ ์ ์
์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ฉด, Trie๊ฐ ์ถ๊ฐ์ ์ผ๋ก ์จ์ง๋ ๊ฒ์ ํ์ธํ๋ ๋ฐฉ์์ผ๋ก ์งํํ์๋ค. chaindb์๋ ๋๋จธ์ง ๋ธ๋ก์ ๋ณด๋ง ์กด์ฌํ๋ ๊ฒ์ ํ์ธํ์๋ค.\n```\n//coinbase์์ฑํ๊ณ \npersonal.newAccount(\"base\")\nminer.start()\nminer.stop()\n//1๋ฒ ๋ธ๋ก์ด ๋ง์ด๋๋์์๋ dbํ์ธ\n\n//์ถ๊ฐ ๊ณ์ ์ ์์ฑํ๊ณ , ํด๋น ๊ณ์ ์ผ๋ก 1eth์ ์ก\npersonal.newAccount(\"guest1\")\neth.sendTransaction({from:eth.coinbase, to:eth.accounts[1], value: web3.toWei(5,\"ether\")})\n\n//2๋ฒ๋ธ๋ก mining \nminer.start()\nminer.stop()\n\n// statedb์ stateObject๋ฅผ ํ์ธํ์ฌ balance๊ฐ 9, 1 ether๊ฐ ๋์์ผ ํ๋ค.\n```\n\n>์ด์ ๋๊ฐ๊ณ ๋ rlp๋ฅผ ๊น์ ์๊ฒ ๋์๋ค lol\n\n\n\n\n\n#### Public ์ฒด์ธ์ ๋ฐ์ดํฐ๋ฅผ ํ์ธํด๋ณด์ \nprivate networkํ
์คํธ์์ ์๊ฐํ์ง ๋ชปํ ๋ถ๋ถ์ db์
๋ฐ์ดํธ๊ฐ sync์์๋ ์ผ์ด๋๋ค๋ ๊ฒ์ด๋ค. sync๋ก์ง์์ ๊ธฐ์กด์ ๋ฐ์ดํฐ๊ฐ 1๊ฐ์ db๋ก ์ด๋ฃจ์ด์ ธ ์๋ค๊ณ ๊ฐ์ ํ์ฌ stateroot๋ฅผ chaindb์์ ์์ฑํ๋ ค๊ณ ํ๋ ๋ฌธ์ ๊ฐ ์์๋ค\n> ์์ (https://github.com/NAKsir-melody/go-ethereum/commit/c5cf1f83d05991dc5ccf891edab350d409693141\n\n์ฑํฌ๊ฐ ๋์ํ๋ฉด์, ๊ฐ์ฅ ๋จผ์ ์์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ค์ด ์ฃผ๊ธฐ์ ์ผ๋ก db์ ์ฌ์ด์ฆ๋ฅผ ๋ชจ๋ํฐ๋งํด๋ดค๋ค.\n\n```\n#!/usr/bin/python3\n\nimport subprocess\nimport time\n\ndef du(path):\n return subprocess.check_output(['du','-sb', path]).split()[0].decode('utf-8')\n\nif __name__ == \"__main__\":\n f = open('data.csv', 'w')\n while True:\n string = du('chaindata') + '\\t' + du('statedata') +'\\n'\n print(string)\n f.write(string)\n f.flush()\n time.sleep(3)\n f.close()\n\n```\n\n\n## ์ด๊ธฐ ๊ฒฐ๊ณผ ํ์ธ\n\nTestnet ์ฑํฌ์ด๊ธฐ์ ๊ฐ DB์ ํฌ๊ธฐ๋ณ๊ฒฝ ์ถ์ธ๋ฅผ ๊ทธ๋ํ๋ก ๋ํ๋ด๋ณด๋ฉด, ์๋์ ๊ฐ๋ค.\n\n\nํ๋์ ๋ฐ์ดํฐ๊ฐ chaindb์ด๊ณ , ๋นจ๊ฐ์ ๋ฐ์ดํฐ๊ฐ statedb์ฌ์ด์ฆ์ธ๋ฐ, statedb๊ฐ ์๋ฑํ ๋ง์ ๊ฒ์ ํ์ธํ์๋ค.\n์ด๊ธฐ์๋ ๊ณ์ ์ ๋ง์ด ๋ง๋ค์ด๋๊ณ ๋ง์ ํธ๋ ์ ์
์ด ๋ณ๋ก ์์๋? ํ๋ ์๊ฐ๋ ๋ค๊ณ ,\n์ด๋ฌ๋ค๊ฐ ํธ๋ ์ ์
์ด ํ์ฑํ ๋๋ฉด, ์ญ์ ํ๊ฒ ์ง? ๋ผ๋ ์๊ฐ๋ ๋ ๋ค. ๋ฌดํผ ๋ฐ์ดํฐ ๋ถ์ ํ๊ฒฝ์ ์ฐ์ ์ฑ๊ณต์ ์ผ๋ก ๊ตฌ์ถ์ด ๋๊ฒ์ผ๋ก ํ๋จ๋๋ค.\n\n\n## ์ต์ข
๊ฒฐ๊ณผ๋ ์งํ์ค, \n๊ฐ์ธ์ ์ผ๋ก ์งํ์ค(๋ฐํฌ๊ธฐ์ค)์ด๋ค. ์ฌ์ฉํ๋ ์ค๋๋ ๋
ธํธ๋ถ์ ๋ฆฌ์์ค ๋ฌธ์ ๋ก ๋์ด์ ์งํํ๊ธฐ ํ๋ค๊ฒ ๊ฐ๋ค. ๋ค๋ง, ์ด๋ฌํ ์๋๋ฅผ ํตํด ๋ฌด์ธ๊ฐ sync๋ฐฉ์์ ์ข๋ ๋ณํ์ํฌ์ ์์๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋๋๊ฒ ๊ฐ๋ค.\n\n์ ๋ฆฌ๋์ง ์์ ์ค์ผ์น์ด์ง๋ง, ์ฒซ์ฑํฌ๋๋ ํ์๋ถ๋ถ์ ์ฒด์ธ๋ฐ์ดํฐ๊ฐ ํ์์๊ฒ ํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๋ ์ค์ด๋ค. ์ฑํฌ ์ดํ์๋ ์์ฒญ์ ๋ฐ๋ผ lesํ๋กํ ์ฝ์ ODR๋ก ์ฝ์ด์์ค์ผ ํ ๊ฒ์ด๋ค. ๊ทธ๋ฐ๋ฐ ์๊ฐํด๋ณด๋ฉด parity warp์ฑํฌ๋ ๊ทธ๋ค์ง ๋ค๋ฅธ๊ฑฐ ๊ฐ์ง๋ ์๋ค.\n\n\n\n## ๋ง์น๋ฉฐ,\n๋ฐฑ์์ํ์ค์ ํด์จ ์
๋ฌด๋ฅผ ์ ๋ฆฌํ๋ ์ฐจ์์์ ๊ธ์ ์ ๋ฆฌํด๋ณด์๋๋ฐ,\n์ด๊ฒ ์ฐ๊ตฌ์ธ์ง, ํผ์๋๊ธฐ์ ์ง์์ธ์ง ์กฐ๊ธ ํท๊ฐ๋ฆฐ๋ค.\n์ด์ ํ์ฌ์์ ๋๋ผ์ง ๋ชปํ๋ ๋ฆฌ์์ค์ ๋ถ์ฌ์ ๋ํ ์์ฌ์๋ ์๊ณ .\n๋ธ๋ก์ฒด์ธ ์ ํ๋๊ณ ์ ๋ง ๋ง์ ์ง๋ฌธ์ ๋ฐ์๋ค. ๋งค๋ฒ ์ค๋ช
ํ ๋๋ง๋ค ์ฅํฉ ํ์๋๋ฐ, ์๊ทผ๋ ์กฐ๊ธ์ฉ ์ ๋ฆฌ๊ฐ ๋์๋ค.\n\n\"๋์ด ๋ ๊ฒ ๊ฐ์์ ๋์๋๋ฐ, ์ฝ๋๊ฐ ๋๋ฌด ์ฌ๋ฐ์ด์ ๋๋ฌ ์์์ต๋๋ค.\"\n\n> ์๋ชป ๋ถ์๋ ๋ด์ฉ์ด ์๊ฑฐ๋, ์์ ํ ๋ถ๋ถ์ด ์๋ค๋ฉด \n> [email protected]๋ก ์ธ์ ๋ ์ฐ๋ฝ๋ถํ๋๋ฆฝ๋๋ค.",
"json_metadata": "{\"tags\":[\"ethereum\",\"sct\",\"kr\"],\"image\":[\"https://i.imgur.com/7JizzH2.png\",\"https://i.imgur.com/6HIWqhe.png\",\"https://i.imgur.com/41CHHBo.png\",\"https://i.imgur.com/p4mwdXr.png\",\"https://i.imgur.com/TjLlCXO.png\",\"https://i.imgur.com/FpcJasQ.png\",\"https://i.imgur.com/xvcTgT0.png\",\"https://i.imgur.com/qlUbFsn.png\",\"https://i.imgur.com/HrwRXMq.png\",\"https://i.imgur.com/KLB4mAY.png\",\"https://i.imgur.com/ayvlFcD.png\"],\"links\":[\"https://github.com/NAKsir-melody/go-ethereum/commit/192a1412677ae0332a46f8ea17ba46ff6e79708c\",\"https://github.com/NAKsir-melody/go-ethereum/commit/c5cf1f83d05991dc5ccf891edab350d409693141\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}2019/05/25 03:25:15
2019/05/25 03:25:15
| parent author | ayogom |
| parent permlink | re-sigmoid-ethreumdb-in-a-nutshell-20190521t004330101z |
| author | sigmoid |
| permlink | ps1iu1 |
| title | |
| body | ๊ณ ๋ง์ต๋๋ค^^ |
| json metadata | {"tags":["ethereum"],"app":"steemit/0.1"} |
| Transaction Info | Block #33205869/Trx ba11c84de679b58801b53a3cb28c32c1e8e10e21 |
View Raw JSON Data
{
"trx_id": "ba11c84de679b58801b53a3cb28c32c1e8e10e21",
"block": 33205869,
"trx_in_block": 9,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-25T03:25:15",
"op": [
"comment",
{
"parent_author": "ayogom",
"parent_permlink": "re-sigmoid-ethreumdb-in-a-nutshell-20190521t004330101z",
"author": "sigmoid",
"permlink": "ps1iu1",
"title": "",
"body": "๊ณ ๋ง์ต๋๋ค^^",
"json_metadata": "{\"tags\":[\"ethereum\"],\"app\":\"steemit/0.1\"}"
}
]
}skanupvoted (100.00%) @sigmoid / ethreumdb-in-a-nutshell2019/05/21 13:36:24
skanupvoted (100.00%) @sigmoid / ethreumdb-in-a-nutshell
2019/05/21 13:36:24
| voter | skan |
| author | sigmoid |
| permlink | ethreumdb-in-a-nutshell |
| weight | 10000 (100.00%) |
| Transaction Info | Block #33102968/Trx fe5272727778d24b6a0793bc3b20c31e0bd82b7b |
View Raw JSON Data
{
"trx_id": "fe5272727778d24b6a0793bc3b20c31e0bd82b7b",
"block": 33102968,
"trx_in_block": 9,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-21T13:36:24",
"op": [
"vote",
{
"voter": "skan",
"author": "sigmoid",
"permlink": "ethreumdb-in-a-nutshell",
"weight": 10000
}
]
}bluesniperupvoted (0.08%) @sigmoid / all-about-ethereum-gas2019/05/21 12:46:33
bluesniperupvoted (0.08%) @sigmoid / all-about-ethereum-gas
2019/05/21 12:46:33
| voter | bluesniper |
| author | sigmoid |
| permlink | all-about-ethereum-gas |
| weight | 8 (0.08%) |
| Transaction Info | Block #33101972/Trx 225dc4a33b4d4926cf62244150b0460ac513b63a |
View Raw JSON Data
{
"trx_id": "225dc4a33b4d4926cf62244150b0460ac513b63a",
"block": 33101972,
"trx_in_block": 32,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-21T12:46:33",
"op": [
"vote",
{
"voter": "bluesniper",
"author": "sigmoid",
"permlink": "all-about-ethereum-gas",
"weight": 8
}
]
}serginoupvoted (2.00%) @sigmoid / all-about-ethereum-gas2019/05/21 12:46:15
serginoupvoted (2.00%) @sigmoid / all-about-ethereum-gas
2019/05/21 12:46:15
| voter | sergino |
| author | sigmoid |
| permlink | all-about-ethereum-gas |
| weight | 200 (2.00%) |
| Transaction Info | Block #33101966/Trx 4a9019178147ae54fb23f08dd098e7cd678494f4 |
View Raw JSON Data
{
"trx_id": "4a9019178147ae54fb23f08dd098e7cd678494f4",
"block": 33101966,
"trx_in_block": 59,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-21T12:46:15",
"op": [
"vote",
{
"voter": "sergino",
"author": "sigmoid",
"permlink": "all-about-ethereum-gas",
"weight": 200
}
]
}sigmoidpublished a new post: all-about-ethereum-gas2019/05/21 12:39:12
sigmoidpublished a new post: all-about-ethereum-gas
2019/05/21 12:39:12
| parent author | |
| parent permlink | factom |
| author | sigmoid |
| permlink | all-about-ethereum-gas |
| title | All about Ethereum Gas |
| body | All about Ethereum Gas === ์์ฆ ์ฃผ๋ณ ๊ฐ๋ฐ์๋ค ์ฌ์ด์์ ํํ ๋ฃ๋ฆฌ๋ ์๋ฆฌ๋, "์ปจํธ๋ ํธ๋ฅผ ์งฐ๋๋ฐ ์ ๋๋ก ๋์ํ์ง ์์์ ํ์ธํด ๋ณด๋ Gas๋ฌธ์ ์๋ค." ์ธ ๊ฒ ๊ฐ๋ค. ์ผ๋ง์ facebook์๋ EstimateGas๋งํผ Gas๋ฅผ ์ค์ ํด์ ํธ๋ ์ ์ ์ ๋ณด๋๋๋ฐ, negative gas๊ฐ ๋ฐ์ํ๋ ํธ๋ ์ ์ ์ด์ฌ์ ์ต์ข ์ฌ์ฉ๋์ด ์ ๊ฒ ๊ณ์ฐ๋๊ฒ์ด๋๋ผ. ๊ทธ๋์ ์ค์ ์คํ์์๋ gas limit์ ๋์ด๊ฐ๋ ์๊ฐ์ด ๋ฐ์ํ๋๋ผ๋ผ๋ ํฅ๋ฏธ๋ก์ด ์ด์ผ๊ธฐ๋ ๋ค์๋ค. ์ฌ์ค Gas์ ์ฌ์ฉ๋์, ๊ณ์ฝ์ ์ฝ๋๊ฐ ์๋ชจํ๋ ๋ + OnChain state์ ๋ณํ๋์ด ํจ๊ป ์กด์ฌํ๋ ๊ฐ๋ ์ด๊ธฐ ๋๋ฌธ์, ์ ํํ๊ฒ ์์ธกํ๊ธฐ๊ฐ ์ด๋ ต๋ค. ์ฌ์ง์ด Web3์์ ์ ๊ณตํ๋ ํจ์์ด๋ฆ๋ EstimateGas ์ด์ง ์์๊ฐ? ๊ทธ๋์ ์ค๋์ ์ด๋๋ฆฌ์์ Gas์ EVM ์์ ์ฒ๋ฆฌ ๋ก์ง์ ์ ๋ฆฌํด๋ณด๊ณ EsimateGasํจ์์ ๋์์๋ฆฌ๋ฅผ ํ์ ํด๋ณด๊ณ ์ ์ด ๊ธ์ ์์ํ์๋ค. ## Gas๊ฐ ๋ญ์ผ? ์ด๋๋ฆฌ์์ ๋ด์ฌ๊ฐ์น๋ ๋น์ฐํ Ether์ธ๋ฐ ์ Gas๋ผ๋ ๋จ์ด๋ฅผ ๋ง๋ค์ด ์ฐ๋ฆฌ๋ฅผ ํท๊ฐ๋ฆฌ๊ฒ ํ ๊น? ์ด๋ถ๋ถ์ ๋จผ์ ๋ช ํํ๊ฒ ์ดํดํ๊ณ ๊ด๋ฆฌ ๋ก์ง์ ๋ค์ฌ๋ค ๋ณด๋๋ก ํ์. ### Ethereum์์ Gas์ ์ญํ Ethreum Yellow paper๊ธฐ์ค์ผ๋ก Gas๋ ์ด๋๋ฆฌ์ ํ๋กํ ์ฝ์์์ ๋ค์์ ์ญํ ์ ๋ถ์ฌ๋ฐ์๋ค. 1. ์ด๋๋ฆฌ์์ ๊ฐ๊ฒฉ ๋ณ๋์ฑ์ ๋ํ ๋ฒํผ์ญํ 2. ๋ง์ด๋์ ๋ํ ๋ณด์์ ์ญํ (Reward ๋ง๊ณ ์ฐ์ฐ์ ๋ํ Fee) 3. Dos๋ฑ์ ๊ณต๊ฒฉ์ ๋ง๋ ์ญํ ์์ ์ญํ ์ค 1๋ฒ์ด ์ด ๊ธ์์ ๊ฐ์ฅ ์ค์ํ ๋ด์ฉ์ด๋ค.(2๋ฒ๊ณผ 3๋ฒ์ ๋ค๋ฃจ์ง ์๋๋ค) ๋จผ์ ์ ๊ฐ๋ฐ์๋ค์ด ๋งํ๋ ๊ฐ์ค๋น๋ Gas Price์ Gas ์ฌ์ฉ๋(Unit์ด๋ผ๋ ํํ์ ๋น๋ฆฐ๋ค)์ ์กฐํฉ์ด๋ค. Gas Price๋ Gas 1 unit๋น ์ด๋๋ฆฌ์ ๊ฐ๊ฒฉ์ด๋ค. Gas Unit์ Ethereum์ EVM operation์์ ๋น์ฉ์ ์ฑ ์ ํ๋ ๊ณ ์ ์ ๋จ์์ด๋ค. ๊ทธ๋์ opcode๋น ์ค์ ๋น์ฉ์ Gast cost * unit/opcode๊ฐ ๋๋ค. ์ด๋ฌํ ๋น์ฉ๊ตฌ์กฐ๋ Action์ ์์ฑํ๋ user๊ฐ unit๋น Gas price๋ฅผ ์กฐ์ ํจ์ผ๋ก์ ์ด๋๋ฆฌ์์ ์ธ๋ถ๊ฐ๊ฒฉ๋ณ๋(์, ๋ฌ๋ฌ๋ฑ)์ผ๋ก๋ถํฐ ์์ ๋ก์ ์ง์์๋ ๊ธฐํ๋ฅผ ์ค๋ค. ๋ง์ฝ ๊ฐ์ค๋น๋ก ์ฒ์์ ๋ด๊ณ ์ถ์ผ๋ฉด, ๋ด Action์ด ์๋ชจํ๊ฒ๋ Gas unit์ ์๋ก ์ฒ์์ ๋๋๊ณ , ์ ๋๋น ์ํ๊ฐ๊ฒฉ์ด ๋์ค๋ฉด, ํด๋น ์ํ๊ฐ๊ฒฉ์ ๋์๋๋ Gas Price๋ฅผ ์ด๋๋ฆฌ์์ผ๋ก ์ ๋ ฅํ๋ฉด ๋๋ค. ์ฆ, ์ด๋๋ฆฌ์์ด ๋น์ธ์ง๋ฉด Gas price๋ฅผ ์ ๊ฒ ์ ๊ณ , ์ด๋๋ฆฌ์์ด ์ธ์ง๋ฉด p๋๊ฒ ์ ์ด ๋ด์ด์ ์ต์ข ์๋น ๊ธ์ก์ ์ฒ์์ ๋ง์ถ ์ ์๋ค ์ค์ ํธ๋ ์ ์ ์ ์์ฑํ๋ ๊ณผ์ ์์ ์ฐ๋ฆฌ๋ Gas์ ๊ด๋ จํ 2๊ฐ์ field์ธGas Cost์ Gas Limit์ ์ ๋ ฅํ๊ฒ ๋๋๋ฐ, Cost๋ ์ด๋๋ฆฌ์๊ณผ ์ฐ๊ฒฐ๋๊ณ , Limit์ opcode๊ฐ ์๋ชจํ๋ (์ต๋)Unit์๋ก ์ ์๋๋ค. ๊ทธ๋์ ์ต์ข ์ง๋ถํ๋ ๊ฐ์ค๋น๋ Cost * Unit Limit์ผ๋ก ๊ณ์ฐ๋๋ ๊ฒ์ด๋ค. ### ๊ฒฐ๊ตญ Gas๋ EVM์์์๋ง ์กด์ฌํ๋ค. ์ด๋๋ฆฌ์์์๋ ์ฐ์ฐ์ ํ๋๊ฒ๋, State๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ๋ ๋ชจ๋ EVM์ด๋ค. ์ฆ ๊ฐ์ค๋ฅผ ์๋ชจํ๊ณ ์ญํ ์ ๋ชจ๋ EVM์์ ํ๋ค. ๋์ค์ ๋์ค๊ฒ ์ง๋ง, Refundํ ๋๋ ์ด๋๋ฆฌ์์ผ๋ก ๋๋ ค์ค์ผ ํ๋ฏ๋ก ๋จ์ Gas ์ ๋์ * Gas Cost๋ฅผ ํด์ ๋ณํ๋ ๊ฐ์น๋ฅผ ๋๋ ค์ค๋ค. ## Ethereum์ Gas ์ ์ฑ ### ์ฐ์ฐ๋น ์๋ชจ๋ EVM์ op code๋ฅผ ์คํํ๋ ๋จธ์ ์ด๋ฉฐ, ์๋์ ๊ฐ์ด op code๋ฅผ ์คํํ ๋ ๋ง๋ค Gas Unit์ ์๋ชจํ๋๋ก ์ค๊ณ๊ฐ ๋์ด์๋ค.  (From: https://github.com/djrtwo/evm-opcode-gas-costs/blob/master/opcode-gas-costs_EIP-150_revision-1e18248_2017-04-12.csv) ### State ๋ณํ์ ๋ํ ๋น์ฉ๊ณผ Negative Gas ๋๋จน๋ ํ๋ง๊ฐ์ผ๋๋ผ๊ณ , ๋ฉ๋ชจ๋ฆฌ๋ OnChain์ ๊ธฐ๋ก๋ Storage๋ฅผ ์ฝ๊ณ ์ฐ๋๋ฐ๋ ๋น์ฉ์ด ๋ ๋ค. M์ Memory, S๋ Storage์ด๋ค. ๋ค๋ค ๊ทธ๋์ ์ต์ข ์ ์ฅํ ๋ ๋ง๊ณ ๋ Memory๋ฅผ ์ฌ์ฉํ๋ค.  Negative Gas๊ฐ ์ฌ๋ฏธ์๋ ๊ฐ๋ ์ธ๋ฐ, ์ด๋๋ฆฌ์์ ์ฌ์ฉํ์ง ์๋ ์คํ ๋ฆฌ์ง๋ ์ด์นด์ดํธ์ ์ญ์ ๋ฅผ ์ฅ๋ คํ๊ธฐ ์ํด, Gas๋ฅผ ๋๋ ค์ฃผ๋ ์ ์ฑ ์ ๋ง๋ค์๋ค. ๊ธ์ ์์๋ถ์ ์ธ๊ธํ๋ Negative Gas ๋ฌธ์ ๋ฅผ ์ดํดํ๋๋ฐ ๋์์ ์ค ๊ฒ์ด๋ค. * Deleting a contract (SELFDESTRUCT) is worth a refund of 24,000 gas. * Changing a storage address from a nonzero value to zero (SSTORE[x] = 0) is worth a refund of 15,000 gas. > ๊ณผ์ฐ ์ด๋ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ฒ ๋ ๊น! ## Gas๊ฐ ์๋น ๋๋ ๊ณผ์ . ### Transaction Gas Limit vs. Block Gas Limit ์ด๋๋ฆฌ์ ์์๋ 2๊ฐ์ Gas Limit์ด ์กด์ฌํ๋ค. ์ค์ Gas์ ์๋น๋ฅผ ์ดํดํ๊ธฐ ์ํด ๋ Gas Limit์ ๋ํด ๊ฐ๋จํ ์ง๊ณ ๋์ด๊ฐ์ผํ๋ค. ์ ์ฑํฐ์์ ํธ๋ ์ ์ ์ ์์ฑํ๊ธฐ ์ํด ์ ๋ ฅํ๋ 2๊ฐ์ ํ๋์ค ํ๋๊ฐ Gas Limit์ด๋ผ๊ณ ํ๋๋ฐ, ์ด๊ฒ์ ์ ํํ ๋ช ์นญ์ Transaction Gas Limit์ผ๋ก, ์ด ํธ๋ ์ ์ ์ ์คํํ๋ ๊ณผ์ ์์ ์๋ชจํ ์ต๋ unit์๋ฅผ ๊ฐ๋ฆฌํจ๋ค. ์ด ์ ๋์๋ฅผ ๋์ด๊ฐ๋ฉด ์คํํ opcode๊ฐ ๋จ์์๋๋ผ๋ EVM์ ์คํ์ด ๋ฉ์ถ๊ฒ ๋ ๊ฒ์ด๋ค. ๋๋ฒ์งธ Block Gas Limit์ ํด๋น ๋ธ๋ก๋ด์์ ํธ๋ ์ ์ ๋ค์ด ์ฌ์ฉ๊ฐ๋ฅํ ์ต๋ Gas unit์์ด๋ค. ์ฆ, ์์ ํธ๋ ์ ์ ์์ Block Gas Limit๋งํผ์ unit์ ์ฌ์ฉํ๋ค๋ฉด, ๋ค๋ฅธ ํธ๋ ์ ์ ์ ์คํ ๋ ์ ์๋ค.(์ค์ ๋ก ๊ทธ๋ฐ์ผ์ ๋ฐ์ํ์ง ์๋๋ค. ํธ๋ ์ ์ ์ด ๋ธ๋ก์ ํฌํจ๋๋ ๊ณผ์ ์์ ์ด๋ฏธ ๊ฑธ๋ฌ์ง๊ธฐ ๋๋ฌธ์) ### EVM์ Gas ์ฌ์ฉ๋ฐฉ์ - Gas Pool Gas Pool์ ๋ธ๋ก์ state๋ฅผ Processingํ ๋ ์ฌ์ฉ๋๋ ๊ฐ๋ ์ด๋ค. ์ด๋ค ๋ธ๋ก์ ์ฒ๋ฆฌํ ๋(์ ํํ๋ ๋ธ๋ก๋ด์ transaction์ ์ฒ๋ฆฌ) ์ฌ์ฉ๊ฐ๋ฅํ ๊ฐ์ค๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ pool๋ก์, ๋ธ๋ก ์ฒ๋ฆฌ ์์์ ์์ฑ๋๋ฉฐ BlockGasLimit๊ฐ์ผ๋ก ์ด๊ธฐํ๋๋ค (์ค์!) ์๋ ํจ์ ํธ์ถ ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด, Gas Pool์ ์์ฑํ๊ณ ๋ธ๋ก ์์ ํธ๋ ์ ์ ์ ์คํํ๊ธฐ ์ํด ๋งค ํธ๋ ์ ์ ๋ง๋ค Gas Pool์์ Transaction Limit๋งํผ ๊ฐ์ค๋ฅผ ์ฌ๊ณ , ์ฌ๋ ๊ฐ์ค์์ opcode์ cost๋ฅผ ์๋ชจํ๋ ๊ฒ์ ํ์ธํ ์์๋ค. ์ดํ ๋จ์ ๊ฐ์ค๋ ํ๋ถ ๋ ๊ฐ์ค์ unit์๋ Pool์ ๋ฐํ๋๋ค.  ์ด๋ฌํ ๋ก์ง์ ํตํด ํธ๋ ์ ์ ์ด ์ค์ ์ฌ์ฉํ Gas unit๋๋ง์ ๊ณ ๋ คํ์ฌ ๋ธ๋ก์ ํธ๋ ์ ์ ์ ์ต๋ํ ๊ฐ๋ ์ฑ์ธ ์ ์๊ฒ ๋๋ค. ### Estimate Gas์ ๋์๋ฐฉ์ EstimateGasํจ์๋ ํธ๋ ์ ์ ์ ์ฌ์ฉ๋์ ์์ธกํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ํจ์์ด๋ค. ์ด ํจ์๋ ์ต์๊ฐ์ 21000์ ๋์ผ๋ก, ๋ ์ต๋๊ฐ์ ํ์ฌ ๊ฐ์ฅ ์ต์ ์ ๋ธ๋ก(๋ง์ด๋์ ํ๊ณ ์์๊ฒฝ์ฐ ๋ง์ด๋๋์์ง๋ง ์์ง canonicalํ์ ์ด ๋์ง ์์ ๋ธ๋ก์ด ์กด์ฌํ ์ ์์ผ๋ฏ๋ก, ์ต์ ๋ง์ด๋๋ ๋ธ๋ก)์ Block Gas Limit์ผ๋ก ์ค์ ํ ํ ๋ฐ์ด๋๋ฆฌ ์์น๋ฅผ ํตํด Contractํธ์ถ์ transaction์ด ์ฑ๊ณตํ๋ ๊ฒฝ์ฐ์ Gas๋ฅผ ๋ฐํํ๋ค.  ์ค์ ๋ก Contractํธ์ถํจ์๋ ์ด๋ ๊ฒ ์๊ฒผ๋ค ์ค๋ฅ๊ฐ ๋์ง ์๋๋ก ์์ balance๋ ์ต๋๋ก ์ฃผ๊ณ , ๊ฐ์คํ๋ ์ต๋๊ฐ์ผ๋ก ์ค๋ค.  ์ด๋ฐ ํธ์ถ ๋ฐฉ์์ด๋ผ๋ฉด, Gas Pool์ ์ค๋ช ํ๋ ํจ์ ํธ์ถ ๋ถ๋ถ์์ ์ด๋ถ๋ถ์ ๊ณตํต์ผ๋ก ์ฌ์ฉํ๊ณ ์์์ ์์ ์๋ค.  ๊ทธ๋ ๋ค๋ฉด ์ฒ๋ฆฌ๋ก์ง์ ์๋์ ๊ฐ์ด ์์ฝ ํ ์ ์๋ค. 1. ๋ฐ์ด๋๋ฆฌ ์์น๋ฅผ ํตํด ์ ๋ ฅํ ๊ฐ์ค ๊ฐ๋งํผ ๊ฐ์คํ์์ ๊ฐ์ค๋ฅผ ์ฐ๋ค. 2. ํธ๋ ์ ์ ์ ์คํํด๋ณธ๋ค. 3. ์คํ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๋ค. 1. halt๊ฐ ๋๋ฉด ์คํ ์ดํธ๋ฅผ ์์๋ณต์ํ๊ณ , ๋ค๋ฅธ ์ ๋ ฅ์ ๋ฃ๋๋ค. 2. ์ฑ๊ณตํ๋ค๋ฉด ์ ๋ ฅํ ๊ฐ์ ๋ฆฌํดํ๋ค (!) ์ด์ํ๋ค. ์ค์ ์ฌ์ฉํ ๊ฐ์ค๊ฐ์ ๋ฆฌํดํ๋ ๊ฑฐ๋ผ๋ฉด, negative gas๋ฅผ ๊ณ ๋ คํ์ฌ ์ค์ peak์ํฉ๋ณด๋ค ์์ ๊ฐ์ด ๋ฐํ๋๊ฒ ์ง๋ง, ์ฝ๋ ๋ถ์์ ๋ฐ๋ฅด๋ฉด ์ด๋ฏธ ์ฐ ๊ฐ์ค๋ฅผ ๊ฐ์ง๊ณ ์คํ์ด ๋๋์ง ์๋๋์ง๋ฅผ ๊ฒ์ฆํด๋ณด๊ณ ํด๋น ๊ฐ์ค๋ฅผ ๋ฐํํ๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋๋ฉด ์๋๋ค! ## ๋ค์ ๋ฌธ์ ๋ก ๋์๊ฐ์. ๊ทธ๋ผ ์ธ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒ์ผ๊น? ์์๋๋ ๋ถ๋ถ์ผ๋ก๋ ์์ธก์ ์ฌ์ฉ๋ state๊ฐ ์คํ ๋น์์ ๋ค๋ฅผ ๊ฒฝ์ฐ๋ค. ์์ธก์ ์ฌ์ฉ๋ ์ต์ ๋ธ๋ก์ ๋ค์ ๋ธ๋ก์ ๋ด ํธ๋ ์ญ์ ์ด ์ฒซ๋ฒ์งธ๋ก ํฌํจ๋๋ค๋ ๋ณด์ฅ์ด ์๊ธฐ ๋๋ฌธ์, ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค. ๋ํ ๋ค์๋ธ๋ก์ ํฌํจ๋๋๋ผ๋, ์์ชฝ์ ํธ๋ ์ ์ ์ด ๋ด๊ฐ ์ฌ์ฉํ๋ state๋ฅผ ๋ณ๊ฒฝํ์ ๊ฒฝ์ฐ์๋, ๋ฌธ์ ๊ฐ ๋ฐ์๊ฐ๋ฅํ๋ค. ๋ง์ง๋ง Miningํ ๋ธ๋ก์ด uncle๋ธ๋ก์ผ๋ก ์ฒ๋ฆฌ๋์์ ๊ฒฝ์ฐ, ๋ฐ๋ก ๋ค์ ๋ธ๋ก์ ์ฒซ๋ฒ์งธ๋ก ํฌํจ๋๋ค ํ๋๋ผ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์๊ฒ์ผ๋ก ์์ํ๋ค. ## ๋ง์น๋ฉฐ, ์ค์ ๋ก ํ ์คํธ๋ฅผ ํด๋ณธ๊ฒ์ ์๋๊ธฐ ๋๋ฌธ์, 100% ํ์ ํ ์ ์์ง๋ง ์ต์ํ ์ค์ ์ฌ์ฉ๋ gas๋ฅผ ๋ฆฌํดํ๋ ๊ฒ์ด ์๋๋ผ, ์ ๋ ฅํ GasLimit์ผ๋ก ํธ๋ ์ ์ ์ด ๋์ํ๋์ง๋ฅผ ํ์ธํ ๊ฐ์ ๋ฆฌํดํ๋ ๋ก์ง์ผ๋ก ๊ตฌํ์ด ๋์ด ์๋ค๋ ๊ฒ์ ํ์ธํ์๋ค. ๋ค๋ง, Estimate Gas๋ก ์์ธกํ ๊ฐ๊ฒฉ์ ๋ง์ด๋ ์ํ์, ๋ธ๋ก์ ํฌํจ๋๋ ์๊ฐ์ ๋ฐ๋ผ ์ธ์ ๋ ๋ฌดํจํด ์ง์ ์๋ค๋ ๊ฒ์ ํ์ธํ์๊ธฐ ๋๋ฌธ์, ์ต์ด ์ธ๊ธ๋ ์ ๋ณด๋ ๋ถ์์ด ํ๋ ธ์ ํ๋ฅ ์ด ๋๋ค๋๊ฒ๋ง ํ์ธํ๊ณ , ๊ธ์ ๋ง๋ฌด๋ฆฌ ํ๊ธฐ๋ก ํ๋ค. > ์๋ชป ๋ถ์๋ ๋ด์ฉ์ด ์๊ฑฐ๋, ์์ ํ ๋ถ๋ถ์ด ์๋ค๋ฉด > [email protected]๋ก ์ธ์ ๋ ์ฐ๋ฝ๋ถํ๋๋ฆฝ๋๋ค. |
| json metadata | {"tags":["factom","nonce","dsrvlabs","korea"],"image":["https://i.imgur.com/LiiyW7x.png","https://i.imgur.com/Vd9lYEM.png","https://i.imgur.com/ZcUCMxP.png","https://i.imgur.com/g7wkGIE.png","https://i.imgur.com/mkwhh6a.png","https://i.imgur.com/AbrjTLr.png"],"links":["https://github.com/djrtwo/evm-opcode-gas-costs/blob/master/opcode-gas-costs_EIP-150_revision-1e18248_2017-04-12.csv"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #33101825/Trx f85a05dd534a2974f31914f38c06f97d305e8ae8 |
View Raw JSON Data
{
"trx_id": "f85a05dd534a2974f31914f38c06f97d305e8ae8",
"block": 33101825,
"trx_in_block": 18,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-21T12:39:12",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "factom",
"author": "sigmoid",
"permlink": "all-about-ethereum-gas",
"title": "All about Ethereum Gas",
"body": "All about Ethereum Gas\n===\n์์ฆ ์ฃผ๋ณ ๊ฐ๋ฐ์๋ค ์ฌ์ด์์ ํํ ๋ฃ๋ฆฌ๋ ์๋ฆฌ๋, \"์ปจํธ๋ ํธ๋ฅผ ์งฐ๋๋ฐ ์ ๋๋ก ๋์ํ์ง ์์์ ํ์ธํด ๋ณด๋ Gas๋ฌธ์ ์๋ค.\" ์ธ ๊ฒ ๊ฐ๋ค. \n\n์ผ๋ง์ facebook์๋ EstimateGas๋งํผ Gas๋ฅผ ์ค์ ํด์ ํธ๋ ์ ์
์ ๋ณด๋๋๋ฐ, negative gas๊ฐ ๋ฐ์ํ๋ ํธ๋ ์ ์
์ด์ฌ์ ์ต์ข
์ฌ์ฉ๋์ด ์ ๊ฒ ๊ณ์ฐ๋๊ฒ์ด๋๋ผ. ๊ทธ๋์ ์ค์ ์คํ์์๋ gas limit์ ๋์ด๊ฐ๋ ์๊ฐ์ด ๋ฐ์ํ๋๋ผ๋ผ๋ ํฅ๋ฏธ๋ก์ด ์ด์ผ๊ธฐ๋ ๋ค์๋ค.\n\n์ฌ์ค Gas์ ์ฌ์ฉ๋์, ๊ณ์ฝ์ ์ฝ๋๊ฐ ์๋ชจํ๋ ๋ + OnChain state์ ๋ณํ๋์ด ํจ๊ป ์กด์ฌํ๋ ๊ฐ๋
์ด๊ธฐ ๋๋ฌธ์, ์ ํํ๊ฒ ์์ธกํ๊ธฐ๊ฐ ์ด๋ ต๋ค. ์ฌ์ง์ด Web3์์ ์ ๊ณตํ๋ ํจ์์ด๋ฆ๋ EstimateGas ์ด์ง ์์๊ฐ?\n\n๊ทธ๋์ ์ค๋์ ์ด๋๋ฆฌ์์ Gas์ EVM ์์ ์ฒ๋ฆฌ ๋ก์ง์ ์ ๋ฆฌํด๋ณด๊ณ \nEsimateGasํจ์์ ๋์์๋ฆฌ๋ฅผ ํ์
ํด๋ณด๊ณ ์ ์ด ๊ธ์ ์์ํ์๋ค.\n\n## Gas๊ฐ ๋ญ์ผ?\n์ด๋๋ฆฌ์์ ๋ด์ฌ๊ฐ์น๋ ๋น์ฐํ Ether์ธ๋ฐ ์ Gas๋ผ๋ ๋จ์ด๋ฅผ ๋ง๋ค์ด ์ฐ๋ฆฌ๋ฅผ ํท๊ฐ๋ฆฌ๊ฒ ํ ๊น? ์ด๋ถ๋ถ์ ๋จผ์ ๋ช
ํํ๊ฒ ์ดํดํ๊ณ ๊ด๋ฆฌ ๋ก์ง์ ๋ค์ฌ๋ค ๋ณด๋๋ก ํ์.\n\n### Ethereum์์ Gas์ ์ญํ \nEthreum Yellow paper๊ธฐ์ค์ผ๋ก Gas๋ ์ด๋๋ฆฌ์ ํ๋กํ ์ฝ์์์ ๋ค์์ ์ญํ ์ ๋ถ์ฌ๋ฐ์๋ค.\n1. ์ด๋๋ฆฌ์์ ๊ฐ๊ฒฉ ๋ณ๋์ฑ์ ๋ํ ๋ฒํผ์ญํ \n2. ๋ง์ด๋์ ๋ํ ๋ณด์์ ์ญํ (Reward ๋ง๊ณ ์ฐ์ฐ์ ๋ํ Fee)\n3. Dos๋ฑ์ ๊ณต๊ฒฉ์ ๋ง๋ ์ญํ \n\n์์ ์ญํ ์ค 1๋ฒ์ด ์ด ๊ธ์์ ๊ฐ์ฅ ์ค์ํ ๋ด์ฉ์ด๋ค.(2๋ฒ๊ณผ 3๋ฒ์ ๋ค๋ฃจ์ง ์๋๋ค)\n\n๋จผ์ ์ ๊ฐ๋ฐ์๋ค์ด ๋งํ๋ ๊ฐ์ค๋น๋ Gas Price์ Gas ์ฌ์ฉ๋(Unit์ด๋ผ๋ ํํ์ ๋น๋ฆฐ๋ค)์ ์กฐํฉ์ด๋ค. Gas Price๋ Gas 1 unit๋น ์ด๋๋ฆฌ์ ๊ฐ๊ฒฉ์ด๋ค. Gas Unit์ Ethereum์ EVM operation์์ ๋น์ฉ์ ์ฑ
์ ํ๋ ๊ณ ์ ์ ๋จ์์ด๋ค. ๊ทธ๋์ opcode๋น ์ค์ ๋น์ฉ์ Gast cost * unit/opcode๊ฐ ๋๋ค. ์ด๋ฌํ ๋น์ฉ๊ตฌ์กฐ๋ Action์ ์์ฑํ๋ user๊ฐ unit๋น Gas price๋ฅผ ์กฐ์ ํจ์ผ๋ก์ ์ด๋๋ฆฌ์์ ์ธ๋ถ๊ฐ๊ฒฉ๋ณ๋(์, ๋ฌ๋ฌ๋ฑ)์ผ๋ก๋ถํฐ ์์ ๋ก์ ์ง์์๋ ๊ธฐํ๋ฅผ ์ค๋ค.\n\n๋ง์ฝ ๊ฐ์ค๋น๋ก ์ฒ์์ ๋ด๊ณ ์ถ์ผ๋ฉด, ๋ด Action์ด ์๋ชจํ๊ฒ๋ Gas unit์ ์๋ก ์ฒ์์ ๋๋๊ณ , ์ ๋๋น ์ํ๊ฐ๊ฒฉ์ด ๋์ค๋ฉด, ํด๋น ์ํ๊ฐ๊ฒฉ์ ๋์๋๋ Gas Price๋ฅผ ์ด๋๋ฆฌ์์ผ๋ก ์
๋ ฅํ๋ฉด ๋๋ค. ์ฆ, ์ด๋๋ฆฌ์์ด ๋น์ธ์ง๋ฉด Gas price๋ฅผ ์ ๊ฒ ์ ๊ณ , ์ด๋๋ฆฌ์์ด ์ธ์ง๋ฉด p๋๊ฒ ์ ์ด ๋ด์ด์ ์ต์ข
์๋น ๊ธ์ก์ ์ฒ์์ ๋ง์ถ ์ ์๋ค \n\n์ค์ ํธ๋ ์ ์
์ ์์ฑํ๋ ๊ณผ์ ์์ ์ฐ๋ฆฌ๋ Gas์ ๊ด๋ จํ 2๊ฐ์ field์ธGas Cost์ Gas Limit์ ์
๋ ฅํ๊ฒ ๋๋๋ฐ, Cost๋ ์ด๋๋ฆฌ์๊ณผ ์ฐ๊ฒฐ๋๊ณ , Limit์ opcode๊ฐ ์๋ชจํ๋ (์ต๋)Unit์๋ก ์ ์๋๋ค.\n๊ทธ๋์ ์ต์ข
์ง๋ถํ๋ ๊ฐ์ค๋น๋ Cost * Unit Limit์ผ๋ก ๊ณ์ฐ๋๋ ๊ฒ์ด๋ค.\n\n### ๊ฒฐ๊ตญ Gas๋ EVM์์์๋ง ์กด์ฌํ๋ค.\n์ด๋๋ฆฌ์์์๋ ์ฐ์ฐ์ ํ๋๊ฒ๋, State๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ๋ ๋ชจ๋ EVM์ด๋ค.\n์ฆ ๊ฐ์ค๋ฅผ ์๋ชจํ๊ณ ์ญํ ์ ๋ชจ๋ EVM์์ ํ๋ค.\n๋์ค์ ๋์ค๊ฒ ์ง๋ง, Refundํ ๋๋ ์ด๋๋ฆฌ์์ผ๋ก ๋๋ ค์ค์ผ ํ๋ฏ๋ก ๋จ์ Gas ์ ๋์ * Gas Cost๋ฅผ ํด์ ๋ณํ๋ ๊ฐ์น๋ฅผ ๋๋ ค์ค๋ค.\n\n## Ethereum์ Gas ์ ์ฑ
\n### ์ฐ์ฐ๋น ์๋ชจ๋\nEVM์ op code๋ฅผ ์คํํ๋ ๋จธ์ ์ด๋ฉฐ, ์๋์ ๊ฐ์ด op code๋ฅผ ์คํํ ๋ ๋ง๋ค Gas Unit์ ์๋ชจํ๋๋ก ์ค๊ณ๊ฐ ๋์ด์๋ค. \n\n(From: https://github.com/djrtwo/evm-opcode-gas-costs/blob/master/opcode-gas-costs_EIP-150_revision-1e18248_2017-04-12.csv)\n\n### State ๋ณํ์ ๋ํ ๋น์ฉ๊ณผ Negative Gas \n๋๋จน๋ ํ๋ง๊ฐ์ผ๋๋ผ๊ณ , ๋ฉ๋ชจ๋ฆฌ๋ OnChain์ ๊ธฐ๋ก๋ Storage๋ฅผ ์ฝ๊ณ ์ฐ๋๋ฐ๋ ๋น์ฉ์ด ๋ ๋ค. M์ Memory, S๋ Storage์ด๋ค. ๋ค๋ค ๊ทธ๋์ ์ต์ข
์ ์ฅํ ๋ ๋ง๊ณ ๋ Memory๋ฅผ ์ฌ์ฉํ๋ค. \n\n\nNegative Gas๊ฐ ์ฌ๋ฏธ์๋ ๊ฐ๋
์ธ๋ฐ, ์ด๋๋ฆฌ์์ ์ฌ์ฉํ์ง ์๋ ์คํ ๋ฆฌ์ง๋ ์ด์นด์ดํธ์ ์ญ์ ๋ฅผ ์ฅ๋ คํ๊ธฐ ์ํด, Gas๋ฅผ ๋๋ ค์ฃผ๋ ์ ์ฑ
์ ๋ง๋ค์๋ค. ๊ธ์ ์์๋ถ์ ์ธ๊ธํ๋ Negative Gas ๋ฌธ์ ๋ฅผ ์ดํดํ๋๋ฐ ๋์์ ์ค ๊ฒ์ด๋ค.\n * Deleting a contract (SELFDESTRUCT) is worth a refund of 24,000 gas.\n * Changing a storage address from a nonzero value to zero (SSTORE[x] = 0) is worth a refund of 15,000 gas.\n> ๊ณผ์ฐ ์ด๋ค ๋ฌธ์ ๊ฐ ๋ฐ์ํ๊ฒ ๋ ๊น!\n\n## Gas๊ฐ ์๋น ๋๋ ๊ณผ์ .\n### Transaction Gas Limit vs. Block Gas Limit\n์ด๋๋ฆฌ์ ์์๋ 2๊ฐ์ Gas Limit์ด ์กด์ฌํ๋ค. \n์ค์ Gas์ ์๋น๋ฅผ ์ดํดํ๊ธฐ ์ํด ๋ Gas Limit์ ๋ํด ๊ฐ๋จํ ์ง๊ณ ๋์ด๊ฐ์ผํ๋ค. \n\n์ ์ฑํฐ์์ ํธ๋ ์ ์
์ ์์ฑํ๊ธฐ ์ํด ์
๋ ฅํ๋ 2๊ฐ์ ํ๋์ค ํ๋๊ฐ Gas Limit์ด๋ผ๊ณ ํ๋๋ฐ, ์ด๊ฒ์ ์ ํํ ๋ช
์นญ์ Transaction Gas Limit์ผ๋ก, ์ด ํธ๋ ์ ์
์ ์คํํ๋ ๊ณผ์ ์์ ์๋ชจํ ์ต๋ unit์๋ฅผ ๊ฐ๋ฆฌํจ๋ค. ์ด ์ ๋์๋ฅผ ๋์ด๊ฐ๋ฉด ์คํํ opcode๊ฐ ๋จ์์๋๋ผ๋ EVM์ ์คํ์ด ๋ฉ์ถ๊ฒ ๋ ๊ฒ์ด๋ค.\n\n๋๋ฒ์งธ Block Gas Limit์ ํด๋น ๋ธ๋ก๋ด์์ ํธ๋ ์ ์
๋ค์ด ์ฌ์ฉ๊ฐ๋ฅํ ์ต๋ Gas unit์์ด๋ค. ์ฆ, ์์ ํธ๋ ์ ์
์์ Block Gas Limit๋งํผ์ unit์ ์ฌ์ฉํ๋ค๋ฉด, ๋ค๋ฅธ ํธ๋ ์ ์
์ ์คํ ๋ ์ ์๋ค.(์ค์ ๋ก ๊ทธ๋ฐ์ผ์ ๋ฐ์ํ์ง ์๋๋ค. ํธ๋ ์ ์
์ด ๋ธ๋ก์ ํฌํจ๋๋ ๊ณผ์ ์์ ์ด๋ฏธ ๊ฑธ๋ฌ์ง๊ธฐ ๋๋ฌธ์)\n\n### EVM์ Gas ์ฌ์ฉ๋ฐฉ์ - Gas Pool\nGas Pool์ ๋ธ๋ก์ state๋ฅผ Processingํ ๋ ์ฌ์ฉ๋๋ ๊ฐ๋
์ด๋ค.\n์ด๋ค ๋ธ๋ก์ ์ฒ๋ฆฌํ ๋(์ ํํ๋ ๋ธ๋ก๋ด์ transaction์ ์ฒ๋ฆฌ) ์ฌ์ฉ๊ฐ๋ฅํ ๊ฐ์ค๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ pool๋ก์, ๋ธ๋ก ์ฒ๋ฆฌ ์์์ ์์ฑ๋๋ฉฐ BlockGasLimit๊ฐ์ผ๋ก ์ด๊ธฐํ๋๋ค (์ค์!)\n\n์๋ ํจ์ ํธ์ถ ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด, Gas Pool์ ์์ฑํ๊ณ ๋ธ๋ก ์์ ํธ๋ ์ ์
์ ์คํํ๊ธฐ ์ํด ๋งค ํธ๋ ์ ์
๋ง๋ค Gas Pool์์ Transaction Limit๋งํผ ๊ฐ์ค๋ฅผ ์ฌ๊ณ , ์ฌ๋ ๊ฐ์ค์์ opcode์ cost๋ฅผ ์๋ชจํ๋ ๊ฒ์ ํ์ธํ ์์๋ค. ์ดํ ๋จ์ ๊ฐ์ค๋ ํ๋ถ ๋ ๊ฐ์ค์ unit์๋ Pool์ ๋ฐํ๋๋ค.\n\n\n์ด๋ฌํ ๋ก์ง์ ํตํด ํธ๋ ์ ์
์ด ์ค์ ์ฌ์ฉํ Gas unit๋๋ง์ ๊ณ ๋ คํ์ฌ ๋ธ๋ก์ ํธ๋ ์ ์
์ ์ต๋ํ ๊ฐ๋ ์ฑ์ธ ์ ์๊ฒ ๋๋ค.\n\n### Estimate Gas์ ๋์๋ฐฉ์\nEstimateGasํจ์๋ ํธ๋ ์ ์
์ ์ฌ์ฉ๋์ ์์ธกํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ํจ์์ด๋ค. ์ด ํจ์๋ ์ต์๊ฐ์ 21000์ ๋์ผ๋ก, ๋ ์ต๋๊ฐ์ ํ์ฌ ๊ฐ์ฅ ์ต์ ์ ๋ธ๋ก(๋ง์ด๋์ ํ๊ณ ์์๊ฒฝ์ฐ ๋ง์ด๋๋์์ง๋ง ์์ง canonicalํ์ ์ด ๋์ง ์์ ๋ธ๋ก์ด ์กด์ฌํ ์ ์์ผ๋ฏ๋ก, ์ต์ ๋ง์ด๋๋ ๋ธ๋ก)์ Block Gas Limit์ผ๋ก ์ค์ ํ ํ ๋ฐ์ด๋๋ฆฌ ์์น๋ฅผ ํตํด Contractํธ์ถ์ transaction์ด ์ฑ๊ณตํ๋ ๊ฒฝ์ฐ์ Gas๋ฅผ ๋ฐํํ๋ค. \n\n\n\n์ค์ ๋ก Contractํธ์ถํจ์๋ ์ด๋ ๊ฒ ์๊ฒผ๋ค\n์ค๋ฅ๊ฐ ๋์ง ์๋๋ก ์์ balance๋ ์ต๋๋ก ์ฃผ๊ณ , ๊ฐ์คํ๋ ์ต๋๊ฐ์ผ๋ก ์ค๋ค.\n\n\n์ด๋ฐ ํธ์ถ ๋ฐฉ์์ด๋ผ๋ฉด, Gas Pool์ ์ค๋ช
ํ๋ ํจ์ ํธ์ถ ๋ถ๋ถ์์ ์ด๋ถ๋ถ์ ๊ณตํต์ผ๋ก ์ฌ์ฉํ๊ณ ์์์ ์์ ์๋ค.\n\n\n๊ทธ๋ ๋ค๋ฉด ์ฒ๋ฆฌ๋ก์ง์ ์๋์ ๊ฐ์ด ์์ฝ ํ ์ ์๋ค.\n1. ๋ฐ์ด๋๋ฆฌ ์์น๋ฅผ ํตํด ์
๋ ฅํ ๊ฐ์ค ๊ฐ๋งํผ ๊ฐ์คํ์์ ๊ฐ์ค๋ฅผ ์ฐ๋ค.\n2. ํธ๋ ์ ์
์ ์คํํด๋ณธ๋ค.\n3. ์คํ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ๋ค.\n 1. halt๊ฐ ๋๋ฉด ์คํ
์ดํธ๋ฅผ ์์๋ณต์ํ๊ณ , ๋ค๋ฅธ ์
๋ ฅ์ ๋ฃ๋๋ค.\n 2. ์ฑ๊ณตํ๋ค๋ฉด ์
๋ ฅํ ๊ฐ์ ๋ฆฌํดํ๋ค (!)\n\n์ด์ํ๋ค. ์ค์ ์ฌ์ฉํ ๊ฐ์ค๊ฐ์ ๋ฆฌํดํ๋ ๊ฑฐ๋ผ๋ฉด, negative gas๋ฅผ ๊ณ ๋ คํ์ฌ ์ค์ peak์ํฉ๋ณด๋ค ์์ ๊ฐ์ด ๋ฐํ๋๊ฒ ์ง๋ง, ์ฝ๋ ๋ถ์์ ๋ฐ๋ฅด๋ฉด ์ด๋ฏธ ์ฐ ๊ฐ์ค๋ฅผ ๊ฐ์ง๊ณ ์คํ์ด ๋๋์ง ์๋๋์ง๋ฅผ ๊ฒ์ฆํด๋ณด๊ณ ํด๋น ๊ฐ์ค๋ฅผ ๋ฐํํ๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๊ฐ ๋๋ฉด ์๋๋ค!\n\n## ๋ค์ ๋ฌธ์ ๋ก ๋์๊ฐ์.\n๊ทธ๋ผ ์ธ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒ์ผ๊น?\n\n์์๋๋ ๋ถ๋ถ์ผ๋ก๋ ์์ธก์ ์ฌ์ฉ๋ state๊ฐ ์คํ ๋น์์ ๋ค๋ฅผ ๊ฒฝ์ฐ๋ค.\n์์ธก์ ์ฌ์ฉ๋ ์ต์ ๋ธ๋ก์ ๋ค์ ๋ธ๋ก์ ๋ด ํธ๋ ์ญ์
์ด ์ฒซ๋ฒ์งธ๋ก ํฌํจ๋๋ค๋ ๋ณด์ฅ์ด ์๊ธฐ ๋๋ฌธ์, ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค. \n\n๋ํ ๋ค์๋ธ๋ก์ ํฌํจ๋๋๋ผ๋, ์์ชฝ์ ํธ๋ ์ ์
์ด ๋ด๊ฐ ์ฌ์ฉํ๋ state๋ฅผ ๋ณ๊ฒฝํ์ ๊ฒฝ์ฐ์๋, ๋ฌธ์ ๊ฐ ๋ฐ์๊ฐ๋ฅํ๋ค.\n\n๋ง์ง๋ง Miningํ ๋ธ๋ก์ด uncle๋ธ๋ก์ผ๋ก ์ฒ๋ฆฌ๋์์ ๊ฒฝ์ฐ, ๋ฐ๋ก ๋ค์ ๋ธ๋ก์ ์ฒซ๋ฒ์งธ๋ก ํฌํจ๋๋ค ํ๋๋ผ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์๊ฒ์ผ๋ก ์์ํ๋ค.\n\n\n## ๋ง์น๋ฉฐ,\n์ค์ ๋ก ํ
์คํธ๋ฅผ ํด๋ณธ๊ฒ์ ์๋๊ธฐ ๋๋ฌธ์, 100% ํ์ ํ ์ ์์ง๋ง\n์ต์ํ ์ค์ ์ฌ์ฉ๋ gas๋ฅผ ๋ฆฌํดํ๋ ๊ฒ์ด ์๋๋ผ, ์
๋ ฅํ GasLimit์ผ๋ก ํธ๋ ์ ์
์ด ๋์ํ๋์ง๋ฅผ ํ์ธํ ๊ฐ์ ๋ฆฌํดํ๋ ๋ก์ง์ผ๋ก ๊ตฌํ์ด ๋์ด ์๋ค๋ ๊ฒ์ ํ์ธํ์๋ค.\n\n๋ค๋ง, Estimate Gas๋ก ์์ธกํ ๊ฐ๊ฒฉ์ ๋ง์ด๋ ์ํ์, ๋ธ๋ก์ ํฌํจ๋๋ ์๊ฐ์ ๋ฐ๋ผ ์ธ์ ๋ ๋ฌดํจํด ์ง์ ์๋ค๋ ๊ฒ์ ํ์ธํ์๊ธฐ ๋๋ฌธ์, ์ต์ด ์ธ๊ธ๋ ์ ๋ณด๋ ๋ถ์์ด ํ๋ ธ์ ํ๋ฅ ์ด ๋๋ค๋๊ฒ๋ง ํ์ธํ๊ณ , ๊ธ์ ๋ง๋ฌด๋ฆฌ ํ๊ธฐ๋ก ํ๋ค.\n\n> ์๋ชป ๋ถ์๋ ๋ด์ฉ์ด ์๊ฑฐ๋, ์์ ํ ๋ถ๋ถ์ด ์๋ค๋ฉด \n> [email protected]๋ก ์ธ์ ๋ ์ฐ๋ฝ๋ถํ๋๋ฆฝ๋๋ค.",
"json_metadata": "{\"tags\":[\"factom\",\"nonce\",\"dsrvlabs\",\"korea\"],\"image\":[\"https://i.imgur.com/LiiyW7x.png\",\"https://i.imgur.com/Vd9lYEM.png\",\"https://i.imgur.com/ZcUCMxP.png\",\"https://i.imgur.com/g7wkGIE.png\",\"https://i.imgur.com/mkwhh6a.png\",\"https://i.imgur.com/AbrjTLr.png\"],\"links\":[\"https://github.com/djrtwo/evm-opcode-gas-costs/blob/master/opcode-gas-costs_EIP-150_revision-1e18248_2017-04-12.csv\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}2019/05/21 00:43:30
2019/05/21 00:43:30
| parent author | sigmoid |
| parent permlink | ethreumdb-in-a-nutshell |
| author | ayogom |
| permlink | re-sigmoid-ethreumdb-in-a-nutshell-20190521t004330101z |
| title | |
| body | ํ๊ทธ์ sct / kr ๋ฅผ ์ฌ์ฉํด ์ฃผ์๋ฉด ๋ ๋ง์ ๋ถ๋ค์ด ์์ํด์ฃผ์ค๊ฒ ๊ฐ์์!! sct : steemcoinpan ์ด๋ผ๋ steem ๋์ฑ์ผ๋ก, steem ๋ฟ๋ง ์๋๋ผ sct ๋ณด์๋ ๋ฐ์ ์ ์์ด์ kr : ํ๊ตญ ์ปค๋ฎค๋ํฐ... ^^ |
| json metadata | {"tags":["ethereum"],"app":"steemit/0.1"} |
| Transaction Info | Block #33087521/Trx eac383cbb10941b95bb9759b1a29b32e836a85b2 |
View Raw JSON Data
{
"trx_id": "eac383cbb10941b95bb9759b1a29b32e836a85b2",
"block": 33087521,
"trx_in_block": 28,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-21T00:43:30",
"op": [
"comment",
{
"parent_author": "sigmoid",
"parent_permlink": "ethreumdb-in-a-nutshell",
"author": "ayogom",
"permlink": "re-sigmoid-ethreumdb-in-a-nutshell-20190521t004330101z",
"title": "",
"body": "ํ๊ทธ์ sct / kr ๋ฅผ ์ฌ์ฉํด ์ฃผ์๋ฉด ๋ ๋ง์ ๋ถ๋ค์ด ์์ํด์ฃผ์ค๊ฒ ๊ฐ์์!!\n\nsct : steemcoinpan ์ด๋ผ๋ steem ๋์ฑ์ผ๋ก, steem ๋ฟ๋ง ์๋๋ผ sct ๋ณด์๋ ๋ฐ์ ์ ์์ด์\nkr : ํ๊ตญ ์ปค๋ฎค๋ํฐ... ^^",
"json_metadata": "{\"tags\":[\"ethereum\"],\"app\":\"steemit/0.1\"}"
}
]
}ayogomupvoted (50.00%) @sigmoid / ethreumdb-in-a-nutshell2019/05/21 00:43:27
ayogomupvoted (50.00%) @sigmoid / ethreumdb-in-a-nutshell
2019/05/21 00:43:27
| voter | ayogom |
| author | sigmoid |
| permlink | ethreumdb-in-a-nutshell |
| weight | 5000 (50.00%) |
| Transaction Info | Block #33087520/Trx eb18d392248420ca93d6feb81d2a1a3d7a6f7a90 |
View Raw JSON Data
{
"trx_id": "eb18d392248420ca93d6feb81d2a1a3d7a6f7a90",
"block": 33087520,
"trx_in_block": 3,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-21T00:43:27",
"op": [
"vote",
{
"voter": "ayogom",
"author": "sigmoid",
"permlink": "ethreumdb-in-a-nutshell",
"weight": 5000
}
]
}filipinoupvoted (10.00%) @sigmoid / ethreumdb-in-a-nutshell2019/05/20 17:32:12
filipinoupvoted (10.00%) @sigmoid / ethreumdb-in-a-nutshell
2019/05/20 17:32:12
| voter | filipino |
| author | sigmoid |
| permlink | ethreumdb-in-a-nutshell |
| weight | 1000 (10.00%) |
| Transaction Info | Block #33078901/Trx b57da7d67e835f3ffacbc036a9a76dd6f2ea630f |
View Raw JSON Data
{
"trx_id": "b57da7d67e835f3ffacbc036a9a76dd6f2ea630f",
"block": 33078901,
"trx_in_block": 28,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-20T17:32:12",
"op": [
"vote",
{
"voter": "filipino",
"author": "sigmoid",
"permlink": "ethreumdb-in-a-nutshell",
"weight": 1000
}
]
}bluesniperupvoted (0.08%) @sigmoid / ethreumdb-in-a-nutshell2019/05/20 16:59:39
bluesniperupvoted (0.08%) @sigmoid / ethreumdb-in-a-nutshell
2019/05/20 16:59:39
| voter | bluesniper |
| author | sigmoid |
| permlink | ethreumdb-in-a-nutshell |
| weight | 8 (0.08%) |
| Transaction Info | Block #33078250/Trx 257bc7af15a435b24820b614b50bf7fd7cdab16c |
View Raw JSON Data
{
"trx_id": "257bc7af15a435b24820b614b50bf7fd7cdab16c",
"block": 33078250,
"trx_in_block": 5,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-20T16:59:39",
"op": [
"vote",
{
"voter": "bluesniper",
"author": "sigmoid",
"permlink": "ethreumdb-in-a-nutshell",
"weight": 8
}
]
}serginoupvoted (2.00%) @sigmoid / ethreumdb-in-a-nutshell2019/05/20 16:59:33
serginoupvoted (2.00%) @sigmoid / ethreumdb-in-a-nutshell
2019/05/20 16:59:33
| voter | sergino |
| author | sigmoid |
| permlink | ethreumdb-in-a-nutshell |
| weight | 200 (2.00%) |
| Transaction Info | Block #33078248/Trx 7bd5af3b101034f2f85978b4e94d3118eb6bb9b4 |
View Raw JSON Data
{
"trx_id": "7bd5af3b101034f2f85978b4e94d3118eb6bb9b4",
"block": 33078248,
"trx_in_block": 33,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-20T16:59:33",
"op": [
"vote",
{
"voter": "sergino",
"author": "sigmoid",
"permlink": "ethreumdb-in-a-nutshell",
"weight": 200
}
]
}sigmoidpublished a new post: ethreumdb-in-a-nutshell2019/05/20 16:52:27
sigmoidpublished a new post: ethreumdb-in-a-nutshell
2019/05/20 16:52:27
| parent author | |
| parent permlink | ethereum |
| author | sigmoid |
| permlink | ethreumdb-in-a-nutshell |
| title | EthreumDB in a nutshell |
| body | EthreumDB in a nutshell === ์ฒด์ธ ๋ฐ์ดํฐ๊ฐ 100GB๋จ์๋ฅผ ๋์ด๊ฐ๋ฉด์, Syncํ ๋ ๋ง์ ๋ฌธ์ ๋ค์ด ๋ฐ์ํ๊ณ ์์ผ๋ฉฐ, ๋ค์ํ ๊ด๋ จ ์ฐ๊ตฌ๋ค์ด ์งํ์ค์ด์ง๋ง, ํ์ค์ ์ผ๋ก ๋ค๊ฐ์ค๊ธฐ์ ์๊ฐ์ด ์กฐ๊ธ ๋ ํ์ํ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค. ์ผ๋ง์ ๋ถํฐ ์ด๋๋ฆฌ์์ DB ๋ถ์์ ๊ณ์ ํด์๋ ์ด์ ๋, ์ด๋ป๊ฒํ๋ฉด ๋ ธ๋์ ์ฌ์ด ๋คํธ์ํฌ ๊ฐ์ ์ ์ง์ํ ์ ์์๊น ๊ณ ๋ฏผํ๋ค, ์ฒซ๋ฒ์งธ ๋์ด์ผ ํ ํ๋ค์ด ๋ฐ์ดํฐ ํฌ๊ธฐ๋ผ๋ ๊ฒ์ ์๊ฐ์ด ๋ฟ์๊ธฐ ๋๋ฌธ์ด๋ค. ํ์ฌ ๋ฐ์ดํฐ๋ค์ด ์ด๋ป๊ฒ ๊ตฌ์ฑ๋์ด ์์ฌ๊ฐ๊ณ ์๋์ง ๋ฅผ ๋ถ์ํ๊ณ , ์ข๋ ์ข์ ๋ฐฉํฅ์ผ๋ก ์ฐ๊ตฌ๋ฅผ ์งํํด ๋ณด๊ณ ์, ์ด ๊ธ์ ์์ํ๋ค. ## ๊ธฐ๋ณธ ์๋ฃํ ์๊ธฐ geth์ ๊ฒฝ์ฐ chaindata ํด๋(leveldb)์ ๋ธ๋ก ์ฒด์ธ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋๋ฐ, ์ ์ฅ๋๋ ๋ฐ์ดํฐ์ ์ข ๋ฅ๋ ๋ค์๊ณผ ๊ฐ๋ค. ### 1. State Data ํํ ๋งํ๋ ์ด๋๋ฆฌ์ ๊ณ์ ์ ์ ๋ณด์ด๋ค. key, value์ ํํ๋ก ๋ณด์๋ฉด [secure-key + hash : address] [hash , rlp(stateObject)] [roothash, rlp(trie-node) ์ ๋ฐ์ดํฐ๊ฐ ์ฃผ๋ฅผ ์ด๋ฃจ๋ฉฐ, ํํ ์ฐ๋ฆฌ๊ฐ ์ด์ผ๊ธฐํ๋ ๋จธํดํจํธ๋ฆฌ์ค(MPT) ์๋ฃ๊ตฌ์กฐ์ ๋ฐ์ดํฐ๋ฅผ ์๊ฐํ๋ฉด ๋๋ค.  DB์๋ ์๋์ ๊ฐ์ ์์ผ๋ก ์์ผ๊ฒ์ด๋ค.  >Tip 1.: ๋ธ๋ก์ฒด์ธ์ ํํ๋ค ์ง๊ฐ์ ๋์ด์๋ค๊ณ ํํํ๋๋ฐ, ๊ทธ ์ด์ ๊ฐ ์ฌ๊ธฐ์ ์๋ค. ์ง๊ฐ์ ๋จ์ง ์ด๋๋ฆฌ์ ๊ณ์ ์ ์ฃผ์์ ์๋ช ๊ธฐ๋ฅ๋ง์ ๊ฐ์ง๊ณ ์์ ๋ฟ, ํด๋น ์ฃผ์์ ์ค์ ๋ฐ์ดํฐ ์์ฒด๋ stateObject๋ผ๋ ํ์ ์ผ๋ก ๋ ธ๋์ DB์ ์กด์ฌํ๋ค. ### 2. Chain data ํํ ๋ธ๋ก์ฒด์ธ์ด๋ผ๊ณ ํํํ๋ ๋ฐ์ดํฐ๋ค์ด๋ฉฐ, ๋ค์์ ๋ฐ์ดํฐ๋ค์ด LevelDB์ ์ ์ฅ๋๋ค. #### Transaction ํธ๋ ์ ์ ์ ์๋ฃ๊ตฌ์กฐ๋ ์ด๋ ๊ฒ ์๊ฒผ๊ณ , ์๋์ ๊ทธ๋ฆผ์ฒ๋ผ ํธ๋ ์ ์ ํด์๋ ์๋ช ๊ฐ์ด ์ฑ์์ง๋ค.  ํธ๋ ์ ์ ํด์์ ์๋ช ํ๋๋ ๋ค์๊ณผ ๊ฐ์ด ๊ณ์ฐ๋๋ค.   #### Block Header ๋ธ๋ก์ฒด์ธ์ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ๊ฑฐ์ ๋๋ถ๋ถ ํค๋์ ๋ด๊ธด๋ค๊ณ ๋ณผ ์ ์๊ฒ ๋ค. ๋ ์ค๋ช ํ ํ์๋ ์์๋ฏ.  #### Block Body ๋ธ๋ก์ ๋ด๊ธธ transaction list์ uncle ๋ธ๋ก์ผ๋ก ํ์ ๋ ๋ธ๋ก์ header hash list๋ฅผ ์ ์ฅํ๋ค.  #### Reciept & Log ํธ๋ ์ ์ ์ ์คํ๊ฒฐ๊ณผ, ์๋ชจ๊ฐ์ค๋ ๋ฑ์ด ์ ์ฅ๋๋ ์์์ฆ๊ณผ, contract์ event emit์ ํ์ฉ๋ Log์ ๋ณด๋ฑ์ ํฌํจํ๋ค  > Tip 2. DB์ ์ค๋ฆฌ๋ ์ถ๊ฐ์ ๋ณด๋ค Database version, Last[Block,Hash,...]๋ sync logic์ ๊ด๋ จ๋ ํ๋๋ค์ด๋ค. ํค๋, ๋ธ๋ก๋ฑ์ด ํ์ฌ ์ด๋๊น์ง ์ฑํฌ๋์๋์ง๋ฅผ ๋ํ๋ด๋ ํ๋๋ก์, Node๊ฐ On/Off๋ ๋ DB๋ฅผ ์ฝ์ด ์ด์ด ๋ฐ๊ธฐ๋ฅผ ํ ์ ์๋ค. ## DB๋ฅผ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋๋์ด ๋ณด์๋ค ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์์ Db์ ๋๋๊ณ ์ถ์์ง๋ง, ์ฐ์ ์ฝ๋ ๊ตฌํ์ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ์์ ํ ์ ์์ด๋ณด์๊ธฐ ๋๋ฌธ์ chaindata์ Statedata๋ฅผ ๋ฐ๋ก ์ ์ฅํ๋๋ก ๋ถ๋ฆฌ๋ฅผ ํด ๋ณด์๋ค. >(์์ : https://github.com/NAKsir-melody/go-ethereum/commit/192a1412677ae0332a46f8ea17ba46ff6e79708c ์ฐธ์กฐ) #### ๋จผ์ , private network single node์์์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ฆํด ๋ณธ๋ค. self mining์ ๊ฒฝ์ฐ ๋ธ๋ก confirm ํ์ด๋ฐ์ด ๋์ด์ผ potential block์ genesis chain์ ์ถ๊ฐํ๋ค.๋ฐ๋ผ์ DB์ ์๋ณด์ผ์ ์์ผ๋ฏ๋ก caching๊ด๋ จ์ต์ ์ ๋๊ณ , confirmํ์๋ 1๋ก ๋ณ๊ฒฝํด์ผ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ํ๋ณดํ ์ ์์๋ค. ๋ฐ์ดํฐ ๊ฒ์ฆ์ ์๋ ์ฒ๋ผ ์ด์นด์ดํธ 2๊ฐ๋ฅผ ์์ฑํ ๊ฒ์ดstatedb์ ์ฐ์ฌ์ง๊ณ ,ํธ๋ ์ ์ ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ฉด, Trie๊ฐ ์ถ๊ฐ์ ์ผ๋ก ์จ์ง๋ ๊ฒ์ ํ์ธํ๋ ๋ฐฉ์์ผ๋ก ์งํํ์๋ค. chaindb์๋ ๋๋จธ์ง ๋ธ๋ก์ ๋ณด๋ง ์กด์ฌํ๋ ๊ฒ์ ํ์ธํ์๋ค. ``` //coinbase์์ฑํ๊ณ personal.newAccount("base") miner.start() miner.stop() //1๋ฒ ๋ธ๋ก์ด ๋ง์ด๋๋์์๋ dbํ์ธ //์ถ๊ฐ ๊ณ์ ์ ์์ฑํ๊ณ , ํด๋น ๊ณ์ ์ผ๋ก 1eth์ ์ก personal.newAccount("guest1") eth.sendTransaction({from:eth.coinbase, to:eth.accounts[1], value: web3.toWei(5,"ether")}) //2๋ฒ๋ธ๋ก mining miner.start() miner.stop() // statedb์ stateObject๋ฅผ ํ์ธํ์ฌ balance๊ฐ 9, 1 ether๊ฐ ๋์์ผ ํ๋ค. ``` >์ด์ ๋๊ฐ๊ณ ๋ rlp๋ฅผ ๊น์ ์๊ฒ ๋์๋ค lol  #### Public ์ฒด์ธ์ ๋ฐ์ดํฐ๋ฅผ ํ์ธํด๋ณด์ private networkํ ์คํธ์์ ์๊ฐํ์ง ๋ชปํ ๋ถ๋ถ์ db์ ๋ฐ์ดํธ๊ฐ sync์์๋ ์ผ์ด๋๋ค๋ ๊ฒ์ด๋ค. sync๋ก์ง์์ ๊ธฐ์กด์ ๋ฐ์ดํฐ๊ฐ 1๊ฐ์ db๋ก ์ด๋ฃจ์ด์ ธ ์๋ค๊ณ ๊ฐ์ ํ์ฌ stateroot๋ฅผ chaindb์์ ์์ฑํ๋ ค๊ณ ํ๋ ๋ฌธ์ ๊ฐ ์์๋ค > ์์ (https://github.com/NAKsir-melody/go-ethereum/commit/c5cf1f83d05991dc5ccf891edab350d409693141 ์ฑํฌ๊ฐ ๋์ํ๋ฉด์, ๊ฐ์ฅ ๋จผ์ ์์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ค์ด ์ฃผ๊ธฐ์ ์ผ๋ก db์ ์ฌ์ด์ฆ๋ฅผ ๋ชจ๋ํฐ๋งํด๋ดค๋ค. ``` #!/usr/bin/python3 import subprocess import time def du(path): return subprocess.check_output(['du','-sb', path]).split()[0].decode('utf-8') if __name__ == "__main__": f = open('data.csv', 'w') while True: string = du('chaindata') + '\t' + du('statedata') +'\n' print(string) f.write(string) f.flush() time.sleep(3) f.close() ``` ## ์ด๊ธฐ ๊ฒฐ๊ณผ ํ์ธ Testnet ์ฑํฌ์ด๊ธฐ์ ๊ฐ DB์ ํฌ๊ธฐ๋ณ๊ฒฝ ์ถ์ธ๋ฅผ ๊ทธ๋ํ๋ก ๋ํ๋ด๋ณด๋ฉด, ์๋์ ๊ฐ๋ค.  ํ๋์ ๋ฐ์ดํฐ๊ฐ chaindb์ด๊ณ , ๋นจ๊ฐ์ ๋ฐ์ดํฐ๊ฐ statedb์ฌ์ด์ฆ์ธ๋ฐ, statedb๊ฐ ์๋ฑํ ๋ง์ ๊ฒ์ ํ์ธํ์๋ค. ์ด๊ธฐ์๋ ๊ณ์ ์ ๋ง์ด ๋ง๋ค์ด๋๊ณ ๋ง์ ํธ๋ ์ ์ ์ด ๋ณ๋ก ์์๋? ํ๋ ์๊ฐ๋ ๋ค๊ณ , ์ด๋ฌ๋ค๊ฐ ํธ๋ ์ ์ ์ด ํ์ฑํ ๋๋ฉด, ์ญ์ ํ๊ฒ ์ง? ๋ผ๋ ์๊ฐ๋ ๋ ๋ค. ๋ฌดํผ ๋ฐ์ดํฐ ๋ถ์ ํ๊ฒฝ์ ์ฐ์ ์ฑ๊ณต์ ์ผ๋ก ๊ตฌ์ถ์ด ๋๊ฒ์ผ๋ก ํ๋จ๋๋ค. ## ์ต์ข ๊ฒฐ๊ณผ๋ ์งํ์ค, ๊ฐ์ธ์ ์ผ๋ก ์งํ์ค(๋ฐํฌ๊ธฐ์ค)์ด๋ค. ์ฌ์ฉํ๋ ์ค๋๋ ๋ ธํธ๋ถ์ ๋ฆฌ์์ค ๋ฌธ์ ๋ก ๋์ด์ ์งํํ๊ธฐ ํ๋ค๊ฒ ๊ฐ๋ค. ๋ค๋ง, ์ด๋ฌํ ์๋๋ฅผ ํตํด ๋ฌด์ธ๊ฐ sync๋ฐฉ์์ ์ข๋ ๋ณํ์ํฌ์ ์์๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋๋๊ฒ ๊ฐ๋ค. ์ ๋ฆฌ๋์ง ์์ ์ค์ผ์น์ด์ง๋ง, ์ฒซ์ฑํฌ๋๋ ํ์๋ถ๋ถ์ ์ฒด์ธ๋ฐ์ดํฐ๊ฐ ํ์์๊ฒ ํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๋ ์ค์ด๋ค. ์ฑํฌ ์ดํ์๋ ์์ฒญ์ ๋ฐ๋ผ lesํ๋กํ ์ฝ์ ODR๋ก ์ฝ์ด์์ค์ผ ํ ๊ฒ์ด๋ค. ๊ทธ๋ฐ๋ฐ ์๊ฐํด๋ณด๋ฉด parity warp์ฑํฌ๋ ๊ทธ๋ค์ง ๋ค๋ฅธ๊ฑฐ ๊ฐ์ง๋ ์๋ค.  ## ๋ง์น๋ฉฐ, ๋ฐฑ์์ํ์ค์ ํด์จ ์ ๋ฌด๋ฅผ ์ ๋ฆฌํ๋ ์ฐจ์์์ ๊ธ์ ์ ๋ฆฌํด๋ณด์๋๋ฐ, ์ด๊ฒ ์ฐ๊ตฌ์ธ์ง, ํผ์๋๊ธฐ์ ์ง์์ธ์ง ์กฐ๊ธ ํท๊ฐ๋ฆฐ๋ค. ์ด์ ํ์ฌ์์ ๋๋ผ์ง ๋ชปํ๋ ๋ฆฌ์์ค์ ๋ถ์ฌ์ ๋ํ ์์ฌ์๋ ์๊ณ . ๋ธ๋ก์ฒด์ธ ์ ํ๋๊ณ ์ ๋ง ๋ง์ ์ง๋ฌธ์ ๋ฐ์๋ค. ๋งค๋ฒ ์ค๋ช ํ ๋๋ง๋ค ์ฅํฉ ํ์๋๋ฐ, ์๊ทผ๋ ์กฐ๊ธ์ฉ ์ ๋ฆฌ๊ฐ ๋์๋ค. "๋์ด ๋ ๊ฒ ๊ฐ์์ ๋์๋๋ฐ, ์ฝ๋๊ฐ ๋๋ฌด ์ฌ๋ฐ์ด์ ๋๋ฌ ์์์ต๋๋ค." > ์๋ชป ๋ถ์๋ ๋ด์ฉ์ด ์๊ฑฐ๋, ์์ ํ ๋ถ๋ถ์ด ์๋ค๋ฉด > [email protected]๋ก ์ธ์ ๋ ์ฐ๋ฝ๋ถํ๋๋ฆฝ๋๋ค. |
| json metadata | {"tags":["ethereum"],"image":["https://i.imgur.com/7JizzH2.png","https://i.imgur.com/6HIWqhe.png","https://i.imgur.com/41CHHBo.png","https://i.imgur.com/p4mwdXr.png","https://i.imgur.com/TjLlCXO.png","https://i.imgur.com/FpcJasQ.png","https://i.imgur.com/xvcTgT0.png","https://i.imgur.com/qlUbFsn.png","https://i.imgur.com/HrwRXMq.png","https://i.imgur.com/KLB4mAY.png","https://i.imgur.com/ayvlFcD.png"],"links":["https://github.com/NAKsir-melody/go-ethereum/commit/192a1412677ae0332a46f8ea17ba46ff6e79708c","https://github.com/NAKsir-melody/go-ethereum/commit/c5cf1f83d05991dc5ccf891edab350d409693141"],"app":"steemit/0.1","format":"markdown"} |
| Transaction Info | Block #33078106/Trx c6f80a7191e8f8d575efb9c52a51a2029e2880e7 |
View Raw JSON Data
{
"trx_id": "c6f80a7191e8f8d575efb9c52a51a2029e2880e7",
"block": 33078106,
"trx_in_block": 8,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-20T16:52:27",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "ethereum",
"author": "sigmoid",
"permlink": "ethreumdb-in-a-nutshell",
"title": "EthreumDB in a nutshell",
"body": "EthreumDB in a nutshell\n===\n\n์ฒด์ธ ๋ฐ์ดํฐ๊ฐ 100GB๋จ์๋ฅผ ๋์ด๊ฐ๋ฉด์, \nSyncํ ๋ ๋ง์ ๋ฌธ์ ๋ค์ด ๋ฐ์ํ๊ณ ์์ผ๋ฉฐ, ๋ค์ํ ๊ด๋ จ ์ฐ๊ตฌ๋ค์ด ์งํ์ค์ด์ง๋ง, ํ์ค์ ์ผ๋ก ๋ค๊ฐ์ค๊ธฐ์ ์๊ฐ์ด ์กฐ๊ธ ๋ ํ์ํ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.\n\n์ผ๋ง์ ๋ถํฐ ์ด๋๋ฆฌ์์ DB ๋ถ์์ ๊ณ์ ํด์๋ ์ด์ ๋, ์ด๋ป๊ฒํ๋ฉด ๋
ธ๋์ ์ฌ์ด ๋คํธ์ํฌ ๊ฐ์
์ ์ง์ํ ์ ์์๊น ๊ณ ๋ฏผํ๋ค, ์ฒซ๋ฒ์งธ ๋์ด์ผ ํ ํ๋ค์ด ๋ฐ์ดํฐ ํฌ๊ธฐ๋ผ๋ ๊ฒ์ ์๊ฐ์ด ๋ฟ์๊ธฐ ๋๋ฌธ์ด๋ค.\n\nํ์ฌ ๋ฐ์ดํฐ๋ค์ด ์ด๋ป๊ฒ ๊ตฌ์ฑ๋์ด ์์ฌ๊ฐ๊ณ ์๋์ง ๋ฅผ ๋ถ์ํ๊ณ , ์ข๋ ์ข์ ๋ฐฉํฅ์ผ๋ก ์ฐ๊ตฌ๋ฅผ ์งํํด ๋ณด๊ณ ์, ์ด ๊ธ์ ์์ํ๋ค.\n\n## ๊ธฐ๋ณธ ์๋ฃํ ์๊ธฐ\n\ngeth์ ๊ฒฝ์ฐ chaindata ํด๋(leveldb)์ ๋ธ๋ก ์ฒด์ธ์ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋๋ฐ, ์ ์ฅ๋๋ ๋ฐ์ดํฐ์ ์ข
๋ฅ๋ ๋ค์๊ณผ ๊ฐ๋ค.\n\n### 1. State Data\nํํ ๋งํ๋ ์ด๋๋ฆฌ์ ๊ณ์ ์ ์ ๋ณด์ด๋ค.\nkey, value์ ํํ๋ก ๋ณด์๋ฉด\n[secure-key + hash : address]\n[hash , rlp(stateObject)]\n[roothash, rlp(trie-node)\n์ ๋ฐ์ดํฐ๊ฐ ์ฃผ๋ฅผ ์ด๋ฃจ๋ฉฐ, ํํ ์ฐ๋ฆฌ๊ฐ ์ด์ผ๊ธฐํ๋ ๋จธํดํจํธ๋ฆฌ์ค(MPT) ์๋ฃ๊ตฌ์กฐ์ ๋ฐ์ดํฐ๋ฅผ ์๊ฐํ๋ฉด ๋๋ค.\n\n\nDB์๋ ์๋์ ๊ฐ์ ์์ผ๋ก ์์ผ๊ฒ์ด๋ค.\n\n>Tip 1.: ๋ธ๋ก์ฒด์ธ์ ํํ๋ค ์ง๊ฐ์ ๋์ด์๋ค๊ณ ํํํ๋๋ฐ, ๊ทธ ์ด์ ๊ฐ ์ฌ๊ธฐ์ ์๋ค. ์ง๊ฐ์ ๋จ์ง ์ด๋๋ฆฌ์ ๊ณ์ ์ ์ฃผ์์ ์๋ช
๊ธฐ๋ฅ๋ง์ ๊ฐ์ง๊ณ ์์ ๋ฟ, ํด๋น ์ฃผ์์ ์ค์ ๋ฐ์ดํฐ ์์ฒด๋ stateObject๋ผ๋ ํ์
์ผ๋ก ๋
ธ๋์ DB์ ์กด์ฌํ๋ค. \n\n\n### 2. Chain data\nํํ ๋ธ๋ก์ฒด์ธ์ด๋ผ๊ณ ํํํ๋ ๋ฐ์ดํฐ๋ค์ด๋ฉฐ, ๋ค์์ ๋ฐ์ดํฐ๋ค์ด LevelDB์ ์ ์ฅ๋๋ค.\n\n#### Transaction\nํธ๋ ์ ์
์ ์๋ฃ๊ตฌ์กฐ๋ ์ด๋ ๊ฒ ์๊ฒผ๊ณ , ์๋์ ๊ทธ๋ฆผ์ฒ๋ผ ํธ๋ ์ ์
ํด์๋ ์๋ช
๊ฐ์ด ์ฑ์์ง๋ค.\n\n\nํธ๋ ์ ์
ํด์์ ์๋ช
ํ๋๋ ๋ค์๊ณผ ๊ฐ์ด ๊ณ์ฐ๋๋ค.\n\n\n\n\n#### Block Header\n๋ธ๋ก์ฒด์ธ์ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ๊ฑฐ์ ๋๋ถ๋ถ ํค๋์ ๋ด๊ธด๋ค๊ณ ๋ณผ ์ ์๊ฒ ๋ค. ๋ ์ค๋ช
ํ ํ์๋ ์์๋ฏ.\n\n\n\n\n#### Block Body\n๋ธ๋ก์ ๋ด๊ธธ transaction list์ uncle ๋ธ๋ก์ผ๋ก ํ์ ๋ ๋ธ๋ก์ header hash list๋ฅผ ์ ์ฅํ๋ค.\n\n\n\n#### Reciept & Log\nํธ๋ ์ ์
์ ์คํ๊ฒฐ๊ณผ, ์๋ชจ๊ฐ์ค๋ ๋ฑ์ด ์ ์ฅ๋๋ ์์์ฆ๊ณผ, contract์ event emit์ ํ์ฉ๋ Log์ ๋ณด๋ฑ์ ํฌํจํ๋ค\n\n\n\n> Tip 2. DB์ ์ค๋ฆฌ๋ ์ถ๊ฐ์ ๋ณด๋ค\nDatabase version, Last[Block,Hash,...]๋ sync logic์ ๊ด๋ จ๋ ํ๋๋ค์ด๋ค.\nํค๋, ๋ธ๋ก๋ฑ์ด ํ์ฌ ์ด๋๊น์ง ์ฑํฌ๋์๋์ง๋ฅผ ๋ํ๋ด๋ ํ๋๋ก์, Node๊ฐ On/Off๋ ๋ DB๋ฅผ ์ฝ์ด ์ด์ด ๋ฐ๊ธฐ๋ฅผ ํ ์ ์๋ค.\n\n\n## DB๋ฅผ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋๋์ด ๋ณด์๋ค\n\n๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์์ Db์ ๋๋๊ณ ์ถ์์ง๋ง, ์ฐ์ ์ฝ๋ ๊ตฌํ์ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ์์
ํ ์ ์์ด๋ณด์๊ธฐ ๋๋ฌธ์ chaindata์ Statedata๋ฅผ ๋ฐ๋ก ์ ์ฅํ๋๋ก ๋ถ๋ฆฌ๋ฅผ ํด ๋ณด์๋ค.\n>(์์ : https://github.com/NAKsir-melody/go-ethereum/commit/192a1412677ae0332a46f8ea17ba46ff6e79708c ์ฐธ์กฐ)\n\n#### ๋จผ์ , private network single node์์์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ฆํด ๋ณธ๋ค.\nself mining์ ๊ฒฝ์ฐ ๋ธ๋ก confirm ํ์ด๋ฐ์ด ๋์ด์ผ potential block์ genesis chain์ ์ถ๊ฐํ๋ค.๋ฐ๋ผ์ DB์ ์๋ณด์ผ์ ์์ผ๋ฏ๋ก caching๊ด๋ จ์ต์
์ ๋๊ณ , confirmํ์๋ 1๋ก ๋ณ๊ฒฝํด์ผ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ํ๋ณดํ ์ ์์๋ค.\n \n๋ฐ์ดํฐ ๊ฒ์ฆ์ ์๋ ์ฒ๋ผ ์ด์นด์ดํธ 2๊ฐ๋ฅผ ์์ฑํ ๊ฒ์ดstatedb์ ์ฐ์ฌ์ง๊ณ ,ํธ๋ ์ ์
์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ฉด, Trie๊ฐ ์ถ๊ฐ์ ์ผ๋ก ์จ์ง๋ ๊ฒ์ ํ์ธํ๋ ๋ฐฉ์์ผ๋ก ์งํํ์๋ค. chaindb์๋ ๋๋จธ์ง ๋ธ๋ก์ ๋ณด๋ง ์กด์ฌํ๋ ๊ฒ์ ํ์ธํ์๋ค.\n```\n//coinbase์์ฑํ๊ณ \npersonal.newAccount(\"base\")\nminer.start()\nminer.stop()\n//1๋ฒ ๋ธ๋ก์ด ๋ง์ด๋๋์์๋ dbํ์ธ\n\n//์ถ๊ฐ ๊ณ์ ์ ์์ฑํ๊ณ , ํด๋น ๊ณ์ ์ผ๋ก 1eth์ ์ก\npersonal.newAccount(\"guest1\")\neth.sendTransaction({from:eth.coinbase, to:eth.accounts[1], value: web3.toWei(5,\"ether\")})\n\n//2๋ฒ๋ธ๋ก mining \nminer.start()\nminer.stop()\n\n// statedb์ stateObject๋ฅผ ํ์ธํ์ฌ balance๊ฐ 9, 1 ether๊ฐ ๋์์ผ ํ๋ค.\n```\n\n>์ด์ ๋๊ฐ๊ณ ๋ rlp๋ฅผ ๊น์ ์๊ฒ ๋์๋ค lol\n\n\n\n\n\n#### Public ์ฒด์ธ์ ๋ฐ์ดํฐ๋ฅผ ํ์ธํด๋ณด์ \nprivate networkํ
์คํธ์์ ์๊ฐํ์ง ๋ชปํ ๋ถ๋ถ์ db์
๋ฐ์ดํธ๊ฐ sync์์๋ ์ผ์ด๋๋ค๋ ๊ฒ์ด๋ค. sync๋ก์ง์์ ๊ธฐ์กด์ ๋ฐ์ดํฐ๊ฐ 1๊ฐ์ db๋ก ์ด๋ฃจ์ด์ ธ ์๋ค๊ณ ๊ฐ์ ํ์ฌ stateroot๋ฅผ chaindb์์ ์์ฑํ๋ ค๊ณ ํ๋ ๋ฌธ์ ๊ฐ ์์๋ค\n> ์์ (https://github.com/NAKsir-melody/go-ethereum/commit/c5cf1f83d05991dc5ccf891edab350d409693141\n\n์ฑํฌ๊ฐ ๋์ํ๋ฉด์, ๊ฐ์ฅ ๋จผ์ ์์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ง๋ค์ด ์ฃผ๊ธฐ์ ์ผ๋ก db์ ์ฌ์ด์ฆ๋ฅผ ๋ชจ๋ํฐ๋งํด๋ดค๋ค.\n\n```\n#!/usr/bin/python3\n\nimport subprocess\nimport time\n\ndef du(path):\n return subprocess.check_output(['du','-sb', path]).split()[0].decode('utf-8')\n\nif __name__ == \"__main__\":\n f = open('data.csv', 'w')\n while True:\n string = du('chaindata') + '\\t' + du('statedata') +'\\n'\n print(string)\n f.write(string)\n f.flush()\n time.sleep(3)\n f.close()\n\n```\n\n\n## ์ด๊ธฐ ๊ฒฐ๊ณผ ํ์ธ\n\nTestnet ์ฑํฌ์ด๊ธฐ์ ๊ฐ DB์ ํฌ๊ธฐ๋ณ๊ฒฝ ์ถ์ธ๋ฅผ ๊ทธ๋ํ๋ก ๋ํ๋ด๋ณด๋ฉด, ์๋์ ๊ฐ๋ค.\n\n\nํ๋์ ๋ฐ์ดํฐ๊ฐ chaindb์ด๊ณ , ๋นจ๊ฐ์ ๋ฐ์ดํฐ๊ฐ statedb์ฌ์ด์ฆ์ธ๋ฐ, statedb๊ฐ ์๋ฑํ ๋ง์ ๊ฒ์ ํ์ธํ์๋ค.\n์ด๊ธฐ์๋ ๊ณ์ ์ ๋ง์ด ๋ง๋ค์ด๋๊ณ ๋ง์ ํธ๋ ์ ์
์ด ๋ณ๋ก ์์๋? ํ๋ ์๊ฐ๋ ๋ค๊ณ ,\n์ด๋ฌ๋ค๊ฐ ํธ๋ ์ ์
์ด ํ์ฑํ ๋๋ฉด, ์ญ์ ํ๊ฒ ์ง? ๋ผ๋ ์๊ฐ๋ ๋ ๋ค. ๋ฌดํผ ๋ฐ์ดํฐ ๋ถ์ ํ๊ฒฝ์ ์ฐ์ ์ฑ๊ณต์ ์ผ๋ก ๊ตฌ์ถ์ด ๋๊ฒ์ผ๋ก ํ๋จ๋๋ค.\n\n\n## ์ต์ข
๊ฒฐ๊ณผ๋ ์งํ์ค, \n๊ฐ์ธ์ ์ผ๋ก ์งํ์ค(๋ฐํฌ๊ธฐ์ค)์ด๋ค. ์ฌ์ฉํ๋ ์ค๋๋ ๋
ธํธ๋ถ์ ๋ฆฌ์์ค ๋ฌธ์ ๋ก ๋์ด์ ์งํํ๊ธฐ ํ๋ค๊ฒ ๊ฐ๋ค. ๋ค๋ง, ์ด๋ฌํ ์๋๋ฅผ ํตํด ๋ฌด์ธ๊ฐ sync๋ฐฉ์์ ์ข๋ ๋ณํ์ํฌ์ ์์๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋๋๊ฒ ๊ฐ๋ค.\n\n์ ๋ฆฌ๋์ง ์์ ์ค์ผ์น์ด์ง๋ง, ์ฒซ์ฑํฌ๋๋ ํ์๋ถ๋ถ์ ์ฒด์ธ๋ฐ์ดํฐ๊ฐ ํ์์๊ฒ ํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๋ ์ค์ด๋ค. ์ฑํฌ ์ดํ์๋ ์์ฒญ์ ๋ฐ๋ผ lesํ๋กํ ์ฝ์ ODR๋ก ์ฝ์ด์์ค์ผ ํ ๊ฒ์ด๋ค. ๊ทธ๋ฐ๋ฐ ์๊ฐํด๋ณด๋ฉด parity warp์ฑํฌ๋ ๊ทธ๋ค์ง ๋ค๋ฅธ๊ฑฐ ๊ฐ์ง๋ ์๋ค.\n\n\n\n## ๋ง์น๋ฉฐ,\n๋ฐฑ์์ํ์ค์ ํด์จ ์
๋ฌด๋ฅผ ์ ๋ฆฌํ๋ ์ฐจ์์์ ๊ธ์ ์ ๋ฆฌํด๋ณด์๋๋ฐ,\n์ด๊ฒ ์ฐ๊ตฌ์ธ์ง, ํผ์๋๊ธฐ์ ์ง์์ธ์ง ์กฐ๊ธ ํท๊ฐ๋ฆฐ๋ค.\n์ด์ ํ์ฌ์์ ๋๋ผ์ง ๋ชปํ๋ ๋ฆฌ์์ค์ ๋ถ์ฌ์ ๋ํ ์์ฌ์๋ ์๊ณ .\n๋ธ๋ก์ฒด์ธ ์ ํ๋๊ณ ์ ๋ง ๋ง์ ์ง๋ฌธ์ ๋ฐ์๋ค. ๋งค๋ฒ ์ค๋ช
ํ ๋๋ง๋ค ์ฅํฉ ํ์๋๋ฐ, ์๊ทผ๋ ์กฐ๊ธ์ฉ ์ ๋ฆฌ๊ฐ ๋์๋ค.\n\n\"๋์ด ๋ ๊ฒ ๊ฐ์์ ๋์๋๋ฐ, ์ฝ๋๊ฐ ๋๋ฌด ์ฌ๋ฐ์ด์ ๋๋ฌ ์์์ต๋๋ค.\"\n\n> ์๋ชป ๋ถ์๋ ๋ด์ฉ์ด ์๊ฑฐ๋, ์์ ํ ๋ถ๋ถ์ด ์๋ค๋ฉด \n> [email protected]๋ก ์ธ์ ๋ ์ฐ๋ฝ๋ถํ๋๋ฆฝ๋๋ค.",
"json_metadata": "{\"tags\":[\"ethereum\"],\"image\":[\"https://i.imgur.com/7JizzH2.png\",\"https://i.imgur.com/6HIWqhe.png\",\"https://i.imgur.com/41CHHBo.png\",\"https://i.imgur.com/p4mwdXr.png\",\"https://i.imgur.com/TjLlCXO.png\",\"https://i.imgur.com/FpcJasQ.png\",\"https://i.imgur.com/xvcTgT0.png\",\"https://i.imgur.com/qlUbFsn.png\",\"https://i.imgur.com/HrwRXMq.png\",\"https://i.imgur.com/KLB4mAY.png\",\"https://i.imgur.com/ayvlFcD.png\"],\"links\":[\"https://github.com/NAKsir-melody/go-ethereum/commit/192a1412677ae0332a46f8ea17ba46ff6e79708c\",\"https://github.com/NAKsir-melody/go-ethereum/commit/c5cf1f83d05991dc5ccf891edab350d409693141\"],\"app\":\"steemit/0.1\",\"format\":\"markdown\"}"
}
]
}sigmoidreceived 0.000 STEEM from power down installment (0.000 SP)2019/05/20 13:14:33
sigmoidreceived 0.000 STEEM from power down installment (0.000 SP)
2019/05/20 13:14:33
| from account | sigmoid |
| to account | sigmoid |
| withdrawn | 0.000012 VESTS |
| deposited | 0.000 STEEM |
| Transaction Info | Block #33073749/Virtual Operation #15 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 33073749,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 15,
"timestamp": "2019-05-20T13:14:33",
"op": [
"fill_vesting_withdraw",
{
"from_account": "sigmoid",
"to_account": "sigmoid",
"withdrawn": "0.000012 VESTS",
"deposited": "0.000 STEEM"
}
]
}sigmoidreceived 1.006 STEEM from power down installment (1.233 SP)2019/05/13 13:14:33
sigmoidreceived 1.006 STEEM from power down installment (1.233 SP)
2019/05/13 13:14:33
| from account | sigmoid |
| to account | sigmoid |
| withdrawn | 2007.574884 VESTS |
| deposited | 1.006 STEEM |
| Transaction Info | Block #32872278/Virtual Operation #3 |
View Raw JSON Data
{
"trx_id": "0000000000000000000000000000000000000000",
"block": 32872278,
"trx_in_block": 4294967295,
"op_in_trx": 0,
"virtual_op": 3,
"timestamp": "2019-05-13T13:14:33",
"op": [
"fill_vesting_withdraw",
{
"from_account": "sigmoid",
"to_account": "sigmoid",
"withdrawn": "2007.574884 VESTS",
"deposited": "1.006 STEEM"
}
]
}2019/05/12 06:10:54
2019/05/12 06:10:54
| parent author | sigmoid |
| parent permlink | clique |
| author | steemitboard |
| permlink | steemitboard-notify-sigmoid-20190512t061053000z |
| title | |
| body | Congratulations @sigmoid! You received a personal award! <table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@sigmoid/birthday1.png</td><td>Happy Birthday! - You are on the Steem blockchain for 1 year!</td></tr></table> <sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@sigmoid) and compare to others on the [Steem Ranking](http://steemitboard.com/ranking/index.php?name=sigmoid)_</sub> **Do not miss the last post from @steemitboard:** <table><tr><td><a href="https://steemit.com/steemitboard/@steemitboard/steemitboard-witness-update-2019-05"><img src="https://steemitimages.com/64x128/http://i.cubeupload.com/7CiQEO.png"></a></td><td><a href="https://steemit.com/steemitboard/@steemitboard/steemitboard-witness-update-2019-05">SteemitBoard - Witness Update</a></td></tr></table> ###### [Vote for @Steemitboard as a witness](https://v2.steemconnect.com/sign/account-witness-vote?witness=steemitboard&approve=1) to get one more award and increased upvotes! |
| json metadata | {"image":["https://steemitboard.com/img/notify.png"]} |
| Transaction Info | Block #32835023/Trx e24e8c1ab676ce22c50932212290d87b2bf4317a |
View Raw JSON Data
{
"trx_id": "e24e8c1ab676ce22c50932212290d87b2bf4317a",
"block": 32835023,
"trx_in_block": 7,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-12T06:10:54",
"op": [
"comment",
{
"parent_author": "sigmoid",
"parent_permlink": "clique",
"author": "steemitboard",
"permlink": "steemitboard-notify-sigmoid-20190512t061053000z",
"title": "",
"body": "Congratulations @sigmoid! You received a personal award!\n\n<table><tr><td>https://steemitimages.com/70x70/http://steemitboard.com/@sigmoid/birthday1.png</td><td>Happy Birthday! - You are on the Steem blockchain for 1 year!</td></tr></table>\n\n<sub>_You can view [your badges on your Steem Board](https://steemitboard.com/@sigmoid) and compare to others on the [Steem Ranking](http://steemitboard.com/ranking/index.php?name=sigmoid)_</sub>\n\n\n**Do not miss the last post from @steemitboard:**\n<table><tr><td><a href=\"https://steemit.com/steemitboard/@steemitboard/steemitboard-witness-update-2019-05\"><img src=\"https://steemitimages.com/64x128/http://i.cubeupload.com/7CiQEO.png\"></a></td><td><a href=\"https://steemit.com/steemitboard/@steemitboard/steemitboard-witness-update-2019-05\">SteemitBoard - Witness Update</a></td></tr></table>\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\"]}"
}
]
}2019/05/07 23:08:51
2019/05/07 23:08:51
| parent author | |
| parent permlink | bitcoin |
| author | sigmoid |
| permlink | 3geypw |
| title | ์ํธํํ ์ฐ์ ์ ๋จ๋ฉด์ ์ฝ๋๋ก ๋ณด๋ค. |
| body | @@ -2213,195 +2213,4 @@ %EB%9F%BD%EB%84%A4%EC%9A%94. -%0A%0A%3E%EC%97%AC%EB%9F%AC%EB%B6%84%EC%9D%98 up vote %EA%B0%80 %ED%81%B0 %EB%8F%84%EC%9B%80%EC%9D%B4 %EB%90%A9%EB%8B%88%EB%8B%A4.%0A%ED%9B%84%EC%9B%90: 0x62467Ca1b449c854c4720395Dd9a7c6Ed5df47B7(ethereum)%0A!%5Baccount.png%5D(https://cdn.steemitimages.com/DQmVh2v6zDGqrGpMSvRb7wswV8XYSxrgKvtFk99rdueoTPd/account.png) |
| json metadata | {"format":"markdown","image":["https://cdn.steemitimages.com/DQmXXr34LGmEzAL3do8U3AKRB8Xomhd4UoPQmoKw7NQMru9/image.png","https://s2.coinmarketcap.com/static/img/coins/32x32/131.png","https://s2.coinmarketcap.com/static/img/coins/32x32/1169.png","https://cdn.steemitimages.com/DQmQyHip9VEP53Wsy3jCGXGH6KahASmDgXwH7c3JfkFnr7K/image.png","https://cdn.steemitimages.com/DQmcdgcyGxNLw5jCtxukBBhH6sqtuPNgZ9whCTDX38dUsWg/image.png"],"app":"steemit/0.1","tags":["bitcoin","dash","pivx"],"links":["https://github.com/Rheniumnetwork/Rhenium"]} |
| Transaction Info | Block #32711428/Trx a4623ae8aca9bbcb26e726597331703b642ae724 |
View Raw JSON Data
{
"trx_id": "a4623ae8aca9bbcb26e726597331703b642ae724",
"block": 32711428,
"trx_in_block": 42,
"op_in_trx": 0,
"virtual_op": 0,
"timestamp": "2019-05-07T23:08:51",
"op": [
"comment",
{
"parent_author": "",
"parent_permlink": "bitcoin",
"author": "sigmoid",
"permlink": "3geypw",
"title": "์ํธํํ ์ฐ์
์ ๋จ๋ฉด์ ์ฝ๋๋ก ๋ณด๋ค.",
"body": "@@ -2213,195 +2213,4 @@\n %EB%9F%BD%EB%84%A4%EC%9A%94.\n-%0A%0A%3E%EC%97%AC%EB%9F%AC%EB%B6%84%EC%9D%98 up vote %EA%B0%80 %ED%81%B0 %EB%8F%84%EC%9B%80%EC%9D%B4 %EB%90%A9%EB%8B%88%EB%8B%A4.%0A%ED%9B%84%EC%9B%90: 0x62467Ca1b449c854c4720395Dd9a7c6Ed5df47B7(ethereum)%0A!%5Baccount.png%5D(https://cdn.steemitimages.com/DQmVh2v6zDGqrGpMSvRb7wswV8XYSxrgKvtFk99rdueoTPd/account.png)\n",
"json_metadata": "{\"format\":\"markdown\",\"image\":[\"https://cdn.steemitimages.com/DQmXXr34LGmEzAL3do8U3AKRB8Xomhd4UoPQmoKw7NQMru9/image.png\",\"https://s2.coinmarketcap.com/static/img/coins/32x32/131.png\",\"https://s2.coinmarketcap.com/static/img/coins/32x32/1169.png\",\"https://cdn.steemitimages.com/DQmQyHip9VEP53Wsy3jCGXGH6KahASmDgXwH7c3JfkFnr7K/image.png\",\"https://cdn.steemitimages.com/DQmcdgcyGxNLw5jCtxukBBhH6sqtuPNgZ9whCTDX38dUsWg/image.png\"],\"app\":\"steemit/0.1\",\"tags\":[\"bitcoin\",\"dash\",\"pivx\"],\"links\":[\"https://github.com/Rheniumnetwork/Rhenium\"]}"
}
]
}Manabar
Voting Power0.00%
Downvote Power0.00%
Resource Credits100.00%
Reputation Progress27.98%
{
"voting_manabar": {
"current_mana": "16416848584",
"last_update_time": 1585189323
},
"downvote_manabar": {
"current_mana": 4104212146,
"last_update_time": 1585189323
},
"rc_account": {
"account": "sigmoid",
"rc_manabar": {
"current_mana": 1975389596,
"last_update_time": 1624272600
},
"max_rc_creation_adjustment": {
"amount": "2020748973",
"precision": 6,
"nai": "@@000000037"
},
"max_rc": 2020748973
}
}Account Metadata
| POSTING JSON METADATA | |
| profile | {"name":"SigmoiD","about":"Dsrv Labs.","website":"http://dsrvlabs.com","cover_image":"https://steemitimages.com/DQmNQEbBYYzgiLCCZKky4UfzY84kiwN21LwLop22PYtwNoC/20180309_203350.jpg","profile_image":"http://www.dsrvlabs.com/me.jpg"} |
| JSON METADATA | |
| profile | {"name":"SigmoiD","about":"Dsrv Labs.","website":"http://dsrvlabs.com","cover_image":"https://steemitimages.com/DQmNQEbBYYzgiLCCZKky4UfzY84kiwN21LwLop22PYtwNoC/20180309_203350.jpg","profile_image":"http://www.dsrvlabs.com/me.jpg"} |
{
"posting_json_metadata": {
"profile": {
"name": "SigmoiD",
"about": "Dsrv Labs.",
"website": "http://dsrvlabs.com",
"cover_image": "https://steemitimages.com/DQmNQEbBYYzgiLCCZKky4UfzY84kiwN21LwLop22PYtwNoC/20180309_203350.jpg",
"profile_image": "http://www.dsrvlabs.com/me.jpg"
}
},
"json_metadata": {
"profile": {
"name": "SigmoiD",
"about": "Dsrv Labs.",
"website": "http://dsrvlabs.com",
"cover_image": "https://steemitimages.com/DQmNQEbBYYzgiLCCZKky4UfzY84kiwN21LwLop22PYtwNoC/20180309_203350.jpg",
"profile_image": "http://www.dsrvlabs.com/me.jpg"
}
}
}Auth Keys
Owner
Single Signature
Public Keys
STM88SHsdJQQUFUn95yzJs1kGLBhtFXr7eGsJ1bYns12wyZ2GyHJB1/1
Active
Single Signature
Public Keys
STM4zgHjLrLi1w8MnLEgcgi76Sz5psjFNPp7mYvQbzGXgL7jeGHkb1/1
Posting
Single Signature
Public Keys
STM5itgF2CnNT1fs4xmXKKk3ahQ9znX9bucm4G37sEtTkaaH15YFm1/1
Memo
STM6oe4V9TPmAs8Pux2Eg9SpFhAXwRtTPeYziAYmNdjDb8VSgwBrz
{
"owner": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM88SHsdJQQUFUn95yzJs1kGLBhtFXr7eGsJ1bYns12wyZ2GyHJB",
1
]
]
},
"active": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM4zgHjLrLi1w8MnLEgcgi76Sz5psjFNPp7mYvQbzGXgL7jeGHkb",
1
]
]
},
"posting": {
"weight_threshold": 1,
"account_auths": [],
"key_auths": [
[
"STM5itgF2CnNT1fs4xmXKKk3ahQ9znX9bucm4G37sEtTkaaH15YFm",
1
]
]
},
"memo": "STM6oe4V9TPmAs8Pux2Eg9SpFhAXwRtTPeYziAYmNdjDb8VSgwBrz"
}Witness Votes
1 / 30
01.clayop |
[ "clayop" ]