Sự cố của khách hàng Prysm Ethereum: mất 248 khối trong một epoch, nhà xác thực thiệt hại 382 ETH

robot
Đang tạo bản tóm tắt

【比推】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团队也借此机会进行了深度反思。他们指出,这次事件再次证明了客户端多样性的重要性。如果单一客户端占比超过三分之一,可能导致网络短暂无法终局;超过三分之二就存在整条链失效的风险。同时,团队也承认了功能开关沟通不清的问题,以及测试环境无法有效模拟大规模节点不同步场景的不足,后续会改进测试策略和配置管理。

ETH0,42%
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
  • Phần thưởng
  • Bình luận
  • Đăng lại
  • Retweed
Bình luận
0/400
Không có bình luận
  • Ghim