来源 | AllCoreDev Update
在区块12244000,以太坊主网实现柏林网络升级!🎉
尽管分叉区块运行顺利,升级后不久,OpenEthereum 就出现了共识问题。开发者很快发现了问题 (etherscan 崩溃了,也很难不发现这个问题......) 并在 Zoom 上开会对问题进行诊断和找出解决办法。
问题出现了大概1个半小时后,问题根源找到了。简言之,问题是由 BLS-12381 预编译引起的。它在一些柏林测试网里被启动了,但不是主网分叉内容。OpenEthereum 没有禁用这个预编译,而是把它设置在非常遥远的区块上启动。当一笔交易错误地调用了这个预编译地址,OpenEthereum 对该调用的定价就与其他实现不一样。
如果想了解更多细节,Alex Stoke 在推特上对事件进行了详细解释。我们也对 eth1.0 规范的代码库进行了复盘。最后,OpenEthereum 团队正在写一份对这次事件的完整事后反思。OpenEthereum 的用户现在应该使用该客户端的 v.2.3.4 版本。
为了弥补 EIP-2929 的潜在漏洞,柏林升级还加入了 EIP-2930。这份 EIP 允许交易与一个访问列表一并提交,以在某些情况下稍微降低 gas 开销。
因访问列表而获益的使用情况并不总是那么明显。幸运的是,Nomic Labs 的 Franco Victorio 对这些情况进行了整理,写了一篇文章解释访问列表会引起的 gas 开销变化、以及访问列表是如何生成的。如果你的项目可能受 EIP-2929 或 2930 影响,你应该阅读这篇文章。
如在上一篇更新提到的,当主网实现了柏林升级,以太坊主网上由大型区块带来的大部分 DoS 风险都会得到解除。这意味着我们现在可以(慢慢地!)开始提高 gas limit。如 Péter Szilágyi 在推特上所说,EIP-2929 加上 Geth 上的快照使我们得以稍微提高 gas limit。他提议一开始提高到 15M,看看情况如何。
但是!尽管 DoS 风险已经得到缓和,但状态膨胀问题仍然存在。提高 gas limit 意味着提高状态增长速度,以及增加节点同步数据、与网络保持同步的负担。在我们找到长期的解决方案 (例如,无状态)之前,我们仍然需要保持谨慎。特别是 (如 Péter 所说) 在我们还不确定无状态是否真的可行的时候。
主网进行柏林升级后,我们现在专注于伦敦升级的实现与测试阶段。目前有三份 EIP 在该升级的计划中: EIP-1559, 我想不需多做介绍;EIP-3238 是用于把难度炸弹推迟到 2022 年第二季度;EIP-3198 用于添加一个操作码以从区块返回 BASE FEE
。
我们现在有了第一个集成测试网 Aleut,大多数客户端正与它同步1。如果你想加入这个测试网,规范里有配置文档与启动节点。文档资料现在还不完善,你可能需要使用你所喜欢的客户端的开发者分支,但这个问题在未来几周会得到完善。
在规划方面,伦敦升级非常特别,在另一个升级还在部署的时候它就已经开始规划了,这种情况还是第一次。此外,客户端团队已经开始对“合并” (详见下文)进行原型设计了。在过去的 3 到 4 次核心开发者会议里,由于内容过多,问题都没有讨论完,因此我们决定在本周五安排一次常规以外的会议,继续讨论伦敦升级。
简言之,我们需要决定是否增加其他内容到伦敦升级里,什么时候进行升级,以及如何处理那些没能放到伦敦升级里的 EIP,包括呼声越来越高的 EIP-3074。又是一个议程满满的会议!
如上文所述,客户端团队已经开始专注在“合并”上了。首先进行的是 Rayonism 项目,是对俄罗斯艺术运动的致敬——“用射线画出一个分片空间,并将其变成动态时间。”
在下一个月,基于“可执行信标链”提议的原型会被构建出来。完整的规范可以在 ethereum/rayonism 代码库里找到。
Rayonsim 项目是 Scaling Ethereum 黑客松的一部分,是对所有人开放的。如果大家也想做出贡献,可以通过加入discord 频道来参与。如果想看它是如何运行的,这里有一份教程。😄
当然,Rayonsim 项目作为黑客松的一部分意味着里面的内容变得非常快,发出来的文档可能很快过时,构建出来的原型也不适合做成产品。但,在活动结束的时候,我们应该对实现“合并” 的技术要求和如何把构建的原型产品化有一个非常成熟的思路了。
最后,如果你想看看合并后的图景,Barnabé 本周写了一篇非常好的文章!
感谢您的阅读!下一次的更新应该会在几周后,即伦敦升级的规范被最后敲定的时候。
发布于 2021.4.20
1 注:Aleut 不包括 EIP-3238,因为该 EIP 仅需要为难度炸弹修改主网的一些常数。
ECN的翻译工作旨在为中国以太坊社区传递优质资讯和学习资源,文章版权归原作者所有,转载须注明原文出处以及ethereum.cn,若需长期转载,请联系eth@ecn.co进行授权。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!