过去的这个周末,以太坊 2.0 测试网又出幺蛾子了。 北京时间 8 月 15 日凌晨,Eth2.0 客户端执行团队 Prysmatic Labs(旗下客户端是 Prysm )联合创始人 Preston Vanloon 表示:Eth2.0 测试网 Medalla 上出现时钟 Bug,导致对所有节点造成影响,Prysm 客户端出现了长达近 90 分钟的时钟偏斜(clock skew),验证器也陆续收到超前 Slot (时隙)区块和证明。 简单来说,这次测试网出现的根源,主要在于 Prysm 客户端的时间服务器 Roughtime 中断,出现时钟偏斜,导致验证者与区块头无法同步,最终影响了测试网 Medalla 正常运行。
(1)事故回溯
所谓时钟偏斜,即区块时间与正常时间出现的偏差。 时间对 Eth2.0 至关重要,每一个区块中都包含时间戳;时间一旦不同步,网络就无法正常运行。 为了防止系统时间不够精准,Prysm 采用了美国 Cloudflare 公司的时间服务器 Roughtime 来校正。并且,为了防止单体机器故障,还选择了 6 台。 然而,问题还是发生了。北京时间 8 月 15 日凌晨,Roughtime 出现故障,这也导致 Prysm 被波及。 根据事后的一份诊断报告:“ Cloudflare 的 Roughtime 服务器都返回了错误的信息,Prysm 节点没有从这种情况适当退避。虽然他们使用 6 台时间服务器,但似乎还不够,因为它们都返回了错误的时间。” 最终的结果是,Prysm 客户端上「时钟偏斜」超过 2 秒的时间长达 90 分钟;并且整个客户端时间也比标准时间提前了 4 个小时。根据 Preston Vanloon 的推文,时钟偏斜发生在北京时间的 15 日凌晨 1 点半-3 点种之间。如下所示: (责任编辑:admin) |