隨著以太坊網路的推進,以太坊客戶端不得不去儲存越來越多的數據,然而近期以太坊執行層客戶端卻爆出內鬨,位居第二與第三的客戶端 Nethermind 與 Besu 決定不再儲存歷史數據,這也引來以太坊核心開發者 Péter Szilágyi 發文痛批。
(前情提要:以太坊突破1600失敗!屯幣五年巨鯨向交易所存入3.5萬枚ETH,套現出場?)
(背景補充:以太坊「創世ICO巨鯨」轉出14.5萬枚ETH!流往9個新錢包、持倉未知幣$Canto)
自以太坊迎來「The Merge」合併後,要成為以太坊驗證者,除了需要在存款合約中質押 32 顆 ETH,還要同時運行兩個軟體客戶端,一個是執行層客戶端,用於執行交易,另一個是共識層客戶端,協助新產生的區塊達成共識。
以太坊執行層開發者內鬨
據 clientdiversity 數據顯示,目前有高達 83.94% 的驗證者正運行相同的執行層客戶端 Geth,只有不到 13 %的驗證者使用位居第二與第三的客戶端 Nethermind 與 Besu。然而,這將面臨一個風險,如果 Geth 存在錯誤或遭受攻擊,這可能會對整個網路帶來中斷的風險。
昨(22)日晚間,以太坊核心開發者,同時也是 Geth 的核心開發者 Péter Szilágyi 在 X 平台上發文砲轟以太坊客戶端 Nethermind 和 Besu,因為這兩個客戶端決定暫停儲存以太坊的歷史數據,並想將所有歷史數據標準化,以確保他們不會違反以太坊協議。
Apparently Nethermind and Besu stopped storing historical #Ethereum data and they want to standardise it so instead of a protocol violation it becomes *the* way to do it?!
This is an insanely irresponsible idea. 1/4https://t.co/ObULzHaZd5
— Péter Szilágyi (karalabe.eth) (@peter_szilagyi) October 22, 2023
Szilágyi 認為 Nethermind 和 Besu 的決定是一種「虛偽的行銷策略」,未來用戶可能會切換到這兩個客戶端,因為它們更輕巧,但這並不意味著以太坊不再需要歷史數據,Nethermind 和 Besu 只是把棘手的數據問題丟給 Geth,指出 Nethermind 和 Besu 的決定這將影響廣大的以太坊生態系統。
推文的最後,Szilágyi 表達了他對核心開發者們為了自身利益的失望,認為客戶端們需要更多的合作和負責任的方式來處理這些問題,而不是單純地停止儲存歷史數據。
我有的時候真的會想退出 Ethereum,拿一袋爆米花來看看會發生什麼。當連核心開發人員都在尋求最大利益,而不顧其他開發人員時,我為什麼還要努力試圖改善它。我對所有參與其中的人都感到深深的失望。
建議使用 EIP-4444
隨著以太坊網路的推進,以太坊客戶端不得不去儲存越來越多的數據,Szilágyi 在文章中也建議 Nethermind 和 Besu 與其他以太坊客戶端合作,透過 EIP-4444 來一同存檔歷史區塊數據,然後在讓所有客戶端將其刪除。
EIP-4444 具體的內容為何呢?
根據 Vitalik Buterin 在去年 11 月分享的以太坊路線圖,以太坊在完成 5 個關鍵階段後可實現「10 萬 TPS」,分別是 The Merge、The Surge、The Verge、 The Purge、 The Splurge,而 The Purge 旨在減少驗證者所需的硬碟空間,消除歷史數據和壞帳,其中解決辦法就有包括 EIP-4444:
- EIP-4444 (history expiry):對已高達數百 GB 的執行層客戶端歷史數據設限,使客戶端停止通過 P2P 服務舊的歷史數據,明確客戶端從其他來源尋找歷史數據,而非依賴於某些可能會導致質量下降的客戶端可選行為。
根據介紹,在 EIP-4444 下,以太坊客戶端將可丟棄超過 1 年的數據,The Purge 將能改善以太坊的以下層面:
- 減少對節點的硬體要求
- 允許客戶端刪除專用來處理遺留交易的程式碼
- 減少網路頻寬,客戶端僅需同步更少的數據
硬體需求的降低,將使消費級設備更容易運行一個完整的節點,進而改善網路的去中心化,更快的客戶端和輕量級的同步過程,則能減少對網路及節點的壓力,使協議更好地完成其核心工作,即在鏈的最末端處理交易。