
以太坊 Prysm 客户端遭遇主网事件:由于资源耗尽,导致大规模区块和见证缺失
Prysm 团队发布了一份主网事件回顾报告,指出在 12 月 4 日以太坊主网 Fusaka 会议期间,几乎所有 Prysm 信标节点在处理特定的证明时资源耗尽,导致无法及时响应验证者的请求,造成大量区块和见证缺失。该事件影响了第 411439 到 411480 个纪元,共 42 个纪元,缺失区块 248 个,缺失率约为 18.5%。网络参与度一度下降至 75%,验证者在见证奖励中损失了约 382 ETH。根本原因是 Prysm 接收到了可能与主网不同步的节点的证明。这些证明引用了前一个纪元的区块根。为了验证其合法性,Prysm 反复重放旧的纪元状态并进行了高成本的纪元转换,导致节点在高并发下资源耗尽。缺陷源于 Prysm PR 15965,该版本在一个月前已部署到测试网,但并未触发相同的场景。官方的临时解决方案是在 v7.0.0 版本中启用--disable-last-epoch-target参数;后续发布的 v7.0.1 和 v7.1.0 包含了长期修复,使用头状态来验证证明,避免重复重放历史状态。Prysm 表示,该问题在 12 月 4 日 UTC 时间 4:45 后逐渐缓解,网络参与度在第 411480 个纪元时恢复至 95% 以上。Prysm 团队指出,此事件突显了客户端多样性的重要性;如果单一客户端占比超过三分之一,可能导致暂时无法终止;超过三分之二则存在无效终止链的风险。他们还反思了关于功能开关的沟通不清,以及测试环境未能模拟大量异步节点的失败,并将在未来改进测试策略和配置管理。

