本實驗用到的原始數據和腳本:https://github.com/mandrigin/ethereum-mainnet-resolver-witness-stats引言有一種辦法也許能加速初始同步過程(initial sync process,指從創世塊開始的區塊鏈同步),就是使用區塊見證數據(witness)預先建構出緩存樹(cache trie),來避免速度較慢的狀態訪問。這樣做需要額外占用硬盤空間和網絡帶寬,但也許可以大幅加速同步過程。
其中的原理是,一般來說,要執行一個區塊,我們就需要默克爾樹上的一些數據。雖然在某個塊執行以前,默克爾樹上已經有一些數據了,但這些數據可能不足以執行區塊。所以,正常來說,我們還要從狀態數據庫(state db)中提取出數據并加到默克爾樹上,然后才能驗證交易。這個過程可能會很慢,因為 硬盤訪問/數據庫查詢 的速度比較慢。
根據這個問題描述,我們可以劃分出三種不同的方案:
1)正常流程(也就是當前在以太坊節點中使用的方案)
鏈上防火墻提供商Harpie在以太坊主網上線:10月28日消息,鏈上防火墻提供商Harpie宣布已在以太坊主網上線。Harpie會審查用戶錢包中的每筆待處理交易,當發現有交易試圖竊取用戶資產時,能夠在執行過程中進行阻止。Harpie幫助用戶成功收回竊取資產時會收取0.01 ETH的固定費用。
據此前報道,今年9月,Harpie宣布完成450萬美元種子輪融資,Dragonfly Capital領投,Coinbase Ventures和OpenSea等參投。據悉,Harpie旨在保護以太坊錢包用戶,將建立一個由用戶想要發送代幣的應用程序組成的“可信網絡”,任何在此網絡之外的交易都將被識別為盜竊并被阻止。[2022/10/28 11:52:19]
在區塊 B 執行以前,我們有狀態樹 T1;
在需要執行 B 的時候,我們把 T1 中遺漏的數據添加到 T1 上,形成 T1',T1'',等等。每次遇到 T1 上沒有的信息,我們就在數據庫中查找(速度慢)。
執行完 B 之后,我們有了狀態樹 T2,T2 具備執行 B 所需的所有賬戶狀態。
保持 T2,以備后續使用。
澳證交所CEO:未來將努力批準基于比特幣和以太坊的“純”ETF:金色財經報道,據《悉尼先驅晨報》消息,澳大利亞證券交易所(ASX)首席執行官多米尼克·史蒂文斯(Dominic Stevens)表示,隨著加密行業不斷發展,澳大利亞證券交易所未來將推出更多加密業務。多米尼克·史蒂文斯還透露,正在開發的基于分布式賬本技術 (DLT) 的結算系統將在未來幾年的某個時候取代交易所老化的 CHESS 系統,另外他還聲稱將努力批準基于比特幣和以太坊的“純”交易所交易基金(“pure” exchange-traded funds)。[2022/2/15 9:53:15]
2)無狀態流程
在區塊 B 執行以前,我們并沒有狀態樹;不過,我們可以拿到一個見證數據 W,來重組執行這個區塊所需的狀態樹。
我們執行 W,獲得了狀態樹 T2。
在 T2 上執行區塊 B,不需要查找數據庫。
區塊執行完之后就把 T2 丟掉。
3)準無狀態流程(semi-stateless folw)(即本實驗要測試的方案)
在區塊 B 執行之前,我們有狀態樹 T1,見證數據 W1、W2、……,足以將 T1 轉成 T2
以太坊上BTC錨定幣總發行量為17.40萬枚:DeBank數據顯示,截至目前,BTC錨定幣總發行量為173987枚,鎖倉量約為82.69億美元。其中WBTC發行量為124670枚,占比為71.64%。緊隨其后的是HBTC和renBTC,發行量分別為23906枚和17089枚。[2021/3/7 18:22:03]
依次在 T1 上執行 W1、W2、……,最后獲得 T2,也不需要查詢數據庫。
在 T2 上執行區塊 B,也不需要查詢數據庫。
留著 T2 以備后續使用。
在初始同步中使用準無狀態流程可以獲得無狀態流程的大部分好處 ?,又不需要傳輸那么多數據,因為我們重用了狀態樹緩存。
? 在準無狀態方案中,區塊的并行執行會受到更大的限制
那么,為了測試準無狀態方案的性能,我們需要測量兩件事:
這一方法需要額外占用多少 硬盤/帶寬?與完全富狀態的方法相比,它真的更好嗎?
其初始同步速度會快多少?
本文中我們會集中測試硬盤需求。
狀態樹(默克爾樹)的最大規模:100 萬個 node。一旦節點數超過這個值,我們就驅逐 LRU 節點,以釋放內存。用這種辦法,我們就能控制狀態樹對內存的使用。
動態 | 報告:以太坊缺乏增長或因其無法改善NVTV比率:金色財經報道,Vision Hill在最近發布的一份報告中表示,以太坊缺乏增長可能是因為其無法改善NVTV(網絡價值/代幣價值比率)。在過去的兩年中,ETH的NVTV一直在下滑,這表明它無法捕獲在其平臺上發布的所有資產的價值。相反,價值正在各類應用程序中被捕獲。報告指出,在2019年第四季度,ETH的NVTV比率逼近1.0,但仍維持在1.0以上,ERC-20和ERC-721等代幣的發行可能主要是“寄生于以太坊”,通過目前給予礦工的ETH通貨膨脹率,ETH持有者為所有這些應用程序和代幣的安全性支付費用。因此,ETH持有者正被慢慢稀釋,但是ERC-20、ERC-721和其他應用的代幣持有者沒有被稀釋。[2019/12/24]
部分見證數據會存儲在數據庫中(我們用的是 boltdb)。每個條目的結構如下:
key: byte // 區塊號 + 狀態樹上節點的最大數量value: []byte // 見證數據,按文檔中的描述予以序列化我們不會在見證數據里存儲合約代碼(這是我們當前架構的不足)。
以太坊開發人員針對波多黎各颶風開發了區塊鏈保險政策:據coindesk消息,根據周二發布的消息,波多黎各當地的兩位以太坊開發人員創立了初創公司Etheric,制定了一項特別為波多黎各居民提供颶風破壞保護的區塊鏈保險政策。[2018/4/25]
數據按下述方法得到(需要一個同步好的 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。這個值與按區塊提供見證數據相比,節約太多,即使算上我們改變狀態樹模式能夠得到的增益相比,也節約非常多(關于十六進制樹和二進制樹模式下見證數據大小的區塊,可見我的上一篇文章)(譯者注:中譯本見文末超鏈接)。
如果這個性能還算可以,那么它顯然是加速初始同步的好辦法;而且它的數據需求比完全無狀態方法更小。
來源:bernardmarr.com作者:Frank Yao;Amber Yang編輯:Tony Feng 1、莫忘開源,深耕社區 最近與一位匿名幣的早期投資人交流,他否認自己是投資人.
1900/1/1 0:00:00當比特幣區塊獎勵減半時,所有礦工產生的總收入也將減少一半。如果哈希率、功耗和電費都保持與以前相同,因此如果硬件沒有進行升級以保持競爭力,那么挖礦業務將很可能無利可圖.
1900/1/1 0:00:00昨夜今晨,主流數字貨幣普跌。比特幣在夜間的空頭情緒已經蔓延到今天,導致加密貨幣今天緩慢下跌。截至發稿前,比特幣報價9754USDT,24h變化-1.08%,ETH報價248.64USDT,24h.
1900/1/1 0:00:00主流幣種隔夜再度出現集體性跳水行情,在BTC快速下破并創出近兩周新低的帶動下熱力圖覆蓋到的幣種全線走低,昨日早盤至今的這段時間里主流幣種平均跌幅達到5%.
1900/1/1 0:00:00顯然,在過去的三年中,加密貨幣支付正變得越來越流行,尤其用于發展中國家的點對點支付。然而,同樣明顯的是,無論大商家還是小商家,都不想處理接受加密貨幣作為支付方式面臨的兩個主要障礙:波動性和安全性.
1900/1/1 0:00:00元界DNA于2月18日宣布登陸上線頭部數字資產平臺BiKi和富比特,此時的DNA已連續兩日位列前一百市值幣種漲幅第一,價格更是沖破0.036USDT.
1900/1/1 0:00:00