008:以太坊區(qū)塊結構|《ETH原理與智能合約開發(fā)》筆記

待字閨中開發(fā)了一門區(qū)塊鏈方面的課程:《深入淺出ETH原理與智能合約開發(fā)》,馬良老師講授嗅辣。此簡書文集記錄我的學習筆記蓬抄。

課程共8節(jié)課埋心。其中揩慕,前四課講ETH原理抄课,后四課講智能合約厢破。
第三課分為三部分:

  1. 以太坊區(qū)塊結構
  2. GHOST協(xié)議
  3. 搭建測試網(wǎng)絡

這篇文章是第三課第一部分的學習筆記:以太坊區(qū)塊結構峭沦。


1蒸辆、以太坊區(qū)塊結構詳細分解

以太坊區(qū)塊結構

以太坊區(qū)塊主要包括三部分:

  1. 區(qū)塊頭
  2. 交易
  3. 兩個叔塊的區(qū)塊頭散列值征炼。

區(qū)塊頭的詳細內容

  1. Parent header hash 父區(qū)塊的區(qū)塊頭散列值。
  2. Ommers List hash 兩個叔塊的區(qū)塊頭散列值所組成的列表的單向散列值躬贡。
  3. Beneficiary 收益地址谆奥,160位
  4. State Root Trie Hash 全局狀態(tài)根MPT的散列值
  5. Transaction Trie Hash 交易MPT樹的散列值
  6. Receipt Trie Hash 收據(jù)MPT樹的散列值。每一個交易都有一個收據(jù)拂玻,有多少個交易就有多少個收據(jù)酸些。主要包括交易執(zhí)行后衍生出的信息,包含四部分的內容檐蚜。
    以上的三個根魄懂,保證了所有節(jié)點保存的狀態(tài)一致、交易一致闯第、交易結果一致市栗,再通過對整個區(qū)塊頭進行Hash操作,保證歷史一致咳短。這樣就保證了這個區(qū)塊鏈的公信力填帽。
  7. logs Bloom 整個區(qū)塊日志的Bloom過濾器,供查詢區(qū)塊的信息诲泌。
  8. Difficulty 區(qū)塊難度盲赊。有很多因素決定,由一個公式算出敷扫。
  9. Number 直系父節(jié)點的個數(shù)
  10. GasLimit gas上限哀蘑。比特幣通過大小限制區(qū)塊尺寸诚卸,而以太坊通過gas上限。
  11. GasUsed 當區(qū)塊被挖出時绘迁,實際的gas消耗合溺。
  12. Time 時間戳
  13. Extra Data
  14. mixHash
  15. nonce
    后三個是與挖礦相關的參數(shù)。

2缀台、以太坊數(shù)據(jù)分布結構與控制流

以太坊數(shù)據(jù)分布結構
  1. 全局狀態(tài)樹 State Trie

如果這是一個合約賬戶棠赛,其中的一個葉子節(jié)點將包含以下四個部分。
①是隨機值膛腐,②是余額睛约,③是相關代碼的散列值,④是合約的相關全局變量的MPT哲身。在后面的代碼中辩涝,全經(jīng)常看到 storage 勘天。

其中怔揩,代碼存儲在交易中。

  1. 交易樹 Txs Trie

本區(qū)塊中脯丝,所有交易組成的MPT樹商膊。

  1. 收據(jù)樹 Receipt Trie

每一個區(qū)塊中,有自己的交易樹和收據(jù)樹宠进,但全局狀態(tài)則不同晕拆,它會重用歷史信息,只更新需要更新的一小部分砰苍。

圖中潦匈,左邊部分的數(shù)據(jù)都不在以太坊的區(qū)塊鏈上,區(qū)塊鏈上只包括前一小節(jié)里提到的數(shù)據(jù)赚导。左邊這些數(shù)據(jù)都是根據(jù)交易信息在虛擬機中執(zhí)行推導出來的茬缩,其它由Level DB 持久化存儲。

數(shù)據(jù)控制流

以太坊數(shù)據(jù)的控制流如上圖吼旧,簡述如下:

?交易信息輸入到虛擬機中凰锡。
?虛擬機根據(jù)交易信息從全局狀態(tài)樹中取得一些需要的信息。
?執(zhí)行合約的一些操作后圈暗, 會修改全局狀態(tài)樹掂为,及收據(jù)樹。
?最后员串,左邊的這些數(shù)據(jù)會串行化勇哗、持久化到 level DB。

3寸齐、以太坊全局狀態(tài)Trie的變遷

全局狀態(tài)Trie的變遷

前面提到欲诺,全局狀態(tài)樹并不是全部重新生成抄谐,只更新變化的部分。

上圖中扰法,從區(qū)塊175223到區(qū)塊175334過程蛹含,發(fā)生了一筆交易,賬號175收到了18eth塞颁,余額發(fā)生了變化浦箱,藍色的部分都發(fā)生了變化。而紅色部分沒有變化祠锣,所以在175334區(qū)塊中酷窥,綠色的數(shù)據(jù)是新的,黃色和紅色則可以重用上一區(qū)塊锤岸。

不足之處竖幔,請批評指正。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末是偷,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子募逞,更是在濱河造成了極大的恐慌蛋铆,老刑警劉巖,帶你破解...
    沈念sama閱讀 223,126評論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件放接,死亡現(xiàn)場離奇詭異刺啦,居然都是意外死亡,警方通過查閱死者的電腦和手機纠脾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評論 3 400
  • 文/潘曉璐 我一進店門玛瘸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人苟蹈,你說我怎么就攤上這事糊渊。” “怎么了慧脱?”我有些...
    開封第一講書人閱讀 169,941評論 0 366
  • 文/不壞的土叔 我叫張陵渺绒,是天一觀的道長。 經(jīng)常有香客問我菱鸥,道長宗兼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,294評論 1 300
  • 正文 為了忘掉前任氮采,我火速辦了婚禮殷绍,結果婚禮上,老公的妹妹穿的比我還像新娘鹊漠。我一直安慰自己主到,他們只是感情好殖侵,可當我...
    茶點故事閱讀 69,295評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著镰烧,像睡著了一般拢军。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上怔鳖,一...
    開封第一講書人閱讀 52,874評論 1 314
  • 那天茉唉,我揣著相機與錄音,去河邊找鬼结执。 笑死度陆,一個胖子當著我的面吹牛,可吹牛的內容都是我干的献幔。 我是一名探鬼主播懂傀,決...
    沈念sama閱讀 41,285評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蜡感!你這毒婦竟也來了蹬蚁?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 40,249評論 0 277
  • 序言:老撾萬榮一對情侶失蹤郑兴,失蹤者是張志新(化名)和其女友劉穎犀斋,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體情连,經(jīng)...
    沈念sama閱讀 46,760評論 1 321
  • 正文 獨居荒郊野嶺守林人離奇死亡叽粹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,840評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了却舀。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片虫几。...
    茶點故事閱讀 40,973評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖挽拔,靈堂內的尸體忽然破棺而出辆脸,到底是詐尸還是另有隱情,我是刑警寧澤篱昔,帶...
    沈念sama閱讀 36,631評論 5 351
  • 正文 年R本政府宣布每强,位于F島的核電站,受9級特大地震影響州刽,放射性物質發(fā)生泄漏空执。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,315評論 3 336
  • 文/蒙蒙 一穗椅、第九天 我趴在偏房一處隱蔽的房頂上張望辨绊。 院中可真熱鬧,春花似錦匹表、人聲如沸门坷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽默蚌。三九已至冻晤,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間绸吸,已是汗流浹背鼻弧。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評論 1 275
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留锦茁,地道東北人攘轩。 一個月前我還...
    沈念sama閱讀 49,431評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像码俩,于是被迫代替她去往敵國和親度帮。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,982評論 2 361

推薦閱讀更多精彩內容

  • 簡介 不管你們知不知道以太坊(Ethereum blockchain)是什么稿存,但是你們大概都聽說過以太坊笨篷。最近在新...
    Lilymoana閱讀 3,894評論 1 22
  • 以太坊運行原理筆記: (參考以太坊黃皮書) 以太坊區(qū)塊組成: 區(qū)塊:相關信息片段(區(qū)塊頭)+區(qū)塊內交易+其他的區(qū)塊...
    磨鏈社區(qū)閱讀 269評論 0 0
  • 今天上午我們坐船去蜈支州島。下船后找個海邊玩挠铲,因為那里不讓下水游泳冕屯,所以我們就在沙灘上玩沙子和土。然后我們就圍著蜈...
    王云漢1閱讀 327評論 0 1
  • 昨天夜里拂苹,從十點讀書的公眾號里,知道了賣家的《解密》這本書痰洒,于是找到了這本書瓢棒,剛試著讀了讀,就被深深地吸引丘喻。...
    小窩窩閱讀 1,081評論 0 0
  • 餐飲什么最重要泉粉?很多人會說好吃最重要连霉。 海底撈掌門張勇的看法是:好吃肯定重要。但好吃并不值得拿出來說嗡靡。 什么口味不...
    遺忘過去的人閱讀 4,969評論 0 0