買比特幣 買比特幣
Ctrl+D 買比特幣
ads

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

Author:

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

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

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

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

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

第一個階段(下載區塊頭)會設置本地 HEAD 區塊。

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

也就是說,在理想情況下(沒有出現網絡中斷、應用沒有重啟等問題),每個階段只需執行一次,即可完成初始同步。

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

CoinShares:上周以太坊投資產品今年已流出近4億美元:6月13日消息,據CoinShares報告顯示,上周數字資產投資產品凈流出1.015億美元,其中比特幣投資產品流出5700萬美元,以太坊投資產品凈流出4100萬美元,2022年至今的總流出額已達3.87億美元,以太坊投資產品總資管規模已從2021年11月的230億美元降至目前的87億美元。[2022/6/13 4:23:15]

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

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

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

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

CME微型以太坊期貨已開放交易:金色財經報道,CME宣布正式推出微型以太坊期貨 (MET),已可供交易。據悉,MET的合約規模為一枚以太坊的十分之一,提供了一種有效的、具有成本效益的方式來管理以太坊敞口,并進一步優化交易策略。此前消息,CME將于12月6日推出微型以太坊期貨,正等待審核。[2021/12/7 12:55:22]

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

回退的階段順序如下例所示(從右往左依次發生)。

state.unwindOrder = []*Stage{

   // Unwinding of tx pool (reinjecting transactions into the pool needs to happen after unwinding execution)

以太坊箭形冰川升級預計將于12月10日進行,節點需在今日完成升級:12月5日消息,以太坊開發者Tim Beiko發推提醒稱,以太坊箭形冰川(Arrow Glacier)升級預計將于12月10日早上3點進行(區塊高度13,773,000),節點需在今日完成升級。據悉,Arrow Glacier網絡升級與Muir Glacier類似,改變了冰河時代/難度炸彈的參數,將其推遲了幾個月。[2021/12/5 12:52:25]

   stages, stages, stages, stages, stages, stages, stages, stages, stages, stages,

 }

通過 ETL 進行預處理

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

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

彭博社:以太坊上漲具有投機性:金色財經報道,在8月份的加密貨幣展望中,彭博社仍對以太坊不感興趣,其認為以太坊的上漲具有“投機性”,而比特幣的上漲是基于堅實的基礎。彭博社解釋稱,以太坊已經突破了去年的高點,并在2020年躍升為表現最出色的主要加密資產之一,但他們認為以太坊的反彈更具有投機性,相比之下,有利需求和供應條件則支撐了比特幣。[2020/8/6]

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

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

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

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

每個階段都包含兩個函數,分別是向前推進階段的ExecFunc 和向后回退階段的 UnwindFunc。

動態 | 過去12個月以太坊區塊鏈上的開發活動是EOS的近4.5倍:星球日報訊 加密信息網站Santiment的研究顯示,在過去12個月中,在以太坊區塊鏈上構建的總開發活動是EOS上的近4.5倍。根據這項研究,在過去12個月里,這一直是一個持續的趨勢。根據兩個平臺的開發活動圖表,顯然以太坊一直處于領先地位。

據CoinDesk此前報道,全球市值第七大區塊鏈EOS的早期支持者正在離開。9月初,參與推出第一個EOS鏈的EOS Tribe宣布,將退出EOS BP(區塊生產者)競選,專注于其他區塊鏈和EOSIO軟件的其他實施。EOS Tribe的Eugene Luzgin表示,如果沒有主要EOS巨鯨的支持,就不可能為維持區塊鏈獲取資金。這些EOS巨鯨絕大多數支持位于中國的BP。此外,絕大多數技術熟練程度較高的BP的獎勵被降級為較低級別的獎勵或根本沒有獎勵。Luzgin稱,他們現在實際上有人才流失。(The Daily Hodl)[2019/9/22]

從理論上來說,部分階段可以離線工作,但是當前版本并未實現這一功能。

階段 1 :下載區塊頭

在這一階段,我們會下載本地 HEAD 區塊和對等節點的 HEAD 區塊之間的所有區塊頭。

這一階段是 CPU 密集型的,適合使用多核處理器,因為要驗證區塊頭的工作量證明。

由于區塊鏈重組,大多數回退都是在這一階段開始的。

這一階段會推動本地 HEAD 的指針(指向更新的區塊)。

階段 2 :區塊哈希值

從區塊頭中抽取出一個從區塊哈希值映射成區塊號(blockHash -> blockNumber)的索引表,以支持更快速的查找功能,并讓同步過程對機械硬盤更為友好。

階段 3 :下載區塊體

在這一階段,我們會將上一階段已下載區塊頭的區塊體也下載下來。

這一階段需要保持良好的聯網連接。絕大多數數據都在這一階段下載。

階段 4 :復原發送者

這一階段會復原出并存儲每個已下載區塊中的每筆交易的發送者。

這一階段同樣是 CPU 密集型的,適合使用多核處理器。

這一階段不需要聯網。

階段 5 :執行區塊

在這一階段,我們會執行之前下載的所有區塊中的每一筆交易。

需要注意的一點是,在執行區塊的過程中,我們不會驗證根哈希,甚至不會創建默克爾樹。

這一階段是單線程的,無需聯網,需占用大量磁盤空間。如果區塊執行失敗,可以回退該階段。

階段 6 :計算狀態根

這一階段會構建默克爾樹,并驗證當前狀態的根哈希。

這一階段也會構建中間哈希值(Intermediate Hashes),并將它們存儲到數據庫中。

如果之前沒有存儲任何中間哈希值(這種情況可能在第一個初始同步期間發生),這一階段會構建出完整的默克爾樹及其根哈希。

如果數據庫中沒有中間哈希值,這一階段就會利用區塊的歷史記錄來弄清楚哪些哈希值已經過時,哪些哈希值是最新的,然后使用最新的哈希值來構建部分默克爾樹,只重構過時的哈希值。

如果根哈希無法匹配,就會向后回退一個區塊。

階段 7 :生成哈希值化狀態

在執行期間,Turbo-Geth 使用無格式狀態存儲(Plain state storage)。

無格式狀態(Plain State):在標準狀態(我們稱之為 “哈希值化狀態”)中,賬戶和存儲項的地址是 keccak256(address) ,但是在一般狀態中,二者的地址就是 address 。

盡管如此,為了確保一些 API 能夠正常運作并與其它客戶端保持兼容,我們也會生成哈希值化狀態。

如果哈希值化狀態不是空值,我們會查看歷史記錄變更集(History ChangeSet),并且只更新已更改的項。

這個階段不需要聯網。

階段 8、9、10 :生成索引

同步期間會生成 3 個索引。

這 3 個索引可能會被禁用,因為所有 API 都不使用它們。

交易查詢索引

該索引表由從交易哈希值到區塊號的映射構成。

賬戶歷史索引

該索引存儲了從賬戶地址到區塊列表(在這些區塊中,該賬戶的狀態有了更改)的映射。

存儲歷史索引

該索引存儲了從存儲項地址到區塊列表(其中,該存儲項在一定程度上有了更改)的映射。

在這一階段,我們會啟動交易池或更新其狀態。例如,如果我們已下載的區塊中包含了某些交易,就把這些交易從交易池中移除。

在回退時,我們會將被回退的區塊中的交易重新添加到交易池中。

原文鏈接:

https://github.com/ledgerwatch/turbo-geth/tree/master/eth/stagedsync

作者: Alex Sharov

翻譯&校對: 閔敏 & 阿劍

Tags:以太坊BSPNBSSTA以太坊最新價格人民幣BSPAYnbs幣最新消息STATIC價格

fil幣價格今日行情
加密貨幣:DeFi經濟學家:業內人士知道它是沒價值的 僅僅是投機_EFI

最近幾周,加密貨幣市場發生了些奇怪的變化,最初是迅速發展的DeFi項目代理的可持續性發展的趨勢,如今卻變成了一個毫無價值的怪異世界.

1900/1/1 0:00:00
IZE:首發 | DeFi項目Based智能合約出現漏洞 發生了什么?_Based Money

“亡羊補牢,為時未晚”,這句話在生活中的大部分時候均適用。然而,在面臨網絡安全時,牢破也許就會造成無法挽回的損失.

1900/1/1 0:00:00
TAM:以太坊輕錢包MetaMask或變更開源模式 欲與將其商業化的開發人員簽訂協議_MET

以太坊輕錢包 MetaMask 8 月 21 日發文,稱將改進 MetaMask 軟件使用許可方式.

1900/1/1 0:00:00
EFI:火幣觀察:灰度百日增持近8萬枚比特幣 行情何時回歸主流幣?_REFI幣

8月31日消息,一位匿名Reddit用戶匯總了一份數字資產管理公司灰度(Grayscale)從2020年4月初到目前的比特幣購買記錄數據表單.

1900/1/1 0:00:00
比特幣:首發 | OKEx Research:6大指標看懂真實的比特幣市場_ASS

本文由OKEx Research供稿,授權金色財經首發。近日,據Glassnode統計報告顯示,比特幣的短期MVRV比率目前正支持牛市的說法.

1900/1/1 0:00:00
SHI:金色薦讀 | Sushiswap 背后的故事_USHI

Overview 概述 本文從各渠道的官方公開資料入手,探索 SushiSwap 事件背后的邏輯,希望讀者通過客觀的邏輯推導進行理性投資。DeFi 火熱帶動整個幣圈興奮,似乎進入了「牛市」.

1900/1/1 0:00:00
ads