注:原文作者是 ConsenSys 开发者 Ben Edgington。
本周你绝对应该阅读一下这个,Tim Beiko 带来了 AllCoreDevs 更新 011,这篇文章全面地告诉了我们以太坊在通往合并的道路上还剩下些什么。
那问题来了,什么时候合并?
这是很多人现在唯一感兴趣的问题,而官方的回答是“当它准备好时”,这是事实,但这种回答没有什么帮助。所以,让我们把它拆解开来。
这涉及到两个有些独立的部分,而它们使得预测不那么直接。第一个部分是简单的,即客户端对合并的准备情况,而第二个部分是以太坊的难度炸弹。
什么是以太坊的难度炸弹?
难度炸弹(有时被称为冰川期)是以太坊早期就存在的一种机制,它的功能是在达到一定的区块高度之后,开始以指数方式增加工作量证明(PoW)区块挖矿的难度,这反过来会增加区块之间的间隔时间。目前有一个 Dune 仪表板显示出块生产率如何随着难度炸弹生效而迅速下降,然后我们可通过硬分叉重置它进行恢复。
难度炸弹的想法是双重的,首先它为开发者提供了一个强制功能,拆除或延迟难度炸弹需要通过硬分叉,我们的想法是,如果我们要通过硬分叉做到这一点,那么我们将利用这个机会进行协议升级。特别是在早期,难度炸弹的目的是鼓励迅速转向权益证明(PoS)共识机制。在我看来,它在这方面几乎是失败了,证据是(a)我们仍然没有成功转向 PoS,并且至少已经推迟了 5 次难度炸弹,以及(b)Arrow Glacier 和 Muir Glacier 这两次硬分叉都只推迟了难度炸弹,而没有做任何其他事情,它的主要影响只是使计划变得复杂化。
而难度炸弹的第二个更现实的目的,是阻止矿工在 PoS 激活后继续参与 PoW 挖矿。矿工需要自己拆除难度炸弹,这并不难(只需要一行代码),但难度炸弹的存在有效地迫使矿工们在合并后维护自己的 ETH1 客户端分支。
不管怎么说,重点是,难度炸弹的当前迭代将很快变得引人注目。
计划 A 和计划 B
理想的路径(计划 A),是在难度炸弹成为大问题之前进行合并。而备用选项(计划 B)是进行另一次仅延迟炸弹的硬分叉,以再获得几个月的时间来为合并做好准备。
所以,这是一场比赛,计划 A 是最优的,但这取决于在难度炸弹破坏以太坊之前,所有东西都已完全准备就绪。但我们不知道具体时间,因为时间会受到整体算力的影响,而且我们还不确切知道客户端的合并准备状态。
最重要的是,我们希望在 5 月底之前对这两件事有更清晰的认识。到那时(或在那之后的几周内),我们将不得不决定是去争取它,还是用硬分叉这种 Plan B 推迟难度炸弹。我们不能让决策制定太久,因为如果需要,组织一次拆除难度炸弹的硬分叉也会需要几周的时间。
截至目前,测试合并的进展似乎是顺利的(见下文),最新的分析表明,到 8 月中/下旬,难度炸弹才会成为以太坊的一个严重问题,届时平均出块时间可能会上升到 20 秒。
如果我是一个赌徒,我会下注一些 USDC 赌 8 月份合并,而不会推迟难度炸弹。但这绝不是财务建议,如果你丢了衬衫,也不要向我哭诉。
Tim Beiko 给出了他自己对合并时间线的看法(我认为这与上述讨论的,没有实质性的不同)。
你可以加入 EF 邮件列表以获取更新。
测试合并
请参阅 Tim 的 ACD 更新,以获得对 #TestingTheMerge
的概述。你可以在此处找到每周合并测试电话会议的笔记。
在我们了解开发人员正在做什么来测试合并之前,我想强调一点,如果你在以太坊上运行任何基础设施,你也需要参与到合并到测试中。这是确保我们做这件事时,你的项目不会坏的唯一真正方法。为此,我的同事 Sajida 整理了一份合并测试排行榜,来跟踪哪些人在进行测试。
主网影子分叉
自从我上次撰写合并测试的话题以来,我们已经完成了 3 次主网影子分叉,其中有一次是在阿姆斯特丹进行的。
主网影子分叉是对合并机制以及客户端准备情况的一种出色测试。它们或多或少等同于主网进行合并(尽管目前以太坊基金会和开发团队控制着所有验证器,这使得影子分叉要稍微容易一些)。影子分叉太酷了,我不会详细介绍所有的细节,但总的来说,截至目前,这些测试都取得了巨大的成功。
1、第一次主网影子分叉发生在 4 月 11 日,以下是来自 Pari 的总结:
Marius 宣布这次影子分叉取得了巨大的成功,测试过程中在 Geth 客户端中发现了一个与 gas 限制有关的配置问题,但问题不是很严重,不同的客户端存在着各种各样的问题,但这些问题都被发现,并解决掉了。
2、第二次主网影子分叉发生在 4 月 23 日的 Devconnect 大会期间,以下是来自 Pari 的总结:
这是首次每个客户端都在合并过程中幸存下来,并在之后设法保持同步的影子分叉,我们在这里取得了真正的进展!
3、第三次主网影子分叉发生在 5 月 5 日,这次测试也非常顺利地通过了。
更多的信息,你可以在开发者电话会议记录中找到。
其中包括一些关于合并同步的新测试,这些测试发现了一些问题,但它们绝对是可以修复的。
此外,Goerli 测试网也进行了 4 次影子分叉。
最重要的是,我们计划在 6 月份合并三个现有的以太坊测试网:Ropsten、Sepolia 和 Goerli。
信标链里程碑
截至目前,有超过 10% 的 ETH 被质押在 Eth2 存款合约当中。hildobby.eth 组装了一个很好的存款仪表板,它可以显示质押存款的状态和历史。活跃验证器的数量目前接近了 37 万,并且增长速度比以往任何时候都要更快。
此外,客户端多样性方面,我们也有了一些好消息,Prysm 的市场占有率现在不到 50%,这对于整个信标链来说是一个更健康的状态。在前几个月,Prysm 的市场占有率超过了 68%,这是非常不稳定的情况。似乎写一些警告文章真的有用,但说真的,要对那些不顾一切、投入时间和精力做出改变的个人和机构致以敬意,因为有你们,以太坊才变得更强大、更安全。
当然,这场战斗还没有结束。下一个要改进的是执行客户端的多样性,这甚至要比之前的共识客户端的多样性还要糟糕。
质押
ethereum.org 的质押页面已经完全改版了,非常漂亮。
而 Lido 最近受到了一些审查,Lido 作为一个在质押市场占有率达到 30% 以上的工具,这种做法是完全正确的。这似乎引发了一连串的透明度。Lido 的下一章是我在 3 月初要求的更新的去中心化路线图。除此之外,他们还分享了 Lido 的运营商策略。Superphiz 对这一切都有一些想法。
同样来自 Lido,他们发表了一篇题为《Modeling The Entry Queue Post-Merge》的文章,分析了在验证者激活队列非常长的情况下,合并可能如何影响 Lido 的社会化奖励模型。
至于 Rocket Pool,Bits Be Trippin 在接受 Darren Langley 的采访时,对 Rocket Pool 进行了概述。Rocket Pool 宣布在其最新测试版中支持 Besu 和 Nethermind 作为 Eth1 客户端。耶,客户端多样性!
推荐科普文章
1、开发者一直在做的影子分叉是什么?Yash Kamal Chaturvedi 的文章解释了一些。
2、ConsenSys 已经建立了一个不错的合并知识库,最近有几篇文章是值得你花时间阅读的:
(1)合并的四大支柱;
(2)关于 PoS,Tim Beiko、Matt Nelson 和 Chris Anatalio 的采访摘录视频播放列表,请留意周一对 Justin Drake 的后续采访。
3、这是给 API 书呆子的一篇文章:Teku 团队的 Adrian Sutton 撰写了团队围绕 JSON 类型定义所做的工作。客户端开发的很大一部分工作量就是这样的幕后繁重工作。都是好东西。
4、来自 Adrian 的文章,主题是从公共信标链节点窃取纳入费用,对于那些运行验证器的人来说,这是一个警示故事,他们可能希望在执行客户端合并后依赖第三方服务。是时候启动并运行自己的执行客户端了。
5、这是 Alex Stokes 在 PEEPanEIP 会议上谈论的提款话题,Alex 是一个很棒的解释者。
6、bartek.eth 有一个关于 KZG 承诺的非常好的帖子,我在 Devconnect 上就 KZG 承诺话题做了一个简短的演讲(仅有幻灯片,尚未找到视频)。由于各种原因,多项式似乎将成为未来首选的数据结构,所以现在是掌握所有这些东西的好时机。
7、今天的热门新闻是 Joanne Fuller 关于 以太坊 2 协议的形式验证的文章《Fixing the Array-Out-of-Bound Runtime Error》,我有时觉得我的同事在协议上所做的形式验证工作被低估了,正如 Joanne 解释的那样,FV 是一个非常强大的工具,像这样验证协议是非常令人欣慰的。
8、我终于完成了关于 Eth2 协议中的随机性的章节,结果要比我预期的要有趣得多,但最终花费的时间比我计划的要长得多。概率太难了!不知道我接下来会去挑战什么,也许会是委员会。在我开始向上移动之前,我还想完成一些低 level 的主题