階段式同步重構自Go-Ethereum的完全同步模式,以實現更好的性能。
階段式同步需要進行大量讀寫操作。雖然我們的目標是能夠在機械硬盤上同步節點,但是我們仍建議使用固態硬盤。
顧名思義,階段式同步需要依次執行10個階段。
階段式同步是如何運作的
Turbo-Geth客戶端會向每個對等節點了解該節點的HEAD區塊,然后依次執行每個階段、尋找本地HEAD區塊和對等節點的HEAD區塊之間缺失的區塊。
第一個階段會設置本地HEAD區塊。
各階段會按順序執行。在每個階段執行期間,只有節點本地的狀態達到目標狀態,該階段才會結束。
也就是說,在理想情況下,每個階段只需執行一次,即可完成初始同步。
最后一階段結束后,整個同步流程會重新開始,尋找新的區塊頭下載。
Coinbase Support:正在處理以太坊網絡存款延遲問題:金色財經報道,Coinbase Support表示,正在處理以太坊網絡存款延遲問題。資金是安全的。[2023/1/5 10:23:02]
如果你在兩個階段之間重啟應用,應用會從第一階段開始重啟。
如果你在某個階段執行期間重啟應用,應用會從當前階段開始重啟,以完成該階段。
每個階段需要耗時多久?
通過下方的餅狀圖,我們可以看出每個階段的耗時占比。雖然這些數據并不精確,但是足以作為參考。
重組/回退
如果區塊鏈發生重組,我們需要“回退”部分同步數據。
回退指的是從最后一個階段倒退回第一個階段。但是,需要注意的一點是,我們執行完回退之后才會更新交易池,因此我們知道新的nonce。
以太坊網絡當前已銷毀近154萬枚ETH:金色財經報道,據Ultrasound數據顯示,截止目前,以太坊網絡總共銷毀1539013.62枚ETH。其中,OpenSea銷毀175632.83枚ETH,ETHtransfers銷毀149176.87枚ETH,UniswapV2銷毀117725.80枚。注:自以太坊倫敦升級引入EIP-1559后,以太坊網絡會根據交易需求和區塊大小動態調整每筆交易的BaseFee,而這部分的費用將直接燃燒銷毀。[2022/1/18 8:55:53]
回退的階段順序如下例所示。
state.unwindOrder=*Stage{
??//Unwindingoftxpool(reinjectingtransactionsintothepoolneedstohappenafterunwindingexecution)
以太坊L2網絡總鎖倉量達到36億美元,Arbitrum占比74.18%:金色財經報道,L2BEAT數據顯示,截至9月19日,以太坊Layer2上總鎖倉量已達到36億美元。其中鎖倉量最高的為擴容方案Arbitrum,約27億美元,占比74.18%。其次是dYdX,鎖倉量超3.92億美元,占比10.96%;Optimism以2.32億美元的鎖倉量位居第三,占比為6.47%。[2021/9/20 23:37:28]
??stages,stages,stages,stages,stages,stages,stages,stages,stages,stages,
?}
通過?ETL?進行預處理
在將數據插入數據庫之前,一些階段會使用我們的ETL框架根據鍵值對數據進行排序。
這樣就可以極大減少數據庫寫入放大的情況。
觀點:Defi項目遲早將脫離以太坊網絡并轉移到中心化平臺上:9月8日消息,比特幣開發者Udi Wertheimer日前表示,Defi項目脫離以太坊并轉移到中心化平臺上只是時間問題。他為平臺緩慢的交易速度,高昂的手續費和復雜的MetaMask感到遺憾,但他對聯合創始人Vitalik Buterin和Joe Lubin沒什么好說的。Wertheimer建議DeFi不需要以太坊,他說:“在我看來,整個DeFi代表去中心化金融。實際上,并沒有真正去中心化的內容,因為總有人控制這些項目。”Wertheimer預測,DeFi在以太網絡上的時間不會太長。他說:“在我看來,它的發展方向是,如果它生存下來,它將離開以太坊,進入集中式平臺,因為它們更便宜,速度更快。”Udi Wertheimer說,雖然使用比特幣有金融和經濟利益,但他也對區塊鏈持懷疑態度。按照Wertheimer的說法,區塊鏈的好處是創建不受他人控制的數字資產。(Beincrypto)[2020/9/8]
因此,當我們生成索引或者說哈希值化狀態時,我們會執行一個多步驟流程。
數據:以太坊DEX近7日交易量近2.5億美金,環比上漲13%:Dune Analysis數據顯示,截至6月13日,以太坊去中心化交易平臺近7日的總交易量為2.47億美金,較上一周相比,上漲了13%。其中,近7日內,總交易量的前三位分別是:Uniswap(8100萬美金)、dYdX(4200萬美金)、IDEX(4000萬美金)。近24小時交易量前三位分別是:Uniswap(660萬美金)、IDEX(380萬美金)、Kyber(310萬美金)。[2020/6/14]
將處理過的數據寫入位于數據目錄的幾個臨時文件中;
然后使用一個堆棧把臨時文件中的數據插入到數據庫中,并且使按照能夠最小化數據庫寫入放大現象的順序插入數據。
這種優化有時會將寫入速度提高幾個數量級。
各階段
每個階段都包含兩個函數,分別是向前推進階段的ExecFunc?和向后回退階段的?UnwindFunc。
從理論上來說,部分階段可以離線工作,但是當前版本并未實現這一功能。
階段1:下載區塊頭
在這一階段,我們會下載本地HEAD區塊和對等節點的HEAD區塊之間的所有區塊頭。
這一階段是CPU密集型的,適合使用多核處理器,因為要驗證區塊頭的工作量證明。
由于區塊鏈重組,大多數回退都是在這一階段開始的。
這一階段會推動本地HEAD的指針。
階段2:區塊哈希值
從區塊頭中抽取出一個從區塊哈希值映射成區塊號的索引表,以支持更快速的查找功能,并讓同步過程對機械硬盤更為友好。
階段3:下載區塊體
在這一階段,我們會將上一階段已下載區塊頭的區塊體也下載下來。
這一階段需要保持良好的聯網連接。絕大多數數據都在這一階段下載。
階段4:復原發送者
這一階段會復原出并存儲每個已下載區塊中的每筆交易的發送者。
這一階段同樣是CPU密集型的,適合使用多核處理器。
這一階段不需要聯網。
階段5:執行區塊
在這一階段,我們會執行之前下載的所有區塊中的每一筆交易。
需要注意的一點是,在執行區塊的過程中,我們不會驗證根哈希,甚至不會創建默克爾樹。
這一階段是單線程的,無需聯網,需占用大量磁盤空間。如果區塊執行失敗,可以回退該階段。
階段6:計算狀態根
這一階段會構建默克爾樹,并驗證當前狀態的根哈希。
這一階段也會構建中間哈希值,并將它們存儲到數據庫中。
如果之前沒有存儲任何中間哈希值,這一階段會構建出完整的默克爾樹及其根哈希。
如果數據庫中沒有中間哈希值,這一階段就會利用區塊的歷史記錄來弄清楚哪些哈希值已經過時,哪些哈希值是最新的,然后使用最新的哈希值來構建部分默克爾樹,只重構過時的哈希值。
如果根哈希無法匹配,就會向后回退一個區塊。
這一階段不需要聯網。
階段7:生成哈希值化狀態
在執行期間,Turbo-Geth使用無格式狀態存儲。
無格式狀態:在標準狀態中,賬戶和存儲項的地址是?keccak256(address)?,但是在一般狀態中,二者的地址就是?address?。
盡管如此,為了確保一些API能夠正常運作并與其它客戶端保持兼容,我們也會生成哈希值化狀態。
如果哈希值化狀態不是空值,我們會查看歷史記錄變更集,并且只更新已更改的項。
這個階段不需要聯網。
階段8、9、10?:生成索引
同步期間會生成3個索引。
這3個索引可能會被禁用,因為所有API都不使用它們。
這一階段不需要聯網。
交易查詢索引
該索引表由從交易哈希值到區塊號的映射構成。
賬戶歷史索引
該索引存儲了從賬戶地址到區塊列表的映射。
存儲歷史索引
該索引存儲了從存儲項地址到區塊列表的映射。
階段11:交易池
在這一階段,我們會啟動交易池或更新其狀態。例如,如果我們已下載的區塊中包含了某些交易,就把這些交易從交易池中移除。
在回退時,我們會將被回退的區塊中的交易重新添加到交易池中。
這個階段不需要聯網。
原文鏈接:
https://github.com/ledgerwatch/turbo-geth/tree/master/eth/stagedsync
作者:?AlexSharov
翻譯&校對:閔敏?&?阿劍
資訊簡評? 當前DeFi協議鎖定資產總價值突破70億美元據DeBank數據顯示,當前以太坊DeFi協議鎖定資產總價值突破70億美元.
1900/1/1 0:00:00頭條 ▌智慧海南總體方案:做優做強區塊鏈等數字新產業8月14日,智慧海南總體方案發布,方案中提出,做優做強互聯網、大數據、區塊鏈、人工智能、信息安全、電子競技等數字新產業.
1900/1/1 0:00:00一、總覽 作為區塊鏈領域第一批預言機項目,Chainlink從去年開始受到市場的廣泛關注。不僅與谷歌、甲骨文等全球知名科技公司達成合作關系;其代幣還于2019年5月上線Coinbase,成為繼B.
1900/1/1 0:00:001.江西省工信廳廳長:認真貫徹政策部署著力推動江西區塊鏈產業發展2020年8月14日,全球區塊鏈創新發展大會于江西贛州開幕,會上江西省工信廳廳長楊貴平致辭表示,區塊鏈作為多技術的集成應用.
1900/1/1 0:00:00最近市場熱點是一個接一個,從YAM到CRV,流動性挖礦不斷上演,調動大家的神經,讓大家感動,連睡覺都是浪費。?在DeFi頭部協議中,Aave是一個宣布要搞流動性挖礦,而還沒搞的一個重磅項目.
1900/1/1 0:00:00在過去的幾個月中,加密貨幣支持者將注意力集中在伊朗上。伊朗總統哈桑·魯哈尼于去年5月啟動了一項新的采礦戰略,并于7月獲得了政府許可的14個比特幣采礦場.
1900/1/1 0:00:00