Ecoer Logo

@sigmoid

50

Dsrv Labs.

steemit.com/@sigmoid
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
market_balance
0.000STEEM
savings_balance
0.467STEEM
reward_steem_balance
0.000STEEM
STEEM POWER
Own SP
0.000SP
Delegated Out
0.000SP
Delegation In
0.000SP
Effective Power
0.000SP
Reward SP (pending)
0.000SP
SBD
sbd_balance
0.000SBD
sbd_conversions
0.000SBD
sbd_market_balance
0.000SBD
savings_sbd_balance
0.121SBD
reward_sbd_balance
0.000SBD
{
  "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

namesigmoid
id992192
rank1,907,448
reputation643977730212
created2018-05-12T05:00:03
recovery_accountsteem
proxyNone
post_count87
comment_count0
lifetime_vote_count0
witnesses_voted_for1
last_post2019-11-22T11:20:57
last_root_post2019-11-22T11:20:57
last_vote_time2018-12-28T13:29:27
proxied_vsf_votes0, 0, 0, 0
can_vote1
voting_power0
delayed_votes0
balance0.000 STEEM
savings_balance0.467 STEEM
sbd_balance0.000 SBD
savings_sbd_balance0.121 SBD
vesting_shares0.000000 VESTS
delegated_vesting_shares0.000000 VESTS
received_vesting_shares0.000000 VESTS
reward_vesting_balance0.000000 VESTS
vesting_balance0.000 STEEM
vesting_withdraw_rate0.000000 VESTS
next_vesting_withdrawal1969-12-31T23:59:59
withdrawn17356064905
to_withdraw17356064905
withdraw_routes0
savings_withdraw_requests0
last_account_recovery1970-01-01T00:00:00
reset_accountnull
last_owner_update1970-01-01T00:00:00
last_account_update2019-05-03T01:49:36
minedNo
sbd_seconds159,570
sbd_last_interest_payment2020-03-18T15:09:30
savings_sbd_last_interest_payment2019-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

IncomingOutgoing
Empty
Empty
{
  "incoming": [],
  "outgoing": []
}
From Date
To Date
2022/05/22 10:10:21
parent authorsigmoid
parent permlinkprivate-network-block-explorer
authorjhsung97
permlinkrca48h
title
body์•ˆ๋…•ํ•˜์„ธ์š”. ํ˜„์žฌ p2e ๊ฒŒ์ž„์„ ๊ฐœ๋ฐœ์ค‘์— ์žˆ์Šต๋‹ˆ๋‹ค. ํŠธ๋žœ์žญ์…˜์„ ์ง๊ด€์ ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์‚ฌ์ดํŠธ๊ฐ€ ํ•„์š”ํ•œ๋ฐ ๊ตฌ๊ธ€๋ง์„ ํ•˜๋‹ค๊ฐ€ ์ด ํฌ์ŠคํŒ…์„ ๋ณด๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊นƒํ—ˆ๋ธŒ์— ์ ‘์†ํ•ด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค์šด๋ฐ›์•˜๊ณ , ์›น์— ๋„์šฐ๊ธฐ๊นŒ์ง€๋Š” ์ง„ํ–‰๋์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ Recent Block. Transaction ํ•ญ๋ชฉ์—์„œ ๊ณ„์† ๋กœ๋”ฉ๋งŒ ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์•„์ง ์ดˆ๋ณด๋ผ ์˜ฌ๋ ค์ฃผ์‹  ํฌ์ŠคํŒ…์„ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ๊ฒƒ์ผ ์ˆ˜ ์žˆ๋Š”๋ฐ ํ˜น์‹œ ๋ฐฉ๋ฒ•์„ ์ข€ ์•Œ๋ ค์ฃผ์‹ค์ˆ˜ ์žˆ์„๊นŒ ์‹ถ์–ด ๋Œ“๊ธ€ ๋‹ฌ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
json metadata{"app":"steemit/0.2"}
Transaction InfoBlock #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
parent authorsigmoid
parent permlinkprivate-network-block-explorer
authorjhsung97
permlinkrca48h
title
body์•ˆ๋…•ํ•˜์„ธ์š”. ํ˜„์žฌ p2e ๊ฒŒ์ž„์„ ๊ฐœ๋ฐœ์ค‘์— ์žˆ์Šต๋‹ˆ๋‹ค. ํŠธ๋žœ์žญ์…˜์„ ์ง๊ด€์ ์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์‚ฌ์ดํŠธ๊ฐ€ ํ•„์š”ํ•œ๋ฐ ๊ตฌ๊ธ€๋ง์„ ํ•˜๋‹ค๊ฐ€ ์ด ํฌ์ŠคํŒ…์„ ๋ณด๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊นƒํ—ˆ๋ธŒ์— ์ ‘์†ํ•ด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๋‹ค์šด๋ฐ›์•˜๊ณ , ์›น์— ๋„์šฐ๊ธฐ๊นŒ์ง€๋Š” ์ง„ํ–‰๋์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ Recent Block. Transaction ํ•ญ๋ชฉ์—์„œ ๊ณ„์† ๋กœ๋”ฉ๋งŒ ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ์•„์ง ์ดˆ๋ณด๋ผ ์˜ฌ๋ ค์ฃผ์‹  ํฌ์ŠคํŒ…์„ ์ œ๋Œ€๋กœ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ๊ฒƒ์ผ ์ˆ˜ ์žˆ๋Š”๋ฐ ํ˜น์‹œ ๋ฐฉ๋ฒ•์„ ์ข€ ์•Œ๋ ค์ฃผ์‹ค์ˆ˜ ์žˆ์„๊นŒ ์‹ถ์–ด ๋Œ“๊ธ€ ๋‹ฌ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.
json metadata{"app":"steemit/0.2"}
Transaction InfoBlock #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: notify
2021/06/21 10:50:00
required auths[]
required posting auths["sigmoid"]
idnotify
json["setLastRead",{"date":"2021-06-21T10:49:59"}]
Transaction InfoBlock #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 / gpu
2021/03/23 01:22:15
voterfollowme95
authorsigmoid
permlinkgpu
weight10000 (100.00%)
Transaction InfoBlock #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
fromsigmoid
touser.dunamu
amount9.363 STEEM
memo9adae8bb-47c0-4522-876a-e343bac784c1
Transaction InfoBlock #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
from accountsigmoid
to accountsigmoid
withdrawn1335.081913 VESTS
deposited0.685 STEEM
Transaction InfoBlock #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
from accountsigmoid
to accountsigmoid
withdrawn1335.081916 VESTS
deposited0.685 STEEM
Transaction InfoBlock #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
from accountsigmoid
to accountsigmoid
withdrawn1335.081916 VESTS
deposited0.685 STEEM
Transaction InfoBlock #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
from accountsigmoid
to accountsigmoid
withdrawn1335.081916 VESTS
deposited0.684 STEEM
Transaction InfoBlock #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
from accountsigmoid
to accountsigmoid
withdrawn1335.081916 VESTS
deposited0.684 STEEM
Transaction InfoBlock #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
from accountsigmoid
to accountsigmoid
withdrawn1335.081916 VESTS
deposited0.684 STEEM
Transaction InfoBlock #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
from accountsigmoid
to accountsigmoid
withdrawn1335.081916 VESTS
deposited0.683 STEEM
Transaction InfoBlock #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
from accountsigmoid
to accountsigmoid
withdrawn1335.081916 VESTS
deposited0.683 STEEM
Transaction InfoBlock #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
from accountsigmoid
to accountsigmoid
withdrawn1335.081916 VESTS
deposited0.683 STEEM
Transaction InfoBlock #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
from accountsigmoid
to accountsigmoid
withdrawn1335.081916 VESTS
deposited0.682 STEEM
Transaction InfoBlock #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
from accountsigmoid
to accountsigmoid
withdrawn1335.081916 VESTS
deposited0.682 STEEM
Transaction InfoBlock #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
from accountsigmoid
to accountsigmoid
withdrawn1335.081916 VESTS
deposited0.682 STEEM
Transaction InfoBlock #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
from accountsigmoid
to accountsigmoid
withdrawn1335.081916 VESTS
deposited0.682 STEEM
Transaction InfoBlock #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
fromsigmoid
touser.dunamu
amount1.182 SBD
memo9adae8bb-47c0-4522-876a-e343bac784c1
Transaction InfoBlock #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 SP
2020/03/26 02:22:36
accountsigmoid
vesting shares17356.064905 VESTS
Transaction InfoBlock #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 SP
2020/03/26 02:22:03
accountsigmoid
reward steem0.000 STEEM
reward sbd1.182 SBD
reward vests6085.469060 VESTS
Transaction InfoBlock #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"
    }
  ]
}
sigmoidpublished a new post: 2bapgg
2020/03/26 02:20:45
parent author
parent permlinkbitcoin
authorsigmoid
permlink2bapgg
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 InfoBlock #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
from accountsigmoid
to accountsigmoid
withdrawn939.216321 VESTS
deposited0.479 STEEM
Transaction InfoBlock #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
fromsigmoid
touser.dunamu
amount2.500 SBD
memo9adae8bb-47c0-4522-876a-e343bac784c1
Transaction InfoBlock #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
fromsigmoid
touser.dunamu
amount12.044 STEEM
memo9adae8bb-47c0-4522-876a-e343bac784c1
Transaction InfoBlock #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 SP
2020/03/18 15:06:27
accountsigmoid
vesting shares12209.812166 VESTS
Transaction InfoBlock #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"
    }
  ]
}
2019/11/29 08:49:24
parent author
parent permlinkcelo
authorsigmoid
permlinkcelo-a-multi-asset-cryptographic-protocol-for-decentralized-social-payments
titleCelo: 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 InfoBlock #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
votersteeming-hot
authorsigmoid
permlinkcelo-a-multi-asset-cryptographic-protocol-for-decentralized-social-payments
weight1 (0.01%)
Transaction InfoBlock #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
voterlaissez-faire
authorsigmoid
permlinkcelo-a-multi-asset-cryptographic-protocol-for-decentralized-social-payments
weight10000 (100.00%)
Transaction InfoBlock #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
voteranomaly
authorsigmoid
permlinkcelo-a-multi-asset-cryptographic-protocol-for-decentralized-social-payments
weight100 (1.00%)
Transaction InfoBlock #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
    }
  ]
}
2019/11/22 11:20:57
parent author
parent permlinkcelo
authorsigmoid
permlinkcelo-a-multi-asset-cryptographic-protocol-for-decentralized-social-payments
titleCelo: 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๋ฅผ ๋ณด๋‚ผ์ˆ˜๋„ ์žˆ๋„ค์š”. ![](https://cdn.steemitimages.com/DQmbG9NvnHGeBDCruXuF4u4q6GZSKK9Jh61ZjKcCoTtGodb/image.png) ๋ฐ›๋Š” ์‚ฌ๋žŒ ์ž…์žฅ์—์„œ๋Š” celo ์ง€๊ฐ‘์„ค์น˜์‹œ ์ „ํ™”๋ฒˆํ˜ธ๋กœ ์ธ์ฆ์„ ๋ฐ›๊ฒŒ๋˜๋ฉด publickey๊ฐ€ ์ƒ์„ฑ๋˜๋ฉฐ, ์ง€๊ฐ‘์— ์ด๋ฏธ ๋ˆ์ด ๋“ค์–ด์™€์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. stableํ•œ celo dollar์ƒํƒœ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๋กœ์ง์œผ๋กœ ๊ฐ€๊ฒฉ์„ ์œ ์ง€ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋จผ์ € celo dollar๊ฐ€ ์ˆ˜์š”๊ฐ€ ๋งŽ์•„์ ธ์„œ 1$๋ณด๋‹ค ๊ฐ€๊ฒฉ์ด ๋†’์•„์งˆ ๊ฒฝ์šฐ, celo dollar๋ฅผ ๋ฐœํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ˆ์œผ๋กœ dex์—์„œ celo gold๋ฅผ ์‚ฌ์„œ ๋ฆฌ์ €๋ธŒ์— ๋„ฃ๊ณ ์š”. ์ˆ˜์š”๊ฐ€ ์ ์–ด์ ธ์„œ 1$๋ณด๋‹ค ๊ฐ€๊ฒฉ์ด ๋‚ฎ์•„์งˆ ๊ฒฝ์šฐ, ๋ฆฌ์ €๋ธŒ์˜ celo gold๋ฅผ ์‚ฌ์šฉํ•ด์„œ celo dollar๋ฅผ ์‚ฐ ํ›„, burnํ•ด ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋ฆผ์œผ๋กœ ๋ณด์‹ค๊นŒ์š”? ![](https://cdn.steemitimages.com/DQmccePh3X521TJvVWF9JfVWD76mPtaWYB3Zs1y7hjY8QzY/image.png) ๋Œ€๋ถ€๋ถ„์˜ 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 InfoBlock #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![](https://cdn.steemitimages.com/DQmbG9NvnHGeBDCruXuF4u4q6GZSKK9Jh61ZjKcCoTtGodb/image.png)\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![](https://cdn.steemitimages.com/DQmccePh3X521TJvVWF9JfVWD76mPtaWYB3Zs1y7hjY8QzY/image.png)\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
parent authorsigmoid
parent permlinkov-net
authoretc.korea
permlinkpuzgt1
title
body์•ˆ๋…•ํ•˜์„ธ์š” ์ด๋”๋ฆฌ์›€ ํด๋ž˜์‹ ์ฝ”๋ฆฌ์•„์ž…๋‹ˆ๋‹ค. ํ˜น์‹œ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ ๊ด€๋ จํ•ด์„œ ๊ฐœ์ธ์ ์œผ๋กœ ์—ฐ๋ฝ์„ ๋“œ๋ฆฌ๊ณ  ์‹ถ์€๋ฐ, ํ˜น์‹œ ๊ฐ€๋Šฅํ•˜์‹ ๊ฐ€์š”?
json metadata{"tags":["ethereum"],"app":"steemit/0.1"}
Transaction InfoBlock #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\"}"
    }
  ]
}
jaydihreplied to @sigmoid / puq2x7
2019/07/16 06:48:42
parent authorsigmoid
parent permlinkmy-next-topic-nxt-project
authorjaydih
permlinkpuq2x7
title
bodyใ…Žใ…Ž ๊ทธ์•ผ๋ง๋กœ ๋น„ํŠธ์ฝ”์ธ โ€œ๊ทธ๋‹ค์Œโ€์ด์ฃ . ๊ผญ ์ถ”๋ฝํ•œ ์™ธ๊ณ„์ธ UFO์™€ ๊ฐ™์ด ๋А๊ปด์ง„๋‹ค๋ž„๊นŒ์š”. ์ด ๊ณณ์—์„œ ๋ธ”๋ก์ฒด์ธ ๊ธฐ์ˆ ๋“ค์„ ๋งŽ์ด ์ถ”์ถœํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ๊ฐ™์•„์š”.
json metadata{"tags":["nxt"],"app":"steemit/0.1"}
Transaction InfoBlock #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\"}"
    }
  ]
}
2019/07/08 13:32:54
votermilkysun913
authorsigmoid
permlinkmy-next-topic-nxt-project
weight10000 (100.00%)
Transaction InfoBlock #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
    }
  ]
}
2019/07/08 12:06:15
votercarthago
authorsigmoid
permlinkmy-next-topic-nxt-project
weight10000 (100.00%)
Transaction InfoBlock #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
    }
  ]
}
2019/06/25 14:24:45
votersergino
authorsigmoid
permlinkmy-next-topic-nxt-project
weight400 (4.00%)
Transaction InfoBlock #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-project
2019/06/25 14:15:21
parent author
parent permlinknxt
authorsigmoid
permlinkmy-next-topic-nxt-project
titleMy nextย topic - Nxt project
bodyHi 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. ![](https://cdn.steemitimages.com/DQmRkcr7VHWVP6bR9uPVPPLNm7fxz4FKsJE9eUnHRedVfgg/image.png) (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 InfoBlock #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![](https://cdn.steemitimages.com/DQmRkcr7VHWVP6bR9uPVPPLNm7fxz4FKsJE9eUnHRedVfgg/image.png)\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-watchers
2019/06/05 08:36:12
authorsigmoid
permlinkevent-for-outside-watchers
sbd payout0.015 SBD
steem payout0.000 STEEM
vesting payout79.688215 VESTS
Transaction InfoBlock #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"
    }
  ]
}
2019/05/30 03:57:15
votersct.cu12
authorsigmoid
permlinkevent-for-outside-watchers
weight5000 (50.00%)
Transaction InfoBlock #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
parent authorsigmoid
parent permlinkevent-for-outside-watchers
authorsteemitboard
permlinksteemitboard-notify-sigmoid-20190529t141359000z
title
bodyCongratulations @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 InfoBlock #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\"]}"
    }
  ]
}
2019/05/29 11:40:54
votersct.cu14
authorsigmoid
permlinkevent-for-outside-watchers
weight10000 (100.00%)
Transaction InfoBlock #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
parent authorsigmoid
parent permlinkevent-for-outside-watchers
authorlindaflyhigh
permlinkre-event-for-outside-watchers-20190529t101341
title
body์•ˆ๋…•ํ•˜์„ธ์š” sigmoid๋‹˜ ์ข‹์€ ํ•˜๋ฃจ ๋ณด๋‚ด์„ธ์š”!! ![Turtle-lv1.gif](https://cdn.steemitimages.com/DQmcvEvJCUxXA59xtrfB6kNefP9sr2rYyv2az83Qu26zaGb/Turtle-01-june.gif)
json metadata
Transaction InfoBlock #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![Turtle-lv1.gif](https://cdn.steemitimages.com/DQmcvEvJCUxXA59xtrfB6kNefP9sr2rYyv2az83Qu26zaGb/Turtle-01-june.gif)",
      "json_metadata": ""
    }
  ]
}
2019/05/29 10:13:36
voterlindaflyhigh
authorsigmoid
permlinkevent-for-outside-watchers
weight100 (1.00%)
Transaction InfoBlock #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
parent authorsigmoid
parent permlinkevent-for-outside-watchers
authoreunsik
permlinkre-sigmoid-event-for-outside-watchers-20190529t100038551z
title
body์ œ๊ฐ€ ์•Œ ์ˆ˜ ์—†๋Š” ์ด๋”๋ฆฌ์›€ ์„ค๊ณ„ ์ฒ ํ•™๊ณผ ์†”๋ฆฌ๋””ํ‹ฐ๋ผ๋Š” ๋‚œํ•ดํ•œ ํ”„๋กœ๊ทธ๋žจ ์–ธ์–ด์— ๊ด€ํ•œ ๊ธ€์ด๊ตฐ์š”. ์ œ๊ฐ€ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋”๋ผ๋„ ์ด๋Ÿฐ ๊ธ€์„ ์ฝ๊ณ  ์ดํ•ดํ•  ์‚ฌ๋žŒ์€ ๋งŽ์„ ๊ฒƒ ๊ฐ™์•„์š”. ์ŠคํŒ€์ž‡ ํŒ์—๋Š” ์›Œ๋‚™ ๋‚ ๊ณ  ๊ธฐ๋Š” ์‚ฌ๋žŒ์ด ๋งŽ์œผ๋‹ˆ๊นŒ์š”. ์šฉ๊ธฐ๋ฅผ ๋‚ด์„œ ๋งŽ์ด ์จ์ฃผ์„ธ์š”.
json metadata{"tags":["ethereum","sct"],"app":"steemcoinpan/0.1"}
Transaction InfoBlock #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\"}"
    }
  ]
}
2019/05/29 09:25:54
votersct.cu16
authorsigmoid
permlinkevent-for-outside-watchers
weight3000 (30.00%)
Transaction InfoBlock #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
parent authorsigmoid
parent permlinkevent-for-outside-watchers
authorsct.cu16
permlinkre-sigmoid-event-for-outside-watchers-20190529t092415710z
title
body์ด๋”๋ฆฌ์›€ ๊ฐœ๋ฐœ ๊ด€๋ จ ๊ธ€์ด๋„ค์š”. ๋‚ด์šฉ์„ ํŒŒ์•…ํ•˜๊ธด ํž˜๋“ค์ง€๋งŒ ๋ณดํŒ…ํ•˜๊ณ  ๊ฐ‘๋‹ˆ๋‹ค. (ํ๋ ˆ์ดํ„ฐ ์ค‘ ๊ฐœ๋ฐœ ์ „๋ฌธ๊ฐ€๊ฐ€ ์žˆ์—ˆ์œผ๋ฉด ํ•˜๋Š” ์ƒ๊ฐ์ด ๋ฌธ๋“ ๋“ญ๋‹ˆ๋‹ค.)
json metadata{"tags":["ethereum","sct"],"app":"steemcoinpan/0.1"}
Transaction InfoBlock #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
parent authorsigmoid
parent permlinkevent-for-outside-watchers
authorsct.cu10
permlinkre-sigmoid-event-for-outside-watchers-20190529t085527814z
title
body๊พธ์ค€ํžˆ ๊ธ€์„ ์จ์ฃผ์„ธ์š”. ์‘์›ํ•ฉ๋‹ˆ๋‹ค.
json metadata{"tags":["ethereum","sct"],"app":"steemcoinpan/0.1"}
Transaction InfoBlock #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\"}"
    }
  ]
}
2019/05/29 08:55:12
votersct.cu10
authorsigmoid
permlinkevent-for-outside-watchers
weight10000 (100.00%)
Transaction InfoBlock #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
    }
  ]
}
2019/05/29 08:52:42
votersct.cu18
authorsigmoid
permlinkevent-for-outside-watchers
weight4800 (48.00%)
Transaction InfoBlock #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
    }
  ]
}
2019/05/29 08:48:12
voterseapy
authorsigmoid
permlinkevent-for-outside-watchers
weight6000 (60.00%)
Transaction InfoBlock #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
    }
  ]
}
2019/05/29 08:43:06
voterigbotier
authorsigmoid
permlinkevent-for-outside-watchers
weight6000 (60.00%)
Transaction InfoBlock #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
    }
  ]
}
2019/05/29 08:43:06
voterlaissez-faire
authorsigmoid
permlinkevent-for-outside-watchers
weight10000 (100.00%)
Transaction InfoBlock #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
    }
  ]
}
2019/05/29 08:43:06
voteryougotresteemed
authorsigmoid
permlinkevent-for-outside-watchers
weight2500 (25.00%)
Transaction InfoBlock #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
    }
  ]
}
2019/05/29 08:43:00
voterimisstheoldkanye
authorsigmoid
permlinkevent-for-outside-watchers
weight100 (1.00%)
Transaction InfoBlock #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
    }
  ]
}
2019/05/29 08:42:57
votercheneats
authorsigmoid
permlinkevent-for-outside-watchers
weight2500 (25.00%)
Transaction InfoBlock #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-watchers
2019/05/29 08:36:12
parent author
parent permlinkethereum
authorsigmoid
permlinkevent-for-outside-watchers
titleEvent: for outside watchers
bodyEvent: 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(...); } } ``` ์œ„ ์ฝ”๋“œ๋Š” ์†”๋ฆฌ๋””ํ‹ฐ์—์„œ ์ด๋ฒคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํŒจํ„ด์ด๋‹ค. ์ด๋Ÿฌํ•œ ํŒจํ„ด์˜ ์ฝ”๋“œ๋Š” ์†”๋ฆฌ๋””ํ‹ฐ ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ด์„๋œ๋‹ค. ![](https://i.imgur.com/La1ofCW.png) ํ•จ์ˆ˜ ํ˜ธ์ถœ ๊ณผ์ •์—์„œ ์†”๋ฆฌ๋””ํ‹ฐ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ Contract ํ‚ค์›Œ๋“œ๋ฅผ ์ธ์‹ํ•˜์—ฌ ๋‚ด์šฉ์„ ํŒŒ์‹ฑํ•˜๊ณ , Event token๊ณผ block๋‚ด์˜ Emit token์„ ์ธ์‹ํ•œ ํ›„, ํ•ด๋‹น ๋ธ”๋ก์—์„œ emit์ด ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ LOG opcode๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ณผ์ •์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. > ๋Œ€๋ถ€๋ถ„์˜ ์ปดํŒŒ์ผ๋Ÿฌ์™€ ๊ฐ™์ด ์†”๋ฆฌ๋””ํ‹ฐ ์ปดํŒŒ์ผ๋Ÿฌ๋„ parsing -> ast -> code generation์ˆœ์„œ์ด๋ฏ€๋กœ, ์‹œ๊ฐ„์ด ๋‚ ๋•Œ ํ•œ๋ฒˆ์ฏค ๋ด๋‘๋Š”๊ฒƒ๋„ ์ข‹์„๊ฒƒ ๊ฐ™๋‹ค. ### EVM์ƒ์—์„œ์˜ LOG op์ฝ”๋“œ์˜ ์‹คํ–‰ ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ ์‚ฝ์ž…ํ•œ LOG op์ฝ”๋“œ๋Š” evm์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฒ˜๋ฆฌ๋œ๋‹ค. ![](https://i.imgur.com/xCCX8s5.png) Contract์˜ foo ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ํŠธ๋ Œ์ ์…˜์ด ๋ธ”๋ก์— ํฌํ•จ๋˜๋ฉด, ๋…ธ๋“œ๋“ค์€ ํ•ด๋‹น ํŠธ๋ Œ์ ์…˜์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด EVM์„ ์ƒ์„ฑํ•œ๋‹ค. EVM์ƒ์—์„œ๋Š” ๊ณ„์•ฝ์˜ ์ฝ”๋“œ๋ฅผ ์ค€๋น„ํ•œ ํ›„, ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ฅผ ํ†ตํ•ด ์‹คํ–‰์‹œํ‚จ๋‹ค. ์ด๋•Œ Program Counter๊ฐ€ ์ฆ๊ฐ€ํ•˜๋ฉด์„œ ํ•ด์„๋œ opcode๋ฅผ jump table์—์„œ ํ˜ธ์ถœํ•˜๊ฒŒ ๋˜๋ฉฐ, Log op์ฝ”๋“œ์˜ ๊ฒฝ์šฐ jump table์— ๋“ฑ๋ก๋œ makeLogํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค. makeLogํ•จ์ˆ˜ ๋‚ด๋ถ€๋ฅผ ์‚ดํŽด๋ณด๋ฉด(๋ณด๋ผ์ƒ‰) **์Šคํƒ์ƒ์˜ ๋ฐ์ดํ„ฐ๋กœ ํ† ํ”ฝํ•„๋“œ๋ฅผ ์ฑ„์šฐ๊ณ , ๋ฐ์ดํ„ฐํ•„๋“œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์‹œ์ž‘์ง€์ ๋ถ€ํ„ฐ ํฌ๊ธฐ๋งŒํผ ์ฝ๋Š”๋‹ค.** ์ด ๊ฒฐ๊ณผ๋“ค์„ ํฌํ•จํ•˜๋Š” LOG๋ฐ์ดํ„ฐ๊ฐ€ stateDB์— ์ €์žฅ๋œ๋‹ค. ### ํ† ํ”ฝ๊ณผ ๋ฐ์ดํ„ฐ ์Šคํƒ์—์„œ ์ฝ์€ ํ† ํ”ฝ๊ณผ, ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ฝ์€ ๋ฐ์ดํ„ฐ์˜ ๋‚ด์šฉ์€ ์–ด๋–ค๊ฒƒ์ผ๊นŒ? ์ž‘์„ฑํ•œ ์ปจํŠธ๋ ‰ํŠธ๋ฅผ ์ปดํŒŒ์ผ ํ•ด๋ณด์•˜๋‹ค. ![](https://i.imgur.com/IeBXAUp.png) ``` 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๊ฐ’์„ ์ฑ„์šฐ๊ฒŒ ๋œ๋‹ค.** ์‹ค์ œ ์ €์žฅ์ด ์ž˜ ๋˜๋Š”์ง€ ๋ฆฌ๋ฏน์Šค๋ฅผ ํ†ตํ•ด ํ™•์ธํ•ด๋ณด์•˜๋‹ค. ![](https://i.imgur.com/DQ7t2xn.png) <input 0xc2985578 (ํ•จ์ˆ˜๋ช…์— ๋Œ€ํ•œ ํ•ด์‹œ๊ฐ’์˜ ์ƒ์œ„4๋ฐ”์ดํŠธ)> ![](https://i.imgur.com/9mtK5dh.png) <topic: 0x2d4dd5fe18ada5a020a9f5591539a8dc3010a5c074ba6a70e1c956659f02786a ์ด๋ฒคํŠธ์˜ ์›ํ˜•์— ๋Œ€ํ•œ ํ•ด์‹œ๊ฐ’> ![](https://i.imgur.com/3Y7XcdX.png) [{"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์˜ ์—ญํ• ์„ ๋ณด์ž ![](https://i.imgur.com/pLsTpaK.png) web3๋ฅผ ํ†ตํ•ด "eth_newFilter"๋ผ๋Š” json request๋ฅผ ๋งŒ๋“ค์–ด https provider์˜ ์„ธ์…˜์œผ๋กœ postํ•œ ํ›„, response๋ฅผ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.(blocking๋™์ž‘์ด๋‹ค) ์ด๋Ÿฌํ•œ https์š”์ฒญ์€ geth๊ตฌํ˜„์ฒด์˜ rpc์„œ๋ฒ„๋กœ ์ „๋‹ฌ๋˜์–ด ์ฒ˜๋ฆฌ๋œ๋‹ค. rpc์„œ๋ฒ„๋Š” JSON request๋ฅผ decodingํ• ๋•Œ ์„œ๋น„์Šค์™€ ํ•จ์ˆ˜์ด๋ฆ„์„ "_"๋กœ ๋ถ„๋ฆฌํ•œ๋‹ค. ์ฆ‰ ๊ทธ๋ฆผ์—์„œ๋Š” eth์„œ๋น„์Šค์˜ NewFilterํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋˜๊ฒŒ ๋˜๋ฉฐ. ์ดํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ๋Š” ์ด๋”๋ฆฌ์›€์˜ ์ด๋ฒคํŠธ ์‹œ์Šคํ…œ์—์„œ ๋ฐœ์ƒํ•˜๋Š” Log์ด๋ฒคํŠธ์— ๋Œ€ํ•ด subscription์„ ์‹ ์ฒญํ•œ๋‹ค. ![](https://i.imgur.com/3z94FXX.png) ### ๊ตฌ๋…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์—๊ฒŒ ์ „๋‹ฌ๋œ๋‹ค. ![](https://i.imgur.com/ES8FXuU.png) ## ๋งˆ์น˜๋ฉฐ, ์กฐ๊ธˆ ๋‹ค์–‘ํ•œ ์Šคํƒ์„ ๋ชจ๋‘ ๊ฑฐ์ณ์•ผ ํ•˜๋‹ค๋ณด๋‹ˆ ๊นŠ์ด๋Š” ์กฐ๊ธˆ ๋ถ€์กฑํ•œ๊ฒƒ ๊ฐ™์ง€๋งŒ ์ปจํŠธ๋ ‰ํŠธ์— ์ •์˜๋œ ์ด๋ฒคํŠธ๊ฐ€ ๋‹ค์‹œ 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 InfoBlock #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![](https://i.imgur.com/La1ofCW.png)\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![](https://i.imgur.com/xCCX8s5.png)\n\nContract์˜ foo ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ํŠธ๋ Œ์ ์…˜์ด ๋ธ”๋ก์— ํฌํ•จ๋˜๋ฉด, ๋…ธ๋“œ๋“ค์€ ํ•ด๋‹น ํŠธ๋ Œ์ ์…˜์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด EVM์„ ์ƒ์„ฑํ•œ๋‹ค. EVM์ƒ์—์„œ๋Š” ๊ณ„์•ฝ์˜ ์ฝ”๋“œ๋ฅผ ์ค€๋น„ํ•œ ํ›„, ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ฅผ ํ†ตํ•ด ์‹คํ–‰์‹œํ‚จ๋‹ค. ์ด๋•Œ Program Counter๊ฐ€ ์ฆ๊ฐ€ํ•˜๋ฉด์„œ ํ•ด์„๋œ opcode๋ฅผ jump table์—์„œ ํ˜ธ์ถœํ•˜๊ฒŒ ๋˜๋ฉฐ, Log op์ฝ”๋“œ์˜ ๊ฒฝ์šฐ jump table์— ๋“ฑ๋ก๋œ makeLogํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค. \n\nmakeLogํ•จ์ˆ˜ ๋‚ด๋ถ€๋ฅผ ์‚ดํŽด๋ณด๋ฉด(๋ณด๋ผ์ƒ‰) **์Šคํƒ์ƒ์˜ ๋ฐ์ดํ„ฐ๋กœ ํ† ํ”ฝํ•„๋“œ๋ฅผ ์ฑ„์šฐ๊ณ , ๋ฐ์ดํ„ฐํ•„๋“œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ์‹œ์ž‘์ง€์ ๋ถ€ํ„ฐ ํฌ๊ธฐ๋งŒํผ ์ฝ๋Š”๋‹ค.** ์ด ๊ฒฐ๊ณผ๋“ค์„ ํฌํ•จํ•˜๋Š” LOG๋ฐ์ดํ„ฐ๊ฐ€ stateDB์— ์ €์žฅ๋œ๋‹ค. \n\n### ํ† ํ”ฝ๊ณผ ๋ฐ์ดํ„ฐ \n์Šคํƒ์—์„œ ์ฝ์€ ํ† ํ”ฝ๊ณผ, ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ฝ์€ ๋ฐ์ดํ„ฐ์˜ ๋‚ด์šฉ์€ ์–ด๋–ค๊ฒƒ์ผ๊นŒ? ์ž‘์„ฑํ•œ ์ปจํŠธ๋ ‰ํŠธ๋ฅผ ์ปดํŒŒ์ผ ํ•ด๋ณด์•˜๋‹ค.\n![](https://i.imgur.com/IeBXAUp.png)\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![](https://i.imgur.com/DQ7t2xn.png)\n<input 0xc2985578 (ํ•จ์ˆ˜๋ช…์— ๋Œ€ํ•œ ํ•ด์‹œ๊ฐ’์˜ ์ƒ์œ„4๋ฐ”์ดํŠธ)>\n![](https://i.imgur.com/9mtK5dh.png)\n<topic: 0x2d4dd5fe18ada5a020a9f5591539a8dc3010a5c074ba6a70e1c956659f02786a ์ด๋ฒคํŠธ์˜ ์›ํ˜•์— ๋Œ€ํ•œ ํ•ด์‹œ๊ฐ’>\n![](https://i.imgur.com/3Y7XcdX.png)\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![](https://i.imgur.com/pLsTpaK.png)\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![](https://i.imgur.com/3z94FXX.png)\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![](https://i.imgur.com/ES8FXuU.png)\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-nutshell
2019/05/27 16:52:27
authorsigmoid
permlinkethreumdb-in-a-nutshell
sbd payout0.771 SBD
steem payout0.000 STEEM
vesting payout3924.619148 VESTS
Transaction InfoBlock #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
parent authorsigmoid
parent permlinkall-about-ethereum-gas
authorsteemitboard
permlinksteemitboard-notify-sigmoid-20190525t052235000z
title
bodyCongratulations @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 InfoBlock #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-gas
2019/05/25 03:26:03
parent author
parent permlinkfactom
authorsigmoid
permlinkall-about-ethereum-gas
titleAll about Ethereum Gas
bodyAll 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์„ ์†Œ๋ชจํ•˜๋„๋ก ์„ค๊ณ„๊ฐ€ ๋˜์–ด์žˆ๋‹ค. ![](https://i.imgur.com/LiiyW7x.png) (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๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ![](https://i.imgur.com/Vd9lYEM.png) 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์— ๋ฐ˜ํ™˜๋œ๋‹ค. ![](https://i.imgur.com/ZcUCMxP.png) ์ด๋Ÿฌํ•œ ๋กœ์ง์„ ํ†ตํ•ด ํŠธ๋ Œ์ ์…˜์ด ์‹ค์ œ ์‚ฌ์šฉํ•œ Gas unit๋Ÿ‰๋งŒ์„ ๊ณ ๋ คํ•˜์—ฌ ๋ธ”๋ก์— ํŠธ๋ Œ์ ์…˜์„ ์ตœ๋Œ€ํ•œ ๊ฐ€๋“ ์ฑ„์šธ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ### Estimate Gas์˜ ๋™์ž‘๋ฐฉ์‹ EstimateGasํ•จ์ˆ˜๋Š” ํŠธ๋ Œ์ ์…˜์˜ ์‚ฌ์šฉ๋Ÿ‰์„ ์˜ˆ์ธกํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ์ตœ์†Œ๊ฐ’์„ 21000์œ ๋‹›์œผ๋กœ, ๋˜ ์ตœ๋Œ€๊ฐ’์„ ํ˜„์žฌ ๊ฐ€์žฅ ์ตœ์‹ ์˜ ๋ธ”๋ก(๋งˆ์ด๋‹์„ ํ•˜๊ณ ์žˆ์„๊ฒฝ์šฐ ๋งˆ์ด๋‹๋˜์—ˆ์ง€๋งŒ ์•„์ง canonicalํ™•์ •์ด ๋˜์ง€ ์•Š์€ ๋ธ”๋ก์ด ์กด์žฌํ• ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์ตœ์‹  ๋งˆ์ด๋‹๋œ ๋ธ”๋ก)์˜ Block Gas Limit์œผ๋กœ ์„ค์ •ํ•œ ํ›„ ๋ฐ”์ด๋„ˆ๋ฆฌ ์„œ์น˜๋ฅผ ํ†ตํ•ด Contractํ˜ธ์ถœ์‹œ transaction์ด ์„ฑ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ์˜ Gas๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ![](https://i.imgur.com/g7wkGIE.png) ์‹ค์ œ๋กœ Contractํ˜ธ์ถœํ•จ์ˆ˜๋Š” ์ด๋ ‡๊ฒŒ ์ƒ๊ฒผ๋‹ค ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์ง€ ์•Š๋„๋ก ์ž„์‹œ balance๋„ ์ตœ๋Œ€๋กœ ์ฃผ๊ณ , ๊ฐ€์Šคํ’€๋„ ์ตœ๋Œ€๊ฐ’์œผ๋กœ ์ค€๋‹ค. ![](https://i.imgur.com/mkwhh6a.png) ์ด๋Ÿฐ ํ˜ธ์ถœ ๋ฐฉ์‹์ด๋ผ๋ฉด, Gas Pool์„ ์„ค๋ช…ํ–ˆ๋˜ ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋ถ€๋ถ„์—์„œ ์ด๋ถ€๋ถ„์„ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ์ˆ˜ ์žˆ๋‹ค. ![](https://i.imgur.com/AbrjTLr.png) ๊ทธ๋ ‡๋‹ค๋ฉด ์ฒ˜๋ฆฌ๋กœ์ง์€ ์•„๋ž˜์™€ ๊ฐ™์ด ์š”์•ฝ ํ•  ์ˆ˜ ์žˆ๋‹ค. 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 InfoBlock #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![](https://i.imgur.com/LiiyW7x.png)\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![](https://i.imgur.com/Vd9lYEM.png)\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![](https://i.imgur.com/ZcUCMxP.png)\n\n์ด๋Ÿฌํ•œ ๋กœ์ง์„ ํ†ตํ•ด ํŠธ๋ Œ์ ์…˜์ด ์‹ค์ œ ์‚ฌ์šฉํ•œ Gas unit๋Ÿ‰๋งŒ์„ ๊ณ ๋ คํ•˜์—ฌ ๋ธ”๋ก์— ํŠธ๋ Œ์ ์…˜์„ ์ตœ๋Œ€ํ•œ ๊ฐ€๋“ ์ฑ„์šธ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.\n\n### Estimate Gas์˜ ๋™์ž‘๋ฐฉ์‹\nEstimateGasํ•จ์ˆ˜๋Š” ํŠธ๋ Œ์ ์…˜์˜ ์‚ฌ์šฉ๋Ÿ‰์„ ์˜ˆ์ธกํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ์ตœ์†Œ๊ฐ’์„ 21000์œ ๋‹›์œผ๋กœ, ๋˜ ์ตœ๋Œ€๊ฐ’์„ ํ˜„์žฌ ๊ฐ€์žฅ ์ตœ์‹ ์˜ ๋ธ”๋ก(๋งˆ์ด๋‹์„ ํ•˜๊ณ ์žˆ์„๊ฒฝ์šฐ ๋งˆ์ด๋‹๋˜์—ˆ์ง€๋งŒ ์•„์ง canonicalํ™•์ •์ด ๋˜์ง€ ์•Š์€ ๋ธ”๋ก์ด ์กด์žฌํ• ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์ตœ์‹  ๋งˆ์ด๋‹๋œ ๋ธ”๋ก)์˜ Block Gas Limit์œผ๋กœ ์„ค์ •ํ•œ ํ›„ ๋ฐ”์ด๋„ˆ๋ฆฌ ์„œ์น˜๋ฅผ ํ†ตํ•ด Contractํ˜ธ์ถœ์‹œ transaction์ด ์„ฑ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ์˜ Gas๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. \n\n![](https://i.imgur.com/g7wkGIE.png)\n\n์‹ค์ œ๋กœ Contractํ˜ธ์ถœํ•จ์ˆ˜๋Š” ์ด๋ ‡๊ฒŒ ์ƒ๊ฒผ๋‹ค\n์˜ค๋ฅ˜๊ฐ€ ๋‚˜์ง€ ์•Š๋„๋ก ์ž„์‹œ balance๋„ ์ตœ๋Œ€๋กœ ์ฃผ๊ณ , ๊ฐ€์Šคํ’€๋„ ์ตœ๋Œ€๊ฐ’์œผ๋กœ ์ค€๋‹ค.\n![](https://i.imgur.com/mkwhh6a.png)\n\n์ด๋Ÿฐ ํ˜ธ์ถœ ๋ฐฉ์‹์ด๋ผ๋ฉด, Gas Pool์„ ์„ค๋ช…ํ–ˆ๋˜ ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋ถ€๋ถ„์—์„œ ์ด๋ถ€๋ถ„์„ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ์ˆ˜ ์žˆ๋‹ค.\n![](https://i.imgur.com/AbrjTLr.png)\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-nutshell
2019/05/25 03:25:33
parent author
parent permlinkethereum
authorsigmoid
permlinkethreumdb-in-a-nutshell
titleEthreumDB in a nutshell
bodyEthreumDB 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) ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ![](https://i.imgur.com/7JizzH2.png =600x350) DB์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์‹์œผ๋กœ ์Œ“์ผ๊ฒƒ์ด๋‹ค. ![](https://i.imgur.com/6HIWqhe.png) >Tip 1.: ๋ธ”๋ก์ฒด์ธ์€ ํ”ํžˆ๋“ค ์ง€๊ฐ‘์— ๋ˆ์ด์—†๋‹ค๊ณ  ํ‘œํ˜„ํ•˜๋Š”๋ฐ, ๊ทธ ์ด์œ ๊ฐ€ ์—ฌ๊ธฐ์— ์žˆ๋‹ค. ์ง€๊ฐ‘์€ ๋‹จ์ง€ ์ด๋”๋ฆฌ์›€ ๊ณ„์ •์˜ ์ฃผ์†Œ์™€ ์„œ๋ช…๊ธฐ๋Šฅ๋งŒ์„ ๊ฐ€์ง€๊ณ  ์žˆ์„ ๋ฟ, ํ•ด๋‹น ์ฃผ์†Œ์˜ ์‹ค์ œ ๋ฐ์ดํ„ฐ ์ž์ฒด๋Š” stateObject๋ผ๋Š” ํƒ€์ž…์œผ๋กœ ๋…ธ๋“œ์˜ DB์— ์กด์žฌํ•œ๋‹ค. ### 2. Chain data ํ”ํžˆ ๋ธ”๋ก์ฒด์ธ์ด๋ผ๊ณ  ํ‘œํ˜„ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋“ค์ด๋ฉฐ, ๋‹ค์Œ์˜ ๋ฐ์ดํ„ฐ๋“ค์ด LevelDB์— ์ €์žฅ๋œ๋‹ค. #### Transaction ํŠธ๋ Œ์ ์…˜์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์ด๋ ‡๊ฒŒ ์ƒ๊ฒผ๊ณ , ์•„๋ž˜์˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ํŠธ๋ Œ์ ์…˜ ํ•ด์‹œ๋‚˜ ์„œ๋ช…๊ฐ’์ด ์ฑ„์›Œ์ง„๋‹ค. ![](https://i.imgur.com/41CHHBo.png =400x250) ํŠธ๋ Œ์ ์…˜ํ•ด์‹œ์™€ ์„œ๋ช…ํ•„๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ„์‚ฐ๋œ๋‹ค. ![](https://i.imgur.com/p4mwdXr.png) ![](https://i.imgur.com/TjLlCXO.png) #### Block Header ๋ธ”๋ก์ฒด์ธ์˜ ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์€ ๊ฑฐ์˜ ๋Œ€๋ถ€๋ถ„ ํ—ค๋”์— ๋‹ด๊ธด๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๊ฒ ๋‹ค. ๋” ์„ค๋ช…ํ•  ํ•„์š”๋Š” ์—†์„๋“ฏ. ![](https://i.imgur.com/FpcJasQ.png) #### Block Body ๋ธ”๋ก์— ๋‹ด๊ธธ transaction list์™€ uncle ๋ธ”๋ก์œผ๋กœ ํŒ์ •๋œ ๋ธ”๋ก์˜ header hash list๋ฅผ ์ €์žฅํ•œ๋‹ค. ![](https://i.imgur.com/xvcTgT0.png) #### Reciept & Log ํŠธ๋ Œ์ ์…˜์˜ ์‹คํ–‰๊ฒฐ๊ณผ, ์†Œ๋ชจ๊ฐ€์Šค๋Ÿ‰ ๋“ฑ์ด ์ €์žฅ๋˜๋Š” ์˜์ˆ˜์ฆ๊ณผ, contract์˜ event emit์— ํ™œ์šฉ๋  Log์ •๋ณด๋“ฑ์„ ํฌํ•จํ•œ๋‹ค ![](https://i.imgur.com/qlUbFsn.png =250x350) > 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 ![](https://i.imgur.com/HrwRXMq.png) #### 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์˜ ํฌ๊ธฐ๋ณ€๊ฒฝ ์ถ”์„ธ๋ฅผ ๊ทธ๋ž˜ํ”„๋กœ ๋‚˜ํƒ€๋‚ด๋ณด๋ฉด, ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ![](https://i.imgur.com/KLB4mAY.png) ํŒŒ๋ž€์ƒ‰ ๋ฐ์ดํ„ฐ๊ฐ€ chaindb์ด๊ณ , ๋นจ๊ฐ„์ƒ‰ ๋ฐ์ดํ„ฐ๊ฐ€ statedb์‚ฌ์ด์ฆˆ์ธ๋ฐ, statedb๊ฐ€ ์›”๋“ฑํžˆ ๋งŽ์€ ๊ฒƒ์„ ํ™•์ธํ•˜์˜€๋‹ค. ์ดˆ๊ธฐ์—๋Š” ๊ณ„์ •์€ ๋งŽ์ด ๋งŒ๋“ค์–ด๋†“๊ณ  ๋ง‰์ƒ ํŠธ๋ Œ์ ์…˜์ด ๋ณ„๋กœ ์—†์—ˆ๋‚˜? ํ•˜๋Š” ์ƒ๊ฐ๋„ ๋“ค๊ณ , ์ด๋Ÿฌ๋‹ค๊ฐ€ ํŠธ๋ Œ์ ์…˜์ด ํ™œ์„ฑํ™” ๋˜๋ฉด, ์—ญ์ „ํ•˜๊ฒ ์ง€? ๋ผ๋Š” ์ƒ๊ฐ๋„ ๋“ ๋‹ค. ๋ฌดํŠผ ๋ฐ์ดํ„ฐ ๋ถ„์„ ํ™˜๊ฒฝ์€ ์šฐ์„  ์„ฑ๊ณต์ ์œผ๋กœ ๊ตฌ์ถ•์ด ๋œ๊ฒƒ์œผ๋กœ ํŒ๋‹จ๋œ๋‹ค. ## ์ตœ์ข… ๊ฒฐ๊ณผ๋Š” ์ง„ํ–‰์ค‘, ๊ฐœ์ธ์ ์œผ๋กœ ์ง„ํ–‰์ค‘(๋ฐ˜ํฌ๊ธฐ์ค‘)์ด๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ์˜ค๋ž˜๋œ ๋…ธํŠธ๋ถ์˜ ๋ฆฌ์†Œ์Šค ๋ฌธ์ œ๋กœ ๋”์ด์ƒ ์ง„ํ–‰ํ•˜๊ธฐ ํž˜๋“ค๊ฒƒ ๊ฐ™๋‹ค. ๋‹ค๋งŒ, ์ด๋Ÿฌํ•œ ์‹œ๋„๋ฅผ ํ†ตํ•ด ๋ฌด์–ธ๊ฐ€ sync๋ฐฉ์‹์„ ์ข€๋” ๋ณ€ํ™”์‹œํ‚ฌ์ˆ˜ ์žˆ์„๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“œ๋Š”๊ฒƒ ๊ฐ™๋‹ค. ์ •๋ฆฌ๋˜์ง€ ์•Š์€ ์Šค์ผ€์น˜์ด์ง€๋งŒ, ์ฒซ์‹ฑํฌ๋•Œ๋Š” ํšŒ์ƒ‰๋ถ€๋ถ„์˜ ์ฒด์ธ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”์—†๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•˜๋Š” ์ค‘์ด๋‹ค. ์‹ฑํฌ ์ดํ›„์—๋Š” ์š”์ฒญ์— ๋”ฐ๋ผ lesํ”„๋กœํ† ์ฝœ์˜ ODR๋กœ ์ฝ์–ด์™€์ค˜์•ผ ํ• ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ƒ๊ฐํ•ด๋ณด๋ฉด parity warp์‹ฑํฌ๋ž‘ ๊ทธ๋‹ค์ง€ ๋‹ค๋ฅธ๊ฑฐ ๊ฐ™์ง€๋„ ์•Š๋‹ค. ![](https://i.imgur.com/ayvlFcD.png) ## ๋งˆ์น˜๋ฉฐ, ๋ฐฑ์ˆ˜์ƒํ™œ์ค‘์— ํ•ด์˜จ ์—…๋ฌด๋ฅผ ์ •๋ฆฌํ•˜๋Š” ์ฐจ์›์—์„œ ๊ธ€์„ ์ •๋ฆฌํ•ด๋ณด์•˜๋Š”๋ฐ, ์ด๊ฒŒ ์—ฐ๊ตฌ์ธ์ง€, ํ˜ผ์ž๋†€๊ธฐ์˜ ์ง„์ˆ˜์ธ์ง€ ์กฐ๊ธˆ ํ—ท๊ฐˆ๋ฆฐ๋‹ค. ์ด์ „ ํšŒ์‚ฌ์—์„œ ๋А๋ผ์ง€ ๋ชปํ–ˆ๋˜ ๋ฆฌ์†Œ์Šค์˜ ๋ถ€์žฌ์— ๋Œ€ํ•œ ์•„์‰ฌ์›€๋„ ์žˆ๊ณ . ๋ธ”๋ก์ฒด์ธ ์™œ ํ•˜๋ƒ๊ณ  ์ •๋ง ๋งŽ์€ ์งˆ๋ฌธ์„ ๋ฐ›์•˜๋‹ค. ๋งค๋ฒˆ ์„ค๋ช… ํ• ๋•Œ๋งˆ๋‹ค ์žฅํ™ฉ ํ–ˆ์—ˆ๋Š”๋ฐ, ์š”๊ทผ๋ž˜ ์กฐ๊ธˆ์”ฉ ์ •๋ฆฌ๊ฐ€ ๋˜์—ˆ๋‹ค. "๋ˆ์ด ๋  ๊ฒƒ ๊ฐ™์•„์„œ ๋‚˜์™”๋Š”๋ฐ, ์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ์žฌ๋ฐŒ์–ด์„œ ๋ˆŒ๋Ÿฌ ์•‰์•˜์Šต๋‹ˆ๋‹ค." > ์ž˜๋ชป ๋ถ„์„๋œ ๋‚ด์šฉ์ด ์žˆ๊ฑฐ๋‚˜, ์ˆ˜์ •ํ•  ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด > [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 InfoBlock #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![](https://i.imgur.com/7JizzH2.png =600x350)\n\nDB์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์‹์œผ๋กœ ์Œ“์ผ๊ฒƒ์ด๋‹ค.\n![](https://i.imgur.com/6HIWqhe.png)\n>Tip 1.: ๋ธ”๋ก์ฒด์ธ์€ ํ”ํžˆ๋“ค ์ง€๊ฐ‘์— ๋ˆ์ด์—†๋‹ค๊ณ  ํ‘œํ˜„ํ•˜๋Š”๋ฐ, ๊ทธ ์ด์œ ๊ฐ€ ์—ฌ๊ธฐ์— ์žˆ๋‹ค. ์ง€๊ฐ‘์€ ๋‹จ์ง€ ์ด๋”๋ฆฌ์›€ ๊ณ„์ •์˜ ์ฃผ์†Œ์™€ ์„œ๋ช…๊ธฐ๋Šฅ๋งŒ์„ ๊ฐ€์ง€๊ณ  ์žˆ์„ ๋ฟ, ํ•ด๋‹น ์ฃผ์†Œ์˜ ์‹ค์ œ ๋ฐ์ดํ„ฐ ์ž์ฒด๋Š” stateObject๋ผ๋Š” ํƒ€์ž…์œผ๋กœ ๋…ธ๋“œ์˜ DB์— ์กด์žฌํ•œ๋‹ค. \n\n\n### 2. Chain data\nํ”ํžˆ ๋ธ”๋ก์ฒด์ธ์ด๋ผ๊ณ  ํ‘œํ˜„ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋“ค์ด๋ฉฐ, ๋‹ค์Œ์˜ ๋ฐ์ดํ„ฐ๋“ค์ด LevelDB์— ์ €์žฅ๋œ๋‹ค.\n\n#### Transaction\nํŠธ๋ Œ์ ์…˜์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์ด๋ ‡๊ฒŒ ์ƒ๊ฒผ๊ณ , ์•„๋ž˜์˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ํŠธ๋ Œ์ ์…˜ ํ•ด์‹œ๋‚˜ ์„œ๋ช…๊ฐ’์ด ์ฑ„์›Œ์ง„๋‹ค.\n![](https://i.imgur.com/41CHHBo.png =400x250)\n\nํŠธ๋ Œ์ ์…˜ํ•ด์‹œ์™€ ์„œ๋ช…ํ•„๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ„์‚ฐ๋œ๋‹ค.\n\n![](https://i.imgur.com/p4mwdXr.png)\n![](https://i.imgur.com/TjLlCXO.png)\n\n#### Block Header\n๋ธ”๋ก์ฒด์ธ์˜ ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์€ ๊ฑฐ์˜ ๋Œ€๋ถ€๋ถ„ ํ—ค๋”์— ๋‹ด๊ธด๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๊ฒ ๋‹ค. ๋” ์„ค๋ช…ํ•  ํ•„์š”๋Š” ์—†์„๋“ฏ.\n![](https://i.imgur.com/FpcJasQ.png)\n\n\n\n#### Block Body\n๋ธ”๋ก์— ๋‹ด๊ธธ transaction list์™€ uncle ๋ธ”๋ก์œผ๋กœ ํŒ์ •๋œ ๋ธ”๋ก์˜ header hash list๋ฅผ ์ €์žฅํ•œ๋‹ค.\n![](https://i.imgur.com/xvcTgT0.png)\n\n\n#### Reciept & Log\nํŠธ๋ Œ์ ์…˜์˜ ์‹คํ–‰๊ฒฐ๊ณผ, ์†Œ๋ชจ๊ฐ€์Šค๋Ÿ‰ ๋“ฑ์ด ์ €์žฅ๋˜๋Š” ์˜์ˆ˜์ฆ๊ณผ, contract์˜ event emit์— ํ™œ์šฉ๋  Log์ •๋ณด๋“ฑ์„ ํฌํ•จํ•œ๋‹ค\n![](https://i.imgur.com/qlUbFsn.png =250x350)\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![](https://i.imgur.com/HrwRXMq.png)\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![](https://i.imgur.com/KLB4mAY.png)\n\nํŒŒ๋ž€์ƒ‰ ๋ฐ์ดํ„ฐ๊ฐ€ chaindb์ด๊ณ , ๋นจ๊ฐ„์ƒ‰ ๋ฐ์ดํ„ฐ๊ฐ€ statedb์‚ฌ์ด์ฆˆ์ธ๋ฐ, statedb๊ฐ€ ์›”๋“ฑํžˆ ๋งŽ์€ ๊ฒƒ์„ ํ™•์ธํ•˜์˜€๋‹ค.\n์ดˆ๊ธฐ์—๋Š” ๊ณ„์ •์€ ๋งŽ์ด ๋งŒ๋“ค์–ด๋†“๊ณ  ๋ง‰์ƒ ํŠธ๋ Œ์ ์…˜์ด ๋ณ„๋กœ ์—†์—ˆ๋‚˜? ํ•˜๋Š” ์ƒ๊ฐ๋„ ๋“ค๊ณ ,\n์ด๋Ÿฌ๋‹ค๊ฐ€ ํŠธ๋ Œ์ ์…˜์ด ํ™œ์„ฑํ™” ๋˜๋ฉด, ์—ญ์ „ํ•˜๊ฒ ์ง€? ๋ผ๋Š” ์ƒ๊ฐ๋„ ๋“ ๋‹ค. ๋ฌดํŠผ ๋ฐ์ดํ„ฐ ๋ถ„์„ ํ™˜๊ฒฝ์€ ์šฐ์„  ์„ฑ๊ณต์ ์œผ๋กœ ๊ตฌ์ถ•์ด ๋œ๊ฒƒ์œผ๋กœ ํŒ๋‹จ๋œ๋‹ค.\n\n\n## ์ตœ์ข… ๊ฒฐ๊ณผ๋Š” ์ง„ํ–‰์ค‘, \n๊ฐœ์ธ์ ์œผ๋กœ ์ง„ํ–‰์ค‘(๋ฐ˜ํฌ๊ธฐ์ค‘)์ด๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ์˜ค๋ž˜๋œ ๋…ธํŠธ๋ถ์˜ ๋ฆฌ์†Œ์Šค ๋ฌธ์ œ๋กœ ๋”์ด์ƒ ์ง„ํ–‰ํ•˜๊ธฐ ํž˜๋“ค๊ฒƒ ๊ฐ™๋‹ค. ๋‹ค๋งŒ, ์ด๋Ÿฌํ•œ ์‹œ๋„๋ฅผ ํ†ตํ•ด ๋ฌด์–ธ๊ฐ€ sync๋ฐฉ์‹์„ ์ข€๋” ๋ณ€ํ™”์‹œํ‚ฌ์ˆ˜ ์žˆ์„๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“œ๋Š”๊ฒƒ ๊ฐ™๋‹ค.\n\n์ •๋ฆฌ๋˜์ง€ ์•Š์€ ์Šค์ผ€์น˜์ด์ง€๋งŒ, ์ฒซ์‹ฑํฌ๋•Œ๋Š” ํšŒ์ƒ‰๋ถ€๋ถ„์˜ ์ฒด์ธ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”์—†๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•˜๋Š” ์ค‘์ด๋‹ค. ์‹ฑํฌ ์ดํ›„์—๋Š” ์š”์ฒญ์— ๋”ฐ๋ผ lesํ”„๋กœํ† ์ฝœ์˜ ODR๋กœ ์ฝ์–ด์™€์ค˜์•ผ ํ• ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ƒ๊ฐํ•ด๋ณด๋ฉด parity warp์‹ฑํฌ๋ž‘ ๊ทธ๋‹ค์ง€ ๋‹ค๋ฅธ๊ฑฐ ๊ฐ™์ง€๋„ ์•Š๋‹ค.\n![](https://i.imgur.com/ayvlFcD.png)\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\"}"
    }
  ]
}
sigmoidreplied to @ayogom / ps1iu1
2019/05/25 03:25:15
parent authorayogom
parent permlinkre-sigmoid-ethreumdb-in-a-nutshell-20190521t004330101z
authorsigmoid
permlinkps1iu1
title
body๊ณ ๋ง™์Šต๋‹ˆ๋‹ค^^
json metadata{"tags":["ethereum"],"app":"steemit/0.1"}
Transaction InfoBlock #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\"}"
    }
  ]
}
2019/05/21 13:36:24
voterskan
authorsigmoid
permlinkethreumdb-in-a-nutshell
weight10000 (100.00%)
Transaction InfoBlock #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
    }
  ]
}
2019/05/21 12:46:33
voterbluesniper
authorsigmoid
permlinkall-about-ethereum-gas
weight8 (0.08%)
Transaction InfoBlock #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
    }
  ]
}
2019/05/21 12:46:15
votersergino
authorsigmoid
permlinkall-about-ethereum-gas
weight200 (2.00%)
Transaction InfoBlock #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-gas
2019/05/21 12:39:12
parent author
parent permlinkfactom
authorsigmoid
permlinkall-about-ethereum-gas
titleAll about Ethereum Gas
bodyAll 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์„ ์†Œ๋ชจํ•˜๋„๋ก ์„ค๊ณ„๊ฐ€ ๋˜์–ด์žˆ๋‹ค. ![](https://i.imgur.com/LiiyW7x.png) (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๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ![](https://i.imgur.com/Vd9lYEM.png) 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์— ๋ฐ˜ํ™˜๋œ๋‹ค. ![](https://i.imgur.com/ZcUCMxP.png) ์ด๋Ÿฌํ•œ ๋กœ์ง์„ ํ†ตํ•ด ํŠธ๋ Œ์ ์…˜์ด ์‹ค์ œ ์‚ฌ์šฉํ•œ Gas unit๋Ÿ‰๋งŒ์„ ๊ณ ๋ คํ•˜์—ฌ ๋ธ”๋ก์— ํŠธ๋ Œ์ ์…˜์„ ์ตœ๋Œ€ํ•œ ๊ฐ€๋“ ์ฑ„์šธ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ### Estimate Gas์˜ ๋™์ž‘๋ฐฉ์‹ EstimateGasํ•จ์ˆ˜๋Š” ํŠธ๋ Œ์ ์…˜์˜ ์‚ฌ์šฉ๋Ÿ‰์„ ์˜ˆ์ธกํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ์ตœ์†Œ๊ฐ’์„ 21000์œ ๋‹›์œผ๋กœ, ๋˜ ์ตœ๋Œ€๊ฐ’์„ ํ˜„์žฌ ๊ฐ€์žฅ ์ตœ์‹ ์˜ ๋ธ”๋ก(๋งˆ์ด๋‹์„ ํ•˜๊ณ ์žˆ์„๊ฒฝ์šฐ ๋งˆ์ด๋‹๋˜์—ˆ์ง€๋งŒ ์•„์ง canonicalํ™•์ •์ด ๋˜์ง€ ์•Š์€ ๋ธ”๋ก์ด ์กด์žฌํ• ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์ตœ์‹  ๋งˆ์ด๋‹๋œ ๋ธ”๋ก)์˜ Block Gas Limit์œผ๋กœ ์„ค์ •ํ•œ ํ›„ ๋ฐ”์ด๋„ˆ๋ฆฌ ์„œ์น˜๋ฅผ ํ†ตํ•ด Contractํ˜ธ์ถœ์‹œ transaction์ด ์„ฑ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ์˜ Gas๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ![](https://i.imgur.com/g7wkGIE.png) ์‹ค์ œ๋กœ Contractํ˜ธ์ถœํ•จ์ˆ˜๋Š” ์ด๋ ‡๊ฒŒ ์ƒ๊ฒผ๋‹ค ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์ง€ ์•Š๋„๋ก ์ž„์‹œ balance๋„ ์ตœ๋Œ€๋กœ ์ฃผ๊ณ , ๊ฐ€์Šคํ’€๋„ ์ตœ๋Œ€๊ฐ’์œผ๋กœ ์ค€๋‹ค. ![](https://i.imgur.com/mkwhh6a.png) ์ด๋Ÿฐ ํ˜ธ์ถœ ๋ฐฉ์‹์ด๋ผ๋ฉด, Gas Pool์„ ์„ค๋ช…ํ–ˆ๋˜ ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋ถ€๋ถ„์—์„œ ์ด๋ถ€๋ถ„์„ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ์ˆ˜ ์žˆ๋‹ค. ![](https://i.imgur.com/AbrjTLr.png) ๊ทธ๋ ‡๋‹ค๋ฉด ์ฒ˜๋ฆฌ๋กœ์ง์€ ์•„๋ž˜์™€ ๊ฐ™์ด ์š”์•ฝ ํ•  ์ˆ˜ ์žˆ๋‹ค. 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 InfoBlock #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![](https://i.imgur.com/LiiyW7x.png)\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![](https://i.imgur.com/Vd9lYEM.png)\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![](https://i.imgur.com/ZcUCMxP.png)\n\n์ด๋Ÿฌํ•œ ๋กœ์ง์„ ํ†ตํ•ด ํŠธ๋ Œ์ ์…˜์ด ์‹ค์ œ ์‚ฌ์šฉํ•œ Gas unit๋Ÿ‰๋งŒ์„ ๊ณ ๋ คํ•˜์—ฌ ๋ธ”๋ก์— ํŠธ๋ Œ์ ์…˜์„ ์ตœ๋Œ€ํ•œ ๊ฐ€๋“ ์ฑ„์šธ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.\n\n### Estimate Gas์˜ ๋™์ž‘๋ฐฉ์‹\nEstimateGasํ•จ์ˆ˜๋Š” ํŠธ๋ Œ์ ์…˜์˜ ์‚ฌ์šฉ๋Ÿ‰์„ ์˜ˆ์ธกํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ์ตœ์†Œ๊ฐ’์„ 21000์œ ๋‹›์œผ๋กœ, ๋˜ ์ตœ๋Œ€๊ฐ’์„ ํ˜„์žฌ ๊ฐ€์žฅ ์ตœ์‹ ์˜ ๋ธ”๋ก(๋งˆ์ด๋‹์„ ํ•˜๊ณ ์žˆ์„๊ฒฝ์šฐ ๋งˆ์ด๋‹๋˜์—ˆ์ง€๋งŒ ์•„์ง canonicalํ™•์ •์ด ๋˜์ง€ ์•Š์€ ๋ธ”๋ก์ด ์กด์žฌํ• ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ์ตœ์‹  ๋งˆ์ด๋‹๋œ ๋ธ”๋ก)์˜ Block Gas Limit์œผ๋กœ ์„ค์ •ํ•œ ํ›„ ๋ฐ”์ด๋„ˆ๋ฆฌ ์„œ์น˜๋ฅผ ํ†ตํ•ด Contractํ˜ธ์ถœ์‹œ transaction์ด ์„ฑ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ์˜ Gas๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. \n\n![](https://i.imgur.com/g7wkGIE.png)\n\n์‹ค์ œ๋กœ Contractํ˜ธ์ถœํ•จ์ˆ˜๋Š” ์ด๋ ‡๊ฒŒ ์ƒ๊ฒผ๋‹ค\n์˜ค๋ฅ˜๊ฐ€ ๋‚˜์ง€ ์•Š๋„๋ก ์ž„์‹œ balance๋„ ์ตœ๋Œ€๋กœ ์ฃผ๊ณ , ๊ฐ€์Šคํ’€๋„ ์ตœ๋Œ€๊ฐ’์œผ๋กœ ์ค€๋‹ค.\n![](https://i.imgur.com/mkwhh6a.png)\n\n์ด๋Ÿฐ ํ˜ธ์ถœ ๋ฐฉ์‹์ด๋ผ๋ฉด, Gas Pool์„ ์„ค๋ช…ํ–ˆ๋˜ ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋ถ€๋ถ„์—์„œ ์ด๋ถ€๋ถ„์„ ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ์ˆ˜ ์žˆ๋‹ค.\n![](https://i.imgur.com/AbrjTLr.png)\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
parent authorsigmoid
parent permlinkethreumdb-in-a-nutshell
authorayogom
permlinkre-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 InfoBlock #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\"}"
    }
  ]
}
2019/05/21 00:43:27
voterayogom
authorsigmoid
permlinkethreumdb-in-a-nutshell
weight5000 (50.00%)
Transaction InfoBlock #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
    }
  ]
}
2019/05/20 17:32:12
voterfilipino
authorsigmoid
permlinkethreumdb-in-a-nutshell
weight1000 (10.00%)
Transaction InfoBlock #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
    }
  ]
}
2019/05/20 16:59:39
voterbluesniper
authorsigmoid
permlinkethreumdb-in-a-nutshell
weight8 (0.08%)
Transaction InfoBlock #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
    }
  ]
}
2019/05/20 16:59:33
votersergino
authorsigmoid
permlinkethreumdb-in-a-nutshell
weight200 (2.00%)
Transaction InfoBlock #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-nutshell
2019/05/20 16:52:27
parent author
parent permlinkethereum
authorsigmoid
permlinkethreumdb-in-a-nutshell
titleEthreumDB in a nutshell
bodyEthreumDB 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) ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ![](https://i.imgur.com/7JizzH2.png =600x350) DB์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์‹์œผ๋กœ ์Œ“์ผ๊ฒƒ์ด๋‹ค. ![](https://i.imgur.com/6HIWqhe.png) >Tip 1.: ๋ธ”๋ก์ฒด์ธ์€ ํ”ํžˆ๋“ค ์ง€๊ฐ‘์— ๋ˆ์ด์—†๋‹ค๊ณ  ํ‘œํ˜„ํ•˜๋Š”๋ฐ, ๊ทธ ์ด์œ ๊ฐ€ ์—ฌ๊ธฐ์— ์žˆ๋‹ค. ์ง€๊ฐ‘์€ ๋‹จ์ง€ ์ด๋”๋ฆฌ์›€ ๊ณ„์ •์˜ ์ฃผ์†Œ์™€ ์„œ๋ช…๊ธฐ๋Šฅ๋งŒ์„ ๊ฐ€์ง€๊ณ  ์žˆ์„ ๋ฟ, ํ•ด๋‹น ์ฃผ์†Œ์˜ ์‹ค์ œ ๋ฐ์ดํ„ฐ ์ž์ฒด๋Š” stateObject๋ผ๋Š” ํƒ€์ž…์œผ๋กœ ๋…ธ๋“œ์˜ DB์— ์กด์žฌํ•œ๋‹ค. ### 2. Chain data ํ”ํžˆ ๋ธ”๋ก์ฒด์ธ์ด๋ผ๊ณ  ํ‘œํ˜„ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋“ค์ด๋ฉฐ, ๋‹ค์Œ์˜ ๋ฐ์ดํ„ฐ๋“ค์ด LevelDB์— ์ €์žฅ๋œ๋‹ค. #### Transaction ํŠธ๋ Œ์ ์…˜์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์ด๋ ‡๊ฒŒ ์ƒ๊ฒผ๊ณ , ์•„๋ž˜์˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ํŠธ๋ Œ์ ์…˜ ํ•ด์‹œ๋‚˜ ์„œ๋ช…๊ฐ’์ด ์ฑ„์›Œ์ง„๋‹ค. ![](https://i.imgur.com/41CHHBo.png =400x250) ํŠธ๋ Œ์ ์…˜ํ•ด์‹œ์™€ ์„œ๋ช…ํ•„๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ„์‚ฐ๋œ๋‹ค. ![](https://i.imgur.com/p4mwdXr.png) ![](https://i.imgur.com/TjLlCXO.png) #### Block Header ๋ธ”๋ก์ฒด์ธ์˜ ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์€ ๊ฑฐ์˜ ๋Œ€๋ถ€๋ถ„ ํ—ค๋”์— ๋‹ด๊ธด๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๊ฒ ๋‹ค. ๋” ์„ค๋ช…ํ•  ํ•„์š”๋Š” ์—†์„๋“ฏ. ![](https://i.imgur.com/FpcJasQ.png) #### Block Body ๋ธ”๋ก์— ๋‹ด๊ธธ transaction list์™€ uncle ๋ธ”๋ก์œผ๋กœ ํŒ์ •๋œ ๋ธ”๋ก์˜ header hash list๋ฅผ ์ €์žฅํ•œ๋‹ค. ![](https://i.imgur.com/xvcTgT0.png) #### Reciept & Log ํŠธ๋ Œ์ ์…˜์˜ ์‹คํ–‰๊ฒฐ๊ณผ, ์†Œ๋ชจ๊ฐ€์Šค๋Ÿ‰ ๋“ฑ์ด ์ €์žฅ๋˜๋Š” ์˜์ˆ˜์ฆ๊ณผ, contract์˜ event emit์— ํ™œ์šฉ๋  Log์ •๋ณด๋“ฑ์„ ํฌํ•จํ•œ๋‹ค ![](https://i.imgur.com/qlUbFsn.png =250x350) > 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 ![](https://i.imgur.com/HrwRXMq.png) #### 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์˜ ํฌ๊ธฐ๋ณ€๊ฒฝ ์ถ”์„ธ๋ฅผ ๊ทธ๋ž˜ํ”„๋กœ ๋‚˜ํƒ€๋‚ด๋ณด๋ฉด, ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ![](https://i.imgur.com/KLB4mAY.png) ํŒŒ๋ž€์ƒ‰ ๋ฐ์ดํ„ฐ๊ฐ€ chaindb์ด๊ณ , ๋นจ๊ฐ„์ƒ‰ ๋ฐ์ดํ„ฐ๊ฐ€ statedb์‚ฌ์ด์ฆˆ์ธ๋ฐ, statedb๊ฐ€ ์›”๋“ฑํžˆ ๋งŽ์€ ๊ฒƒ์„ ํ™•์ธํ•˜์˜€๋‹ค. ์ดˆ๊ธฐ์—๋Š” ๊ณ„์ •์€ ๋งŽ์ด ๋งŒ๋“ค์–ด๋†“๊ณ  ๋ง‰์ƒ ํŠธ๋ Œ์ ์…˜์ด ๋ณ„๋กœ ์—†์—ˆ๋‚˜? ํ•˜๋Š” ์ƒ๊ฐ๋„ ๋“ค๊ณ , ์ด๋Ÿฌ๋‹ค๊ฐ€ ํŠธ๋ Œ์ ์…˜์ด ํ™œ์„ฑํ™” ๋˜๋ฉด, ์—ญ์ „ํ•˜๊ฒ ์ง€? ๋ผ๋Š” ์ƒ๊ฐ๋„ ๋“ ๋‹ค. ๋ฌดํŠผ ๋ฐ์ดํ„ฐ ๋ถ„์„ ํ™˜๊ฒฝ์€ ์šฐ์„  ์„ฑ๊ณต์ ์œผ๋กœ ๊ตฌ์ถ•์ด ๋œ๊ฒƒ์œผ๋กœ ํŒ๋‹จ๋œ๋‹ค. ## ์ตœ์ข… ๊ฒฐ๊ณผ๋Š” ์ง„ํ–‰์ค‘, ๊ฐœ์ธ์ ์œผ๋กœ ์ง„ํ–‰์ค‘(๋ฐ˜ํฌ๊ธฐ์ค‘)์ด๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ์˜ค๋ž˜๋œ ๋…ธํŠธ๋ถ์˜ ๋ฆฌ์†Œ์Šค ๋ฌธ์ œ๋กœ ๋”์ด์ƒ ์ง„ํ–‰ํ•˜๊ธฐ ํž˜๋“ค๊ฒƒ ๊ฐ™๋‹ค. ๋‹ค๋งŒ, ์ด๋Ÿฌํ•œ ์‹œ๋„๋ฅผ ํ†ตํ•ด ๋ฌด์–ธ๊ฐ€ sync๋ฐฉ์‹์„ ์ข€๋” ๋ณ€ํ™”์‹œํ‚ฌ์ˆ˜ ์žˆ์„๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“œ๋Š”๊ฒƒ ๊ฐ™๋‹ค. ์ •๋ฆฌ๋˜์ง€ ์•Š์€ ์Šค์ผ€์น˜์ด์ง€๋งŒ, ์ฒซ์‹ฑํฌ๋•Œ๋Š” ํšŒ์ƒ‰๋ถ€๋ถ„์˜ ์ฒด์ธ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”์—†๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•˜๋Š” ์ค‘์ด๋‹ค. ์‹ฑํฌ ์ดํ›„์—๋Š” ์š”์ฒญ์— ๋”ฐ๋ผ lesํ”„๋กœํ† ์ฝœ์˜ ODR๋กœ ์ฝ์–ด์™€์ค˜์•ผ ํ• ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ƒ๊ฐํ•ด๋ณด๋ฉด parity warp์‹ฑํฌ๋ž‘ ๊ทธ๋‹ค์ง€ ๋‹ค๋ฅธ๊ฑฐ ๊ฐ™์ง€๋„ ์•Š๋‹ค. ![](https://i.imgur.com/ayvlFcD.png) ## ๋งˆ์น˜๋ฉฐ, ๋ฐฑ์ˆ˜์ƒํ™œ์ค‘์— ํ•ด์˜จ ์—…๋ฌด๋ฅผ ์ •๋ฆฌํ•˜๋Š” ์ฐจ์›์—์„œ ๊ธ€์„ ์ •๋ฆฌํ•ด๋ณด์•˜๋Š”๋ฐ, ์ด๊ฒŒ ์—ฐ๊ตฌ์ธ์ง€, ํ˜ผ์ž๋†€๊ธฐ์˜ ์ง„์ˆ˜์ธ์ง€ ์กฐ๊ธˆ ํ—ท๊ฐˆ๋ฆฐ๋‹ค. ์ด์ „ ํšŒ์‚ฌ์—์„œ ๋А๋ผ์ง€ ๋ชปํ–ˆ๋˜ ๋ฆฌ์†Œ์Šค์˜ ๋ถ€์žฌ์— ๋Œ€ํ•œ ์•„์‰ฌ์›€๋„ ์žˆ๊ณ . ๋ธ”๋ก์ฒด์ธ ์™œ ํ•˜๋ƒ๊ณ  ์ •๋ง ๋งŽ์€ ์งˆ๋ฌธ์„ ๋ฐ›์•˜๋‹ค. ๋งค๋ฒˆ ์„ค๋ช… ํ• ๋•Œ๋งˆ๋‹ค ์žฅํ™ฉ ํ–ˆ์—ˆ๋Š”๋ฐ, ์š”๊ทผ๋ž˜ ์กฐ๊ธˆ์”ฉ ์ •๋ฆฌ๊ฐ€ ๋˜์—ˆ๋‹ค. "๋ˆ์ด ๋  ๊ฒƒ ๊ฐ™์•„์„œ ๋‚˜์™”๋Š”๋ฐ, ์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ์žฌ๋ฐŒ์–ด์„œ ๋ˆŒ๋Ÿฌ ์•‰์•˜์Šต๋‹ˆ๋‹ค." > ์ž˜๋ชป ๋ถ„์„๋œ ๋‚ด์šฉ์ด ์žˆ๊ฑฐ๋‚˜, ์ˆ˜์ •ํ•  ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด > [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 InfoBlock #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![](https://i.imgur.com/7JizzH2.png =600x350)\n\nDB์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ์‹์œผ๋กœ ์Œ“์ผ๊ฒƒ์ด๋‹ค.\n![](https://i.imgur.com/6HIWqhe.png)\n>Tip 1.: ๋ธ”๋ก์ฒด์ธ์€ ํ”ํžˆ๋“ค ์ง€๊ฐ‘์— ๋ˆ์ด์—†๋‹ค๊ณ  ํ‘œํ˜„ํ•˜๋Š”๋ฐ, ๊ทธ ์ด์œ ๊ฐ€ ์—ฌ๊ธฐ์— ์žˆ๋‹ค. ์ง€๊ฐ‘์€ ๋‹จ์ง€ ์ด๋”๋ฆฌ์›€ ๊ณ„์ •์˜ ์ฃผ์†Œ์™€ ์„œ๋ช…๊ธฐ๋Šฅ๋งŒ์„ ๊ฐ€์ง€๊ณ  ์žˆ์„ ๋ฟ, ํ•ด๋‹น ์ฃผ์†Œ์˜ ์‹ค์ œ ๋ฐ์ดํ„ฐ ์ž์ฒด๋Š” stateObject๋ผ๋Š” ํƒ€์ž…์œผ๋กœ ๋…ธ๋“œ์˜ DB์— ์กด์žฌํ•œ๋‹ค. \n\n\n### 2. Chain data\nํ”ํžˆ ๋ธ”๋ก์ฒด์ธ์ด๋ผ๊ณ  ํ‘œํ˜„ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋“ค์ด๋ฉฐ, ๋‹ค์Œ์˜ ๋ฐ์ดํ„ฐ๋“ค์ด LevelDB์— ์ €์žฅ๋œ๋‹ค.\n\n#### Transaction\nํŠธ๋ Œ์ ์…˜์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์ด๋ ‡๊ฒŒ ์ƒ๊ฒผ๊ณ , ์•„๋ž˜์˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ํŠธ๋ Œ์ ์…˜ ํ•ด์‹œ๋‚˜ ์„œ๋ช…๊ฐ’์ด ์ฑ„์›Œ์ง„๋‹ค.\n![](https://i.imgur.com/41CHHBo.png =400x250)\n\nํŠธ๋ Œ์ ์…˜ํ•ด์‹œ์™€ ์„œ๋ช…ํ•„๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ„์‚ฐ๋œ๋‹ค.\n\n![](https://i.imgur.com/p4mwdXr.png)\n![](https://i.imgur.com/TjLlCXO.png)\n\n#### Block Header\n๋ธ”๋ก์ฒด์ธ์˜ ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์€ ๊ฑฐ์˜ ๋Œ€๋ถ€๋ถ„ ํ—ค๋”์— ๋‹ด๊ธด๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๊ฒ ๋‹ค. ๋” ์„ค๋ช…ํ•  ํ•„์š”๋Š” ์—†์„๋“ฏ.\n![](https://i.imgur.com/FpcJasQ.png)\n\n\n\n#### Block Body\n๋ธ”๋ก์— ๋‹ด๊ธธ transaction list์™€ uncle ๋ธ”๋ก์œผ๋กœ ํŒ์ •๋œ ๋ธ”๋ก์˜ header hash list๋ฅผ ์ €์žฅํ•œ๋‹ค.\n![](https://i.imgur.com/xvcTgT0.png)\n\n\n#### Reciept & Log\nํŠธ๋ Œ์ ์…˜์˜ ์‹คํ–‰๊ฒฐ๊ณผ, ์†Œ๋ชจ๊ฐ€์Šค๋Ÿ‰ ๋“ฑ์ด ์ €์žฅ๋˜๋Š” ์˜์ˆ˜์ฆ๊ณผ, contract์˜ event emit์— ํ™œ์šฉ๋  Log์ •๋ณด๋“ฑ์„ ํฌํ•จํ•œ๋‹ค\n![](https://i.imgur.com/qlUbFsn.png =250x350)\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![](https://i.imgur.com/HrwRXMq.png)\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![](https://i.imgur.com/KLB4mAY.png)\n\nํŒŒ๋ž€์ƒ‰ ๋ฐ์ดํ„ฐ๊ฐ€ chaindb์ด๊ณ , ๋นจ๊ฐ„์ƒ‰ ๋ฐ์ดํ„ฐ๊ฐ€ statedb์‚ฌ์ด์ฆˆ์ธ๋ฐ, statedb๊ฐ€ ์›”๋“ฑํžˆ ๋งŽ์€ ๊ฒƒ์„ ํ™•์ธํ•˜์˜€๋‹ค.\n์ดˆ๊ธฐ์—๋Š” ๊ณ„์ •์€ ๋งŽ์ด ๋งŒ๋“ค์–ด๋†“๊ณ  ๋ง‰์ƒ ํŠธ๋ Œ์ ์…˜์ด ๋ณ„๋กœ ์—†์—ˆ๋‚˜? ํ•˜๋Š” ์ƒ๊ฐ๋„ ๋“ค๊ณ ,\n์ด๋Ÿฌ๋‹ค๊ฐ€ ํŠธ๋ Œ์ ์…˜์ด ํ™œ์„ฑํ™” ๋˜๋ฉด, ์—ญ์ „ํ•˜๊ฒ ์ง€? ๋ผ๋Š” ์ƒ๊ฐ๋„ ๋“ ๋‹ค. ๋ฌดํŠผ ๋ฐ์ดํ„ฐ ๋ถ„์„ ํ™˜๊ฒฝ์€ ์šฐ์„  ์„ฑ๊ณต์ ์œผ๋กœ ๊ตฌ์ถ•์ด ๋œ๊ฒƒ์œผ๋กœ ํŒ๋‹จ๋œ๋‹ค.\n\n\n## ์ตœ์ข… ๊ฒฐ๊ณผ๋Š” ์ง„ํ–‰์ค‘, \n๊ฐœ์ธ์ ์œผ๋กœ ์ง„ํ–‰์ค‘(๋ฐ˜ํฌ๊ธฐ์ค‘)์ด๋‹ค. ์‚ฌ์šฉํ•˜๋Š” ์˜ค๋ž˜๋œ ๋…ธํŠธ๋ถ์˜ ๋ฆฌ์†Œ์Šค ๋ฌธ์ œ๋กœ ๋”์ด์ƒ ์ง„ํ–‰ํ•˜๊ธฐ ํž˜๋“ค๊ฒƒ ๊ฐ™๋‹ค. ๋‹ค๋งŒ, ์ด๋Ÿฌํ•œ ์‹œ๋„๋ฅผ ํ†ตํ•ด ๋ฌด์–ธ๊ฐ€ sync๋ฐฉ์‹์„ ์ข€๋” ๋ณ€ํ™”์‹œํ‚ฌ์ˆ˜ ์žˆ์„๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“œ๋Š”๊ฒƒ ๊ฐ™๋‹ค.\n\n์ •๋ฆฌ๋˜์ง€ ์•Š์€ ์Šค์ผ€์น˜์ด์ง€๋งŒ, ์ฒซ์‹ฑํฌ๋•Œ๋Š” ํšŒ์ƒ‰๋ถ€๋ถ„์˜ ์ฒด์ธ๋ฐ์ดํ„ฐ๊ฐ€ ํ•„์š”์—†๊ฒŒ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•˜๋Š” ์ค‘์ด๋‹ค. ์‹ฑํฌ ์ดํ›„์—๋Š” ์š”์ฒญ์— ๋”ฐ๋ผ lesํ”„๋กœํ† ์ฝœ์˜ ODR๋กœ ์ฝ์–ด์™€์ค˜์•ผ ํ• ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ƒ๊ฐํ•ด๋ณด๋ฉด parity warp์‹ฑํฌ๋ž‘ ๊ทธ๋‹ค์ง€ ๋‹ค๋ฅธ๊ฑฐ ๊ฐ™์ง€๋„ ์•Š๋‹ค.\n![](https://i.imgur.com/ayvlFcD.png)\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
from accountsigmoid
to accountsigmoid
withdrawn0.000012 VESTS
deposited0.000 STEEM
Transaction InfoBlock #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
from accountsigmoid
to accountsigmoid
withdrawn2007.574884 VESTS
deposited1.006 STEEM
Transaction InfoBlock #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
parent authorsigmoid
parent permlinkclique
authorsteemitboard
permlinksteemitboard-notify-sigmoid-20190512t061053000z
title
bodyCongratulations @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 InfoBlock #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\"]}"
    }
  ]
}
sigmoidpublished a new post: 3geypw
2019/05/07 23:08:51
parent author
parent permlinkbitcoin
authorsigmoid
permlink3geypw
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 InfoBlock #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\"]}"
    }
  ]
}

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
[
  "clayop"
]