聊一聊以太坊合并测试暴露出来的一些问题

Defi之道 view 3207 2022-3-28 15:23
share to
Scan QR code with WeChat

信标链

上周我们发生了一个小事故,在大约一个小时的时间里,信标链的参与度下降了8%左右,事件发生后,我们在Discord频道展开了大量讨论,开发者们查看了是谁丢失了区块proposal,很快,我们就发现这次事故是因为Teku引起的。

聊一聊以太坊合并测试暴露出来的一些问题

图:在一个小时左右的时间里,信标链的网络参与度下降了8%

你可以通过我们的事后回顾报告了解整件事的全貌。总结是,在故障发生之前的几个小时内,存款合约中的ETH存款出现了大幅度的飙升。对ETH 1链状态达成一致的机制意味着,每隔7小时左右,存款就会被分批处理至信标链上。而短时间内发生的大约4000笔存款,暴露了Teku客户端在处理存款性能上的一些糟糕表现,并产生了一些令人讨厌的级联效应。

值得庆幸的是,这个问题只是暂时的,这批存款得到处理后,网络参与就恢复了正常。此外,没有实用的方法来重复DoS攻击Teku客户端:因为存入4000笔存款的代价是昂贵的!正如评论中所解释的,我们已经修复了最初的性能问题,并深入研究了底层结构,以使Teku客户端在未来更稳定。修复版客户端代号为22.3.2‌,如果你还没有更新,那请尽快进行更新。

由于Teku客户端的市场份额较小(占比不到33%),因此这次事故的影响是微乎其微的,信标链还是继续前进而没有停下脚步。倘若市场占比最多的客户端都受到影响,那么后果将是一段相当长的非最终确定期。这对每个人都是不利的,尤其是那些运行主流客户端的人,因为他们会因为inactivity leak‌机制(消极惩罚机制)而遭到额外的惩罚。

为了进一步强调客户端多样性的重要性,Dankrad 最近发表了一篇深入探讨这些问题的文章‌。他写道:

“如果你目前正在运行Prysm客户端,则存在非常现实的问题,即你可能会损失所有资金,你应该考虑更换客户端。”

更多关于客户端多样性的信息:

Freddy创建了一个财务模型‌,允许质押者量化与运行多数客户端相关的风险;

rated.network 已经更新了他们的前端‌,以显示每个质押运营商的客户端分布情况;

Vans 上周在 ETH Austin讨论了客户端多样性的问题。我试图找到这次活动的录音,但没能成功,如果你有的话,请告诉我。

Dappnode 正在尽其所能!其现在支持了Prater 测试网上的三个客户端,不久之后将添加Nimbus。这是早就预料到的,进行测试吧,我们很快会在主网上看到它;

其他关于信标链的新闻:我们即将迎来一个重大的技术里程碑。众所周知,目前验证器的激活和退出被限制为每个epoch 4次,即每天900次。一旦网络拥有327680个活动验证器,那么这个限制将上升到每个epoch 5次,每天1125次。这听起来可能没什么大不了的,但实际上它是信标链运营的一个重大变化。我们应该会在下周的某个时候达到这个里程碑。

合并

Kiln 测试网

以太坊基金会在3月14日发布了备受期待的 Kiln 公共合并测试网公告,这是登录页面‌。

Kiln合并活动在3月15日格林威治标准时间下午 3 点之后不久发生了,虽然有点不太理想,但它最终还是取得了成功。合并完成后,统一的链继续运行了,交易也得到了处理。

然而,这个过程也出现了一些问题。在上一次核心开发者电话会议上,我们讨论了它们,总结如下:

Prysm 自身与执行层之间存在一个字节序(endianness)分歧,这导致其无法生成有效区块。由于 Kiln测试网配置了相当均匀的共识客户端,因此影响并不大。但如果客户端分布与今天的信标链情况相似,那么这将是一个重大的问题。这里是Prysm的事件审查‌。

Nethermind客户端的一些节点崩溃了。

Erigon也出现了一些字节序问题。

通过这次测试,我们学到了一些经验教训。涉及的客户端数量倍增,这使得我们比平时更难弄清楚到底发生了什么。而且,我们现在已经习惯了区块链浏览器不可用的情况。

现在的计划是让Kiln测试网继续作为公开测试网使用,并鼓励每个人都试一试。似乎 Tenderly、Lido 和 Uniswap 都已经加入了进来,如果你想确保你的东西在合并后能够完美运行,那么现在是时候在Kiln测试网上进行测试了。

以下是关于Kiln测试网的一些教程资源:

如何在Kiln测试网上运行一个节点‌;

用于Kiln测试网的Lodestar设置‌;

Devnet-6和影子分叉

随着Kiln测试网的上线和运行,测试的工作只会加强。另一个短期的devnet测试网(Devnet-6)将于下周上线。

比Devnet测试网更有趣的是影子分叉(shadow forks)。这是我们获取现有网络的状态并将其镜像到合并的PoS网络的地方。这意味着来自真实网络的tx可以在合并发生时重放到影子网络上。Goerli网络就是影子分叉网络,并且计划每两周重复一次。(由于交易顺序问题,两个网络会逐渐失去同步,所以影子网络需要不时地重新初始化,以达到最大的效果。)

如果devnet-6 和 Goerli网络影子分叉都进展顺利,那么我们打算在两周内做一次以太坊主网的影子分叉。最终会有一个每天更新的影子分叉网络,供客户端放大任何潜在的问题。

之后,开发者们会考虑将现有测试网迁移到 PoS,你可以在wenmerge.com‌这个网站跟踪进展(提醒一下,不要把倒计时看得太重,我们并不是由难度炸弹驱动的,也不会仅仅因为这个而匆忙行事。尽管如此,难度炸弹肯定是决策组合中的一个因素之一。)

Pandas

现在看来,为合并事件实现一个ASCII艺术 banner(谢谢,Greg!)已经被很多人期待了。Prysm和Lighthouse已经实现了,如果有任何ASCII 艺术天才想帮助 Teku,我们有一个尚未解决的问题‌需要帮助。

聊一聊以太坊合并测试暴露出来的一些问题

合并之后的升级

合并后网络升级的两大主题(执行端暂定为Shanghai,共识端暂定为Capella)仍然是验证器余额取款,以及所谓的blob交易。

正如之前提到的,现有有了一个验证器取款规范‌,它是执行更改和共识更改的保护伞。有3个EIP需要在共识方面进行讨论:

PR-2836‌是推动取款的基础,即从信标链提取到执行层。(据我所知,这将要求我们这些拥有旧式 BLS 提款凭证(0x00 前缀)的人在提款之前更新为 0x01 凭证。我还没有看到进行此更新的机制,尽管它存在一个未解决的问题。)

PR-2854‌ 只是一个管理更新,以反映此机制不会触发 EVM 执行。它只会更新 Eth1 账户的余额。

PR-2862‌ 提出了一种机制,用于部分提取超过 32 ETH的余额。(这将以循环方式自动从验证器中刮取多余余额,并以每个epoch 256个验证器的速率将其转移到相关的Eth1帐户,根据当前数字,这相当于每个验证器大约每6天经历一次。关于这个频率的基本原理你可以看这里‌。)

这些更改的执行端对应的是 EIP-4895‌,好消息是,无论是全部提款还是部分提款,从验证器提取到你的Eth1 账户都不会产生 gas 费用。

至于 Blob 交易提案 EIP-4844‌,它甚至已经有了属于自己的网站(可见这个提案的重要性)。该网站列出了Vitalik撰写的Proto-Danksharding常见问题解答‌,是的,proto-danksharding似乎成了这个升级的新名字。

研发和常规开发者电话会议

MEV 仍然是推动以太坊架构未来发展的重要因素。人们对当前的行驶方向存在着重大担忧,我总是很高兴看到有人提出替代方案。Shutterized Beacon Chain‌就是这样的一种替代方案,它描述了一种在以太坊区块中处理加密交易的机制。

第84次实施者电话会议在3月24日顺利举行。

议程‌

视频‌

我的速记内容‌

第134次核心开发者电话会议在3月18日顺利举行。

议程‌

视频‌

来自Tim Beiko的笔记‌;

主题:Kiln测试网上线回顾;JSON RPC标记为“已完成”、“安全”以及“最新”;信标链提款;proto danksharding(EIP-4844);协调执行层和共识层的EIP流程。

btcfans公众号

Scan QR code with WeChat

Link
Disclaimer:

Previous: Filecoin官方发文介绍Filecoin虚拟机 三分钟速览 Next: 2022年创造被动收入:Web 3.0的顶级节点

Related