以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads
首頁 > MANA > Info

以太坊技術引介:準無狀態下的同步實驗_NBS

Author:

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

本實驗用到的原始數據和腳本:https://github.com/mandrigin/ethereum-mainnet-resolver-witness-stats引言有一種辦法也許能加速初始同步過程(initial sync process,指從創世塊開始的區塊鏈同步),就是使用區塊見證數據(witness)預先建構出緩存樹(cache trie),來避免速度較慢的狀態訪問。這樣做需要額外占用硬盤空間和網絡帶寬,但也許可以大幅加速同步過程。

其中的原理是,一般來說,要執行一個區塊,我們就需要默克爾樹上的一些數據。雖然在某個塊執行以前,默克爾樹上已經有一些數據了,但這些數據可能不足以執行區塊。所以,正常來說,我們還要從狀態數據庫(state db)中提取出數據并加到默克爾樹上,然后才能驗證交易。這個過程可能會很慢,因為 硬盤訪問/數據庫查詢 的速度比較慢。

根據這個問題描述,我們可以劃分出三種不同的方案:

1)正常流程(也就是當前在以太坊節點中使用的方案)

以太坊Layer2上總鎖倉量為96.34億美元:金色財經報道,L2BEAT數據顯示,截至目前,以太坊Layer2上總鎖倉量為96.34億美元,近7日漲10.27%。其中鎖倉量最高的為擴容方案Arbitrum One,約57.99億美元,占比60.20%,其次是Optimism,鎖倉量22.67億美元,占比23.53%。[2023/6/24 21:57:29]

在區塊 B 執行以前,我們有狀態樹 T1;

在需要執行 B 的時候,我們把 T1 中遺漏的數據添加到 T1 上,形成 T1',T1'',等等。每次遇到 T1 上沒有的信息,我們就在數據庫中查找(速度慢)。

執行完 B 之后,我們有了狀態樹 T2,T2 具備執行 B 所需的所有賬戶狀態。

保持 T2,以備后續使用。

2)無狀態流程

在區塊 B 執行以前,我們并沒有狀態樹;不過,我們可以拿到一個見證數據 W,來重組執行這個區塊所需的狀態樹。

我們執行 W,獲得了狀態樹 T2。

在 T2 上執行區塊 B,不需要查找數據庫。

以太坊L2網絡總鎖倉量突破60億美元:金色財經報道,L2BEAT數據顯示,截至3月4日,以太坊Layer2上總鎖倉量為60億美元。其中鎖倉量最高的為擴容方案Arbitrum,約32.6億美元,占比54.42%。其次是dYdX,鎖倉量9.63億美元,占比16.04%。[2022/3/4 13:36:19]

區塊執行完之后就把 T2 丟掉。

3)準無狀態流程(semi-stateless folw)(即本實驗要測試的方案)

在區塊 B 執行之前,我們有狀態樹 T1,見證數據 W1、W2、……,足以將 T1 轉成 T2

依次在 T1 上執行 W1、W2、……,最后獲得 T2,也不需要查詢數據庫。

在 T2 上執行區塊 B,也不需要查詢數據庫。

留著 T2 以備后續使用。

在初始同步中使用準無狀態流程可以獲得無狀態流程的大部分好處 ?,又不需要傳輸那么多數據,因為我們重用了狀態樹緩存。

? 在準無狀態方案中,區塊的并行執行會受到更大的限制

那么,為了測試準無狀態方案的性能,我們需要測量兩件事:

Power Ledger將從以太坊遷移至Solana并提供質押服務:據官方消息,澳大利亞區塊鏈公司Power Ledger宣布將從以太坊遷移至Solana,并為POWR持有者提供委托質押服務。官方稱,Solana可以輕松地支持其現有服務套件的擴展。[2021/7/12 0:44:50]

這一方法需要額外占用多少 硬盤/帶寬?與完全富狀態的方法相比,它真的更好嗎?

其初始同步速度會快多少?

本文中我們會集中測試硬盤需求。

狀態樹(默克爾樹)的最大規模:100 萬個 node。一旦節點數超過這個值,我們就驅逐 LRU 節點,以釋放內存。用這種辦法,我們就能控制狀態樹對內存的使用。

部分見證數據會存儲在數據庫中(我們用的是 boltdb)。每個條目的結構如下:

key: byte // 區塊號 + 狀態樹上節點的最大數量value: []byte // 見證數據,按文檔中的描述予以序列化我們不會在見證數據里存儲合約代碼(這是我們當前架構的不足)。

動態 | 以太坊可擴展性平臺SKALE Network籌集1710萬美元用于啟動主網:據CoinDesk今日消息,以太坊可擴展性平臺SKALE Network已籌集1710萬美元用于啟動主網絡。ConsenSys Labs、Winklevoss Capital等參與投資。[2019/10/1]

數據按下述方法得到(需要一個同步好的 turbo-geth 節點)

(in the turbo-geth repository)make state./build/bin/state stateless \     — chaindata ~/nvme1/mainnet/mainnet/geth/chaindata \     — statefile semi_stateless.statefile \     — snapshotInterval 1000000 \     — snapshotFrom 10000000 \     — statsfile new_witness.stats.compressed.2.csv \     — witnessDbFile semi_stateless_witnesses.db \     — statelessResolver \     — triesize 1000000 \實驗結果存儲從創世塊開始同步 6, 169, 246 (619 萬)區塊,見證數據的數據庫(bolt db)達到了 99GB。

分析 | 以太坊對比特幣匯率創新低 ERC20代幣對ETH市值占比有所上升:據 TokenGazer 數據分析顯示,截止至 8 月8 日 11 時,以太坊價格為$225.56,總市值為$24208.56 M,主流交易所交易量約為$202.88 M,環比昨日縮量 19.33%,在 BTC 價格小幅波動時,以太坊承受了更多下行壓力,致使以太坊對比特幣匯率創年內新低;基本面方面,以太坊鏈上交易量呈上行趨勢,活躍地址數有一定下滑,算力保持穩定,鏈上 DApp 交易量有一定上行趨勢;以太坊 30 天開發者指數約為 2.37,與 BTC 180 天關聯度呈現有一定下滑,目前約為 0.78;以太坊 30 天 ROI 持續下滑;ERC20代幣總市值約為以太坊總市值的 63.4%,有所上升。[2019/8/8]

python quantile-analysis.py cache_1_000_000/semi_stateless_witnesses.db.stats.1.csv

平均值     0.038 MB中值       0.028 MB90 分位值    0.085 MB95 分位值    0.102 MB99 分位值    0.146 MB最大值       2.350 MB數據大小python absolute_values_plot.py cache_1_000_000/semi_stateless_witnesses.db.stats.1.csv從創世塊到 610 萬區塊高度的階段的見證數據大小,圖表在 1MB 處截頂了。按 1024 個塊取滑動平均值。

absolute_values_plot.py cache_1_000_000/semi_stateless_witnesses.db.stats.1.csv 3000000解決上海 DDoS 攻擊之后的見證數據大小,按 1024 個區塊取滑動平均值。

python ddos_zoom.py cache_1_000_000/semi_stateless_witnesses.db.stats.1.csv放大看 DDoS 攻擊對見證數據大小的影響(原始數據)。

可以看到,在 230 萬高度到 250 萬高度,以及 265 萬高度到 275 萬高度期間,見證數據的大小顯著增大。

python full_vs_semi.py cache_1_000_000/semi_stateless_witnesses.db.stats.1.csv

完全無狀態下的見證數據大小是根據準無狀態下的見證數據加上缺失的合約代碼部分調整得來的.

從這張圖可以看出,使用準無狀態方法,可以節約大量數據(與完全無狀態方法相比)。

加上一個無狀態解析器會讓每個區塊需要 傳輸/存儲 的數據量增加 0.4 MB。這個值與按區塊提供見證數據相比,節約太多,即使算上我們改變狀態樹模式能夠得到的增益相比,也節約非常多(關于十六進制樹和二進制樹模式下見證數據大小的區塊,可見我的上一篇文章)(譯者注:中譯本見文末超鏈接)。

如果這個性能還算可以,那么它顯然是加速初始同步的好辦法;而且它的數據需求比完全無狀態方法更小。

Tags:NBSBSPSTATATNBS幣BSP幣PASTA Vault (NFTX)STATS

MANA
了解雙幣種合約 (quanto) 的風險與機遇_USD

雙幣種合約(quanto)是一種衍生品,其中標的資產以一種資產計價(如ETH),但衍生工具以另一種資產(如BTC)結算.

1900/1/1 0:00:00
行情周報丨本周行情重要動態一覽_SDT

整體市場趨勢 本周,全球加密貨幣總市值由上周2900億美元附近下降至當前約2150億美元,整體大幅約750億美元.

1900/1/1 0:00:00
俄羅斯中央銀行新規稱加密相關交易存在洗錢風險_加密貨幣

俄羅斯中央銀行正在將洗錢活動與加密交易聯系起來。 據俄羅斯金融出版物RBC報道,俄羅斯中央銀行(CBR)發布了一系列有關可疑交易的新規則,規則中將所有與加密貨幣相關的交易歸類為存在潛在的洗錢風險.

1900/1/1 0:00:00
火幣中國持續發力"區塊鏈+" 將推出區塊鏈BaaS平臺_區塊鏈

2月20日,火幣中國宣布將推出自主研發的區塊鏈BaaS平臺,將以此為載體打造區塊鏈行業應用生態集群。市場對區塊鏈功能和應用的認可度越來越高,但過高的技術門檻正成為發展阻礙.

1900/1/1 0:00:00
美SEC與演員Steven Seagal達成15.7萬美元和解_SEC

美國證券交易委員會(SEC)與演員Steven Seagal達成和解。 美SEC確認收到Bitwise的現貨比特幣ETF重新申請:金色財經報道,美國證券交易委員會(SEC)已正式確認收到(ack.

1900/1/1 0:00:00
有人說區塊鏈會取代互聯網?我來厘清它們的關系_區塊鏈

文/孟永輝 資本大佬的振臂一呼讓我們開始關注區塊鏈行業,并且引發了一波區塊鏈的創業浪潮。從本質上來看,這場區塊鏈創業浪潮依然是“互聯網+”模式的延續.

1900/1/1 0:00:00
ads