以太坊Prysm客戶端事故復盤:單個epoch缺失248個區塊,驗證者損失382 ETH

robot
摘要生成中

【比推】12月4日,以太坊主網經歷了一場比較嚴重的技術波瀾。Prysm客戶端團隊最近發布了詳細的事故復盤報告,還原了當時發生的一切。

那天Fusaka時段,Prysm信標節點在處理某些attestations時出了大問題——節點資源瞬間耗盡,導致驗證者請求積壓,區塊和見證大量缺失。數字很扎心:從epoch 411439到411480,共42個epoch的時間裡,1344個slot中缺失了248個區塊,缺失率達到18.5%。網路參與率甚至一度跌至75%,驗證者因此損失了約382 ETH的見證獎勵。

根本原因是什麼呢?Prysm接收到了來自可能已失去同步的節點發來的attestations,這些數據引用的是前一個epoch的區塊根。為了驗證這些數據的合法性,Prysm不得不反覆回放舊的epoch狀態,執行高成本的epoch transition操作。在並發請求堆積的情況下,節點最終觸發了資源耗盡。有意思的是,這個缺陷源自Prysm PR 15965,早在一個月前就已經部署到測試網了,但當時沒有觸發相同的問題場景。

修復方案分兩步走。首先,v7.0.0版本中啟用了–disable-last-epoch-target參數作為臨時止血。然後隨後發布的v7.0.1與v7.1.0包含了長期修復方案——改用head state來驗證attestations,徹底避免重複回放歷史狀態。問題從UTC 4:45後開始逐步緩解,到epoch 411480時網路參與率已經恢復到95%以上。

Proyms團隊也借此機會進行了深度反思。他們指出,這次事件再次證明了客戶端多樣性的重要性。如果單一客戶端占比超過三分之一,可能導致網路短暫無法終局;超過三分之二就存在整條鏈失效的風險。同時,團隊也承認了功能開關溝通不清的問題,以及測試環境無法有效模擬大規模節點不同步場景的不足,後續會改進測試策略和配置管理。

ETH-1.58%
查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 讚賞
  • 留言
  • 轉發
  • 分享
留言
0/400
暫無留言
交易,隨時隨地
qrCode
掃碼下載 Gate App
社群列表
繁體中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)