InfoQ以太坊都这么堵了,Eth 2.0 在干嘛呢?( 四 )


今天的以太坊主网上 , 大家可以看到 besu、ethereumJS、geth、nethermind、nimbus、open-ethereum、trinity 乃至 turbo-geth 等等 。 而在 eth2 当中 , 又有 cortex、lighthouse、lodestar、nimbus、prysm、teku 以及 trinity 。
多客户端范式具有以下几项重要优势:
多种客户端的存在 , 意味着社区可以对思路、算法以及架构做出更广泛的探索(每种客户端都有着自己的方法与观点) 。
不同客户端通常有着不同的设计目标 。 随着时间推移 , 用户与应用程序的多样化程度也将同步提升 。
目前以太坊主网上有着多种生产级客户端 , 大规模攻击虽然能够击倒任何单一客户端(例如 DoS 攻击) , 但却无法彻底淹没所有客户端 。
每种客户端都是通向编程语言社区的门户 。 使用特定语言的客户端热情邀请该语言的用户们前来 , 尝试进行实验与创新 。
但客户端过多 , 同样会带来以下负面影响:
规范与测试必须严格而慎密 , 避免主网发生意外分叉 。 如果该协议只有一种实现方式 , 则该实现将成为新协议 。 在单客户端的情况下 , 一旦网络上出现任何形式的共识“错误” , 那么错误将成为协议中的现实 。 虽然这可能损害了以太坊的纯粹性 , 但也消除了意外分叉的风险 。 为了解决这个难题 , 团队将在主网上保持着健康的客户端分布(例如 , 单一客户端的节点 / 验证器总量绝对不会超过总数的 1/3);这样即使单一客户端出现共识问题 , 网络仍可保持正常运行 。
与单一客户端相比 , 协调 N 个客户端必然带来开销的线性增长 , 甚至在某些情况下引发开销的平方增长(N^2) 。 团队采用一系列技术来减少这种开销——包括共识测试套件(网络测试套件也即将推出) , 但这种开销只能削减、永远不会彻底消失 。
参考阅读:
https://blog.ethereum.org/2020/06/02/the-state-of-eth2-june-2020/
点个在看少个 bug


推荐阅读