圖解以太坊Turbo-Geth 客戶端:性能是如何「天方夜譚」般提升? – 鏈聞ChainNews


Turbo-Geth 貢獻者Alexey Akhunov 解釋了兩項重要改進:一是將數據庫模式從樹式的改成扁平式的;二是階段式同步方法。

原文標題:《引介| Turbo-Geth 客戶端:如何實現性能改進》
撰文:Alexey Akhunov,Turbo-Geth 貢獻者

本文為Turbo-Geth 項目的貢獻者Alexey Akhunov 發表的幻燈片。近期,Turbo-Geth 客戶端因為出色的同步性能而備受關注。在這份名為「too good to be true」意即「好到不像是真的」或者說「美如天方夜譚」)的PPT 中,Alexey 解釋了Turbo-Geth 最重要的兩大改進。一是將數據庫模式從樹式的改成扁平式的;因為樹式的數據庫雖然有助於快速計算出狀態根,卻無助於EVM 快速訪問狀態對象;而使用扁平式的數據庫,再引入一種「中間哈希值」的數據,就可以很好地滿足EVM 快速訪問狀態以及快速計算狀態根的兩大需要;二是階段式同步(staged sync)方法,該方法將對一個區塊的處理分解為特定的幾個步驟,然後對連續的多個區塊處理完同一個步驟之後,再從頭對該批區塊處理下一個步驟;這樣做其實等於是在將數據插入到數據庫之前先完成了預排序工作;另一方面,這也使得客戶端的工作流程模塊化了,允許我們針對性地優化性能。感興趣的讀者可以從文末的超鏈接中了解更多。

引介| Turbo-Geth 客戶端:如何實現性能改進

引介| Turbo-Geth 客戶端:如何實現性能改進

引介| Turbo-Geth 客戶端:如何實現性能改進

引介| Turbo-Geth 客戶端:如何實現性能改進

引介| Turbo-Geth 客戶端:如何實現性能改進

引介| Turbo-Geth 客戶端:如何實現性能改進

引介| Turbo-Geth 客戶端:如何實現性能改進

引介| Turbo-Geth 客戶端:如何實現性能改進

引介| Turbo-Geth 客戶端:如何實現性能改進

引介| Turbo-Geth 客戶端:如何實現性能改進

引介| Turbo-Geth 客戶端:如何實現性能改進

引介| Turbo-Geth 客戶端:如何實現性能改進

引介| Turbo-Geth 客戶端:如何實現性能改進

引介| Turbo-Geth 客戶端:如何實現性能改進

引介| Turbo-Geth 客戶端:如何實現性能改進

引介| Turbo-Geth 客戶端:如何實現性能改進

引介| Turbo-Geth 客戶端:如何實現性能改進

引介| Turbo-Geth 客戶端:如何實現性能改進

引介| Turbo-Geth 客戶端:如何實現性能改進

引介| Turbo-Geth 客戶端:如何實現性能改進

引介| Turbo-Geth 客戶端:如何實現性能改進

來源鏈接:github.com

.



Source link