摘要:

Medalla 顺利推进客户端多样化势在必行Eth 1 + ETH 2(Phase 1.5)的端到端 DemoPhase 0 上线临近,测试和审计工作持续进行(经历过一些波折后)Medalla 表现良好

越是风平浪静的测试网越令人担忧。

如果过去几周来,你有在关注 Medalla 测试网的话,一定知道 8 月 15 日(北京时间)发生了一场持续 5 天的全网络故障。事后,Prysm 发布了一篇文章,详细阐述了技术细节和时间线;Ben 也在最近发布的博客文章([1]、[2])中进行了更深层次的分析。故障发生后的那个周末,客户端团队加班加点部署了同步和修补程序,帮助支离破碎的网络恢复原状。

虽然这次故障给测试网带来了巨大的压力,但是这对所有客户端来说,都是一次应对极端情况的历练。说句真心话,经过这次事件后,客户端软件的健壮性强多了。我晚上睡觉都安心一点了。

事后,Medalla 测试网一直都很顺利:现在已经有 3.9 万名活跃的验证者,还有 1.2 万名准验证者在排队(要等待 12 天)!

客户端多样化势在必行

虽然现在有许多(卓越的、可行的、健壮的、实用的……)Eth2 客户端在积极开发中,但是目前整个网络中还是 Prysm 一家独大。

这是有历史原因的:一年多来,Prysm 始终将早期测试网、社区参与和可用性放在第一位。向 Prysmatic 团队致敬。同时,社区建设可谓困难重重,但是对我们行业来说至关重要。

尽管如此,由于 Medalla 测试网上绝大部分验证者节点都使用 Prysm 客户端,这次故障带来了成倍的破坏。随着主网上线临近,作为社区的一份子,我们必须寻求解决方案。作为一个已经在 Medalla 上尝试过所有 ETH 2 客户端的人,我可以以我的亲身体验告诉你,大多数客户端的功能都很强大,而且有详细的文档说明。所有客户端团队都活跃在 discord 和 github 上,积极帮助用户解决任何问题。

多客户端更能保护验证者

客户端多样性不仅能让 Eth2 共识变得更强健,还能在极端情况下保护验证者:鉴于 Eth2 的反相关激励机制,同一时间犯错的验证者越多,每个验证者受到的惩罚就越重。

假设 A 客户端出现故障,全网 60% 的验证者节点掉线了好几天,但是运行 B 客户端和 C 客户端的验证者节点稳定在线。虽然运行 B 和 C 客户端的验证者会继续出块,但是由于离线节点超过全网 33% ,网络将无法敲定区块。如果你运行的是 A 客户端,只要网络一直无法敲定区块,每过一个 epoch(时段),你所受到的惩罚就会增加,这就是所谓的“inactivity leak(怠工惩罚)”。然而,如果你运行的是 B 或 C 客户端,由于你一直处于现在状态,就能免于受罚。(注:怠工惩罚比普通的离线惩罚高得多。)

假设小众的 B 客户端(全网占比 20%)出现严重错误,导致客户端崩溃。在这种情况下,网络依然能敲定区块(因为全网参与率有 80% )。在这种情况下,离线验证者只会受到普通的离线惩罚,而非怠工惩罚。因此,相比第一种情况,那些运行 B 客户端的验证者的损失要小得多。

正在让切换客户端变得更容易

除了社区成员在尝试新客户端之外,客户端团队也在努力让客户端切换变得安全简单。新增了一些跨客户端标准后,不久的将来,你就能从一个客户端快速切换到另一个客户端上,也没有任何意外罚没的风险。

跨客户端标准可以防止客户端中心化,对 Eth 2 网络的健壮性至关重要。如果某个客户端出现故障,客户端切换能让社区更加快速地解决问题,以防 Medalla 事故重现。

Eth 1 + ETH 2 的端到端 Demo

Eth2 的主要目标之一是实现 Phase 1.5(即,“合并”)。届时,现有的 Eth 1 的共识将整合到 Eth 2 中。也就是说,以太坊会从 PoW 共识机制完全过渡到 PoS 共识机制。

从设计上来说,现有用户和客户端会尽可能无缝过渡至 Phase 1.5 。状态、交易和执行依然由 ETh1 客户端来承担。由于用户层基本保持不变,以太坊能够利用现有工具和 API 来支持交易和 dApp,就像现在这样。

为此,TXRX 团队的 Mikhail 和 geth 团队的 Guillaume 最近发布了多分片信标链的端到端 Demo(Eth1 区块链会变成其中一个分片)。在已发布的 Demo 演示视频中,Mikhail 使用未修改的 metamask 钱包向 Eth1 分片发送了一些交易。

点击此处,即可体验 Eth1 + Eth2 Demo 的 dockerized 版本。如果你想更深入了解,可以从源代码开始构建并运行。

继续进行测试和审计,朝 Phase 0 主网迈进

测试和审计照常进行。

客户端团队正在努力开发,审计人员也在对代码进行全面审计。大家都在为主网上线紧锣密鼓地筹备中?。

原文链接: 

https://blog.ethereum.org/2020/09/01/eth2-quick-update-no-15/

作者: Danny Ryan翻译: 闵敏