作者 | Carl Beekhuizen
翻译&校对 | 闵敏 & 阿剑
来源 | 以太坊爱好者
免责声明:本文没有贬低任何一个客户端。每个客户端,甚至是规范,可能都存在不足和漏洞。ETH 2.0 是一个复杂的协议,实现这个协议的人也都是肉体凡胎。本文旨在强调如何以及为何要降低风险。
随着 Medalla 测试网上线,官方团队鼓励人们对不同的客户端进行实验。从创世的那一刻起,这么做的重要性便凸显出来:Nimbus 和 Lodestar 节点因无法处理测试网的负载量而卡住 [0] [1]。结果,Medalla 在上线半个小时内无法敲定区块。
在北京时间 8 月 15 日,由于 Prysm 客户端用来作为参照的时钟服务器突然出现偏差,Prysm 节点的时钟提前了 4 小时。因此,这些节点一直在为超前的 slot 创建区块和见证消息。等这些节点的时钟恢复正常后,那些禁用了默认罚没保护机制的验证者发现自己遭到了罚没。
若想了解更详细的情况,我强烈推荐你阅读 Raul Jordan 的《ETH2 Medalla 测试网事故》一文(编者注:见文末超链接)。
时钟故障——情况恶化
出现时钟偏差时,Prysm 节点占全网节点的 62% 左右。这就意味着,网络无法达到敲定区块所需的最低参与率(> 2/3)。更糟糕的是,这些节点找不到它们所预期的区块链顶端(历史记录中有长达 4 小时的 “空白”,而且所有 Prysm 节点的时钟之间都存在细微偏差),因此这些节点都在猜测 “缺失” 数据,创建了很多短的分叉链,造成网络拥堵。
-目前,在 Medalla 测试网的所有节点中,Prysm 节点占比高达 82%