比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > 中幣 > Info

以太坊階段式同步:重構完全同步模式(Full Sync)_GES

Author:

Time:1900/1/1 0:00:00

階段式同步重構自Go-Ethereum的完全同步模式,以實現更好的性能。

階段式同步需要進行大量讀寫操作。雖然我們的目標是能夠在機械硬盤上同步節點,但是我們仍建議使用固態硬盤。

顧名思義,階段式同步需要依次執行10個階段。

階段式同步是如何運作的

Turbo-Geth客戶端會向每個對等節點了解該節點的HEAD區塊,然后依次執行每個階段、尋找本地HEAD區塊和對等節點的HEAD區塊之間缺失的區塊。

第一個階段會設置本地HEAD區塊。

各階段會按順序執行。在每個階段執行期間,只有節點本地的狀態達到目標狀態,該階段才會結束。

也就是說,在理想情況下,每個階段只需執行一次,即可完成初始同步。

最后一階段結束后,整個同步流程會重新開始,尋找新的區塊頭下載。

以太坊2.0客戶端Teku宣布推出可選升級版本v21.11.1:11月12日消息,以太坊2.0客戶端Teku宣布推出可選升級版本v21.11.1,更新包括修復了BLST在Apple Silicon芯片上的兼容性等。[2021/11/12 21:46:43]

如果你在兩個階段之間重啟應用,應用會從第一階段開始重啟。

如果你在某個階段執行期間重啟應用,應用會從當前階段開始重啟,以完成該階段。

每個階段需要耗時多久?

通過下方的餅狀圖,我們可以看出每個階段的耗時占比。雖然這些數據并不精確,但是足以作為參考。

重組/回退

如果區塊鏈發生重組,我們需要“回退”部分同步數據。

回退指的是從最后一個階段倒退回第一個階段。但是,需要注意的一點是,我們執行完回退之后才會更新交易池,因此我們知道新的nonce。

Solana Labs聯合創始人:Solana無意也無法扼殺以太坊:11月12日消息,雖然由于Solana(SOL)費用更低、交易更快,許多專家將其稱為“以太坊殺手”,但Solana Labs聯合創始人Raj Gokal表示,Solana無意扼殺以太坊——而且就算真的這么做了,也無法實現。Gokal近日在推特上回應風險投資公司Placeholder聯合創始人Chris Burniske時強調“這并不一定是一場戰斗“,因為他認為所有從事加密領域工作的人的目標應該是讓“每個人”都能進入Web 3.0,并指出:“我們并未試圖扼殺以太坊。以太坊不會被扼殺,這是不可能的。它已經是世界上一種美麗的善之力量,賦予數百萬人權力,并創造數十億的財富,比特幣顯然也是如此。”(Cointelegraph)[2021/11/12 21:45:37]

回退的階段順序如下例所示。

state.unwindOrder=*Stage{

灰度以太坊信托達到10億美元:11月6日早間,灰度官方發推表示,旗下管理的以太坊信托基金規模已經達到10億美元。灰度以太坊信托是美國第一個公開上市的以太坊投資產品,也是第二種向美國證監會報告的數字貨幣投資產品。[2020/11/6 11:48:24]

??//Unwindingoftxpool(reinjectingtransactionsintothepoolneedstohappenafterunwindingexecution)

??stages,stages,stages,stages,stages,stages,stages,stages,stages,stages,

?}

通過?ETL?進行預處理

在將數據插入數據庫之前,一些階段會使用我們的ETL框架根據鍵值對數據進行排序。

動態 | 基于以太坊并錨定比特幣的項目tBTC或于今年3月上線主網:基于以太坊網絡并錨定比特幣的項目tBTC或于今年3月推出v1主網。風險投資工作室Thesis于2016年推出KeepNetwork,KeepNetwork此后與跨鏈金融服務提供商Summa合作創立Cross-ChainWorkingGroup,該小組表示自2018年以來一直在研究一種名為最小化信任的協議tBTC,同時tBTC將是Keep網絡上推出的首個主要應用。Thesis首席執行官兼tBTC項目負責人MattLuongo表示,tBTC為ERC-20代幣,由比特幣完全抵押,可以隨時兌換,假設一個比特幣持有者希望在以太坊上使用他們的比特幣,則可以將其比特幣存入一個閾值簽名合約,該合約由隨機選擇的一組簽名者創建和控制,并向以太坊鏈發送證明。tBTC目前已凍結代碼并接受代碼審計,團隊計劃在今年3月發布v1主網。[2020/2/14]

這樣就可以極大減少數據庫寫入放大的情況。

動態 | 當前以太坊未確認交易數為16528筆:據Etherscan.io數據顯示,以太坊未確認交易數16528筆。以太坊全網算力為183.717TH/s,當前挖礦難度2364.15TH,交易處理能力9.1TPS。[2019/9/13]

因此,當我們生成索引或者說哈希值化狀態時,我們會執行一個多步驟流程。

將處理過的數據寫入位于數據目錄的幾個臨時文件中;

然后使用一個堆棧把臨時文件中的數據插入到數據庫中,并且使按照能夠最小化數據庫寫入放大現象的順序插入數據。

這種優化有時會將寫入速度提高幾個數量級。

各階段

每個階段都包含兩個函數,分別是向前推進階段的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

翻譯&校對:閔敏?&?阿劍

Tags:以太坊STATAGGES怎么挖以太坊幣Uberstate RIT2.0DataGOld幣總量DOGES幣

中幣
BCB助推農業現代化,讓農業挑上科技的“金扁擔”_BCB

往昔農民看天吃飯, 如今農民看著數據把糧收 唱著歌過上小康生活, 這就是“金扁擔”的力量,也是BCB農業科技應用的有力見證.

1900/1/1 0:00:00
BTU(比特果)全球首發上線Hetbi交易所_USD

尊敬的Hetbi交易所用戶:2020年8月20日15:00,基于HRC20發行的數據存儲鏈BTUChain唯一資產通證BTU將正式首發上線Hetbi交易所USDT分區,同步開通交易對.

1900/1/1 0:00:00
Defi隱患重重,IPFS/Filecoin創造超級風口_DEF

近期,DeFi概念火爆市場,各類去中心化金融產品爆發式增長,推動比特幣價格突破12000美金,以太坊創年內新高,上漲勢頭十分強烈.

1900/1/1 0:00:00
小安干貨分享,幣圈炒幣的6大技巧總結_PAY

小安認為任何一個價格的出現只能給一個位置,不能給一個未來。下對注,贏一次;跟對人,贏一世,在市場中不在于活得長與短,而在于頓悟的早與晚,讀萬卷書不如行千里路,行千里路不如閱人無數,閱人無數不如名.

1900/1/1 0:00:00
幣圈總監:BTC/ETH 合約晚間精品行情分析_ADC

BTC行情分析:4小時級別看幣價回踩11700布林帶下軌之上,KDJ三線呈向發散空頭趨勢,RSI相對指標MA5均線呈向上拐頭,MA5和MA10均線11800交叉,幣價受上方壓制呈空頭趨勢發展.

1900/1/1 0:00:00
火幣合約8月17日14:00-14:10系統升級公告

親愛的用戶: 您好!為了給您提供更好的交易體驗,火幣合約平臺將于新加坡時間2020年8月17日14:00–14:10(GMT8)同時進行交割合約和永續合約系統升級,此次升級時長預計10分鐘.

1900/1/1 0:00:00
ads