買以太坊 買以太坊
Ctrl+D 買以太坊
ads

TAT:以太坊技術引介:準無狀態下的同步實驗_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)正常流程(也就是當前在以太坊節點中使用的方案)

數據:以太坊橋TVL達到251.1億美元:金色財經報道,Dune Analytics數據顯示,以太坊橋當前TVL達到251.1億美元。其中鎖倉量最高的5個橋分別是Polygon Bridges(55.9億美元)、Avalanche Bridge(55.36億美元)、Fantom Anyswap Bridge(42.66億美元)、Ronin Bridge(34.13億美元)、Arbitrum Bridges(28.95億美元)。[2022/2/6 9:33:24]

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

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

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

保持 T2,以備后續使用。

2)無狀態流程

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

以太坊未確認交易為137,752筆:金色財經消息,據OKLink數據顯示,以太坊未確認交易137,752筆,當前全網算力為388.70TH/s,全網難度為5.17P,當前持幣地址為55,526,894個,同比增加190,583個,24h鏈上交易量為3,198,043.63ETH,當前平均出塊時間為13s。[2021/2/25 17:53:27]

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

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

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

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

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

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

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

留著 T2 以備后續使用。

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

分析師:以太坊2.0或無法完全解決網絡擁塞和高gas費用問題:加密貨幣分析師Alex Krüger在推特上表示,單一DeFi地址的數量正在迅速增加,自今年年初以來已經增加了35萬個地址。雖然像Uniswap這樣的DeFi平臺在交易量上超過了Coinbase,但與Coinbase的3200萬用戶相比,它的用戶群仍然很小。假設以太坊網絡gas費用已經達到峰值,現在是一個很好的時間點來實際評估以太坊2.0在gas費用上會有多大的不同。

根據其分析,以太坊2.0最初設置為從64個分片開始,每個分片都可能作為一個獨立的鏈來運行,具有自己的交易歷史。在這種情況下,網絡的交易能力將增加64倍。基于每個DeFi用戶有四個地址的假設,這相當于大約有11.4萬個單一用戶。在每個DeFi用戶只使用兩個地址的樂觀假設下,這個數字接近220000個用戶。有64個分片,這相當于1400萬用戶——仍然沒有達到Coinbase的處理能力。更糟糕的是,Coinbase只是幾個大型交易所之一。遵循這位分析師的邏輯,以太坊2.0上的分片并不能完全解決其擁塞問題。(Crypto Briefing)[2020/9/20]

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

以太坊研發者:高昂的Gas費是鏈上治理系統的嚴重威脅:金色財經報道,以太坊研發者Philippe Castonguay今日發推文稱,高昂的Gas費是鏈上治理系統的一個嚴重威脅,尤其是那些優化不良的體系。如果人們必須支付200美元的交易費來投票,大多數用戶將不會參與。而這只會導致鯨魚變得更重(鯨魚越來越富有)。只有他們能參與質押,只有他們能交易,只有他們能投票。[2020/8/19]

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

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

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

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

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

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

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

動態 | 微軟、英特爾均已推出基于硬件的以太坊擴展工具:據trustnodes報道,微軟和英特爾均已推出基于硬件的以太坊擴展工具。英特爾區塊鏈計劃辦公室主任Mike Reed表示,微軟推出的開源eEVM和可信執行環境(TEE)(如英特爾?軟件保護擴展)可通過啟用離線以太坊智能合約執行來幫助提高區塊鏈可擴展性和隱私性。隨著eEVM轉向開源以及EEA宣布推出可信計算API,離線智能合約功能已擴展到任何區塊鏈開發人員。[2018/11/2]

數據按下述方法得到(需要一個同步好的 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。

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:BSPNBSTATSTATBSPT價格nbs幣未來價格DeltaThetaNoah Decentralized State Coin

幣安app下載
BTC:金色前哨|火幣發布公鏈測試網上線公告 HT將作為唯一底層通證_比特幣

金色財經報道 2月29日,火幣全球站發布公鏈測試網正式上線公告,同時還披露了火幣公鏈4大顯著優勢:火幣公鏈是全球首個提供鏈上的合規及監管框架.

1900/1/1 0:00:00
CANN:如果DeFi長期發展良好 以太坊的產業價值將達到1萬億美元_比特幣實時行情

據AMBcrypto 2月26日報道,對于那些剛剛進入數字資產市場、不了解任何行業信息的新投資者來說,他們可能會更傾向于購買以太坊.

1900/1/1 0:00:00
BIT:多頭再次被打住 ETH多頭趨勢更強_KEX

市場底部支撐較強,多頭或將嘗試拉升幣價:據Bgain Digital投研數據:截止北京時間2020年3月10日18:00點,BTC價格7892.9美元,24小時內BTC價格上漲0.06%.

1900/1/1 0:00:00
ITS:BitMax(BTMX.com) 和 Bithumb Korea 宣布成為全球合作伙伴_BITS

北京時間2020年2月17日上午,BitMax.io (btmx. com)和 Bithumb Korea宣布成為全球戰略合作伙伴.

1900/1/1 0:00:00
ETHE:從地址大數據看八種主流幣的真實使用情況_Australian Safe Shepherd

傳統資產下的財富分配很難追蹤,因為人們常常隱藏自己的財富、混淆所持有資產的真實數量。而加密資產的出現,使財富分配向著更加透明化的方向邁出了一大步.

1900/1/1 0:00:00
FAT:FATF加密貨幣法規適應期將止 全球采用情況如何?_FAT價格

導近8個月前,金融行動特別工作組(FATF)發布了引發分歧的加密貨幣指令,在加密貨幣領域建立起傳統的銀行監管制度.

1900/1/1 0:00:00
ads