Revisão do incidente do cliente Prysm do Ethereum: ausência de 248 blocos em um único epoch, validadores perderam 382 ETH

robot
Geração do resumo em andamento

【比推】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-0.42%
Ver original
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
  • Recompensa
  • Comentário
  • Repostar
  • Compartilhar
Comentário
0/400
Sem comentários
  • Marcar
Negocie criptomoedas a qualquer hora e em qualquer lugar
qrCode
Escaneie o código para baixar o app da Gate
Comunidade
Português (Brasil)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)