以太坊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.1%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 评论
  • 转发
  • 分享
评论
0/400
暂无评论
交易,随时随地
qrCode
扫码下载 Gate App
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)