技术编程,区块链|ETH测试网Medalla为什么提倡验证者尝试多个客户端?

【技术编程,区块链|ETH测试网Medalla为什么提倡验证者尝试多个客户端?】随着ETH2.0测试网Medalla上线之后 , 以太坊官方团队就鼓励验证者们对不同的客户端进行体验 。这一举动在测试网创世那一刻起 , 便显得尤为重要 。据了解 , Nimbus 和 Lodestar 节点因无法处理测试网的负载量而卡住 。结果 , Medalla 在上线半个小时内无法敲定区块 。

技术编程,区块链|ETH测试网Medalla为什么提倡验证者尝试多个客户端?
文章图片
文章图片
除此之外 , 在 Raul Jordan 发表的《ETH2 Medalla 测试网事故》中 , Prysm 客户端由于参照的时钟服务器出现了偏差 , 节点的时钟甚至提前了4个小时 , 这些节点一直在为超前的 slot 创建区块和见证消息 。等这些节点的时钟恢复正常后 , 那些禁用了默认罚没保护机制的验证者发现自己遭到了罚没 。
出现偏差造成的节点错误问题高达62% , 网络无法达到至少2/3的最低参与率 。并且 , 因为提前了4个小时 , 历史记录中出现了同等时间的“空白” , 所有 Prysm 节点的时钟之间都存在着细微的偏差 , 导致节点找不到预期的区块链顶端 , 因此这些节点都在猜测 “缺失” 数据 , 创建了很多短的分叉链 , 造成网络拥堵 。

技术编程,区块链|ETH测试网Medalla为什么提倡验证者尝试多个客户端?
文章图片
文章图片
由于网络上成千上万个关于区块链顶端的猜测还在不断增加 , 为了辨别正确的顶端 , 所有客户端都开始不堪重负 。导致节点出现停滞不前、无法同步和内存不足等问题 , 以至于情况进一步恶化 。当然 , 经过这次事件 , 官方也算是对大规模节点故障和网络进行了一场“压力测试” , 同时也解决了时钟的根本问题 , 也算是有好的一面 。
正如前文提到的 , 测试网的顺利运行 , 最低要求是建立在测试网“1/3安全阈值”的基础上 。尽管ETH2.0还在不断增长 , 我们也希望验证者做对整个网络都好的事情 , 为了保证网络的正常运行 , 才有了对应的离线惩罚 。但有超过1/3的验证者离线时 , 离线节点所遭受的惩罚就会加重 , 网络也将无法实现终局性 。因此 , 作为一名验证者 , 当你被迫离线时 , 不会希望更多人跟你有同样原因离线 。

技术编程,区块链|ETH测试网Medalla为什么提倡验证者尝试多个客户端?
文章图片
文章图片
由于ETH 2.0 由多个独立团队实现 , 每个团队都根据 ETH 2.0 研究团队编写的规范开发独立的客户端 。这样可以确保有多个信标链节点和验证者客户端实现 。在构建 ETH 2.0 客户端时 , 每个客户端团队在技术、语言、优化和权衡关系方面会做出不同的决定 。这样一来 , 即使 ETH 2.0 系统的任意一层出现漏洞 , 只会影响运行特定客户端的节点 , 不会波及全网节点 。
因此 , 多尝试不同的客户端 , 我们可以在 Medalla 上让不同客户端的验证者分布合理化 , 以便迎接 ETH 2.0 主网上线 。