聊一聊以太坊合並測試暴露出來的一些問題
發表於 2022-03-28 15:04 作者: Defi之道
信標鏈
上周我們發生了一個小事故,在大約一個小時的時間裏,信標鏈的參與度下降了8%左右,事件發生後,我們在Discord頻道展开了大量討論,开發者們查看了是誰丟失了區塊proposal,很快,我們就發現這次事故是因爲Teku引起的。
圖:在一個小時左右的時間裏,信標鏈的網絡參與度下降了8%
你可以通過我們的事後回顧報告了解整件事的全貌。總結是,在故障發生之前的幾個小時內,存款合約中的ETH存款出現了大幅度的飆升。對ETH 1鏈狀態達成一致的機制意味着,每隔7小時左右,存款就會被分批處理至信標鏈上。而短時間內發生的大約4000筆存款,暴露了Teku客戶端在處理存款性能上的一些糟糕表現,並產生了一些令人討厭的級聯效應。
值得慶幸的是,這個問題只是暫時的,這批存款得到處理後,網絡參與就恢復了正常。此外,沒有實用的方法來重復DoS攻擊Teku客戶端:因爲存入4000筆存款的代價是昂貴的!正如評論中所解釋的,我們已經修復了最初的性能問題,並深入研究了底層結構,以使Teku客戶端在未來更穩定。修復版客戶端代號爲22.3.2,如果你還沒有更新,那請盡快進行更新。
由於Teku客戶端的市場份額較小(佔比不到33%),因此這次事故的影響是微乎其微的,信標鏈還是繼續前進而沒有停下腳步。倘若市場佔比最多的客戶端都受到影響,那么後果將是一段相當長的非最終確定期。這對每個人都是不利的,尤其是那些運行主流客戶端的人,因爲他們會因爲inactivity leak機制(消極懲罰機制)而遭到額外的懲罰。
爲了進一步強調客戶端多樣性的重要性,Dankrad 最近發表了一篇深入探討這些問題的文章。他寫道:
“如果你目前正在運行Prysm客戶端,則存在非常現實的問題,即你可能會損失所有資金,你應該考慮更換客戶端。”
更多關於客戶端多樣性的信息:
Freddy創建了一個財務模型,允許質押者量化與運行多數客戶端相關的風險;
rated.network 已經更新了他們的前端,以顯示每個質押運營商的客戶端分布情況;
Vans 上周在 ETH Austin討論了客戶端多樣性的問題。我試圖找到這次活動的錄音,但沒能成功,如果你有的話,請告訴我。
Dappnode 正在盡其所能!其現在支持了Prater 測試網上的三個客戶端,不久之後將添加Nimbus。這是早就預料到的,進行測試吧,我們很快會在主網上看到它;
其他關於信標鏈的新聞:我們即將迎來一個重大的技術裏程碑。衆所周知,目前驗證器的激活和退出被限制爲每個epoch 4次,即每天900次。一旦網絡擁有327680個活動驗證器,那么這個限制將上升到每個epoch 5次,每天1125次。這聽起來可能沒什么大不了的,但實際上它是信標鏈運營的一個重大變化。我們應該會在下周的某個時候達到這個裏程碑。
合並
Kiln 測試網
以太坊基金會在3月14日發布了備受期待的 Kiln 公共合並測試網公告,這是登錄頁面。
Kiln合並活動在3月15日格林威治標准時間下午 3 點之後不久發生了,雖然有點不太理想,但它最終還是取得了成功。合並完成後,統一的鏈繼續運行了,交易也得到了處理。
然而,這個過程也出現了一些問題。在上一次核心开發者電話會議上,我們討論了它們,總結如下:
Prysm 自身與執行層之間存在一個字節序(endianness)分歧,這導致其無法生成有效區塊。由於 Kiln測試網配置了相當均勻的共識客戶端,因此影響並不大。但如果客戶端分布與今天的信標鏈情況相似,那么這將是一個重大的問題。這裏是Prysm的事件審查。
Nethermind客戶端的一些節點崩潰了。
Erigon也出現了一些字節序問題。
通過這次測試,我們學到了一些經驗教訓。涉及的客戶端數量倍增,這使得我們比平時更難弄清楚到底發生了什么。而且,我們現在已經習慣了區塊鏈瀏覽器不可用的情況。
現在的計劃是讓Kiln測試網繼續作爲公开測試網使用,並鼓勵每個人都試一試。似乎 Tenderly、Lido 和 Uniswap 都已經加入了進來,如果你想確保你的東西在合並後能夠完美運行,那么現在是時候在Kiln測試網上進行測試了。
以下是關於Kiln測試網的一些教程資源:
如何在Kiln測試網上運行一個節點;
用於Kiln測試網的Lodestar設置;
Devnet-6和影子分叉
隨着Kiln測試網的上线和運行,測試的工作只會加強。另一個短期的devnet測試網(Devnet-6)將於下周上线。
比Devnet測試網更有趣的是影子分叉(shadow forks)。這是我們獲取現有網絡的狀態並將其鏡像到合並的PoS網絡的地方。這意味着來自真實網絡的tx可以在合並發生時重放到影子網絡上。Goerli網絡就是影子分叉網絡,並且計劃每兩周重復一次。(由於交易順序問題,兩個網絡會逐漸失去同步,所以影子網絡需要不時地重新初始化,以達到最大的效果。)
如果devnet-6 和 Goerli網絡影子分叉都進展順利,那么我們打算在兩周內做一次以太坊主網的影子分叉。最終會有一個每天更新的影子分叉網絡,供客戶端放大任何潛在的問題。
之後,开發者們會考慮將現有測試網遷移到 PoS,你可以在wenmerge.com這個網站跟蹤進展(提醒一下,不要把倒計時看得太重,我們並不是由難度炸彈驅動的,也不會僅僅因爲這個而匆忙行事。盡管如此,難度炸彈肯定是決策組合中的一個因素之一。)
Pandas
現在看來,爲合並事件實現一個ASCII藝術 banner(謝謝,Greg!)已經被很多人期待了。Prysm和Lighthouse已經實現了,如果有任何ASCII 藝術天才想幫助 Teku,我們有一個尚未解決的問題需要幫助。
合並之後的升級
合並後網絡升級的兩大主題(執行端暫定爲Shanghai,共識端暫定爲Capella)仍然是驗證器余額取款,以及所謂的blob交易。
正如之前提到的,現有有了一個驗證器取款規範,它是執行更改和共識更改的保護傘。有3個EIP需要在共識方面進行討論:
PR-2836是推動取款的基礎,即從信標鏈提取到執行層。(據我所知,這將要求我們這些擁有舊式 BLS 提款憑證(0x00 前綴)的人在提款之前更新爲 0x01 憑證。我還沒有看到進行此更新的機制,盡管它存在一個未解決的問題。)
PR-2854 只是一個管理更新,以反映此機制不會觸發 EVM 執行。它只會更新 Eth1 账戶的余額。
PR-2862 提出了一種機制,用於部分提取超過 32 ETH的余額。(這將以循環方式自動從驗證器中刮取多余余額,並以每個epoch 256個驗證器的速率將其轉移到相關的Eth1帳戶,根據當前數字,這相當於每個驗證器大約每6天經歷一次。關於這個頻率的基本原理你可以看這裏。)
這些更改的執行端對應的是 EIP-4895,好消息是,無論是全部提款還是部分提款,從驗證器提取到你的Eth1 账戶都不會產生 gas 費用。
至於 Blob 交易提案 EIP-4844,它甚至已經有了屬於自己的網站(可見這個提案的重要性)。該網站列出了Vitalik撰寫的Proto-Danksharding常見問題解答,是的,proto-danksharding似乎成了這個升級的新名字。
研發和常規开發者電話會議
MEV 仍然是推動以太坊架構未來發展的重要因素。人們對當前的行駛方向存在着重大擔憂,我總是很高興看到有人提出替代方案。Shutterized Beacon Chain就是這樣的一種替代方案,它描述了一種在以太坊區塊中處理加密交易的機制。
第84次實施者電話會議在3月24日順利舉行。
議程
視頻
我的速記內容
第134次核心开發者電話會議在3月18日順利舉行。
議程
視頻
來自Tim Beiko的筆記;
主題:Kiln測試網上线回顧;JSON RPC標記爲“已完成”、“安全”以及“最新”;信標鏈提款;proto danksharding(EIP-4844);協調執行層和共識層的EIP流程。
注:原文作者是ConsenSys的开發者Ben Edgington。
標題:聊一聊以太坊合並測試暴露出來的一些問題
地址:https://www.coinsdeep.com/article/1565.html
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。