Ξ

    Search by

    以太坊核心开发者会议更新002

    gas limit 提高讨论,柏林升级故障解释


    TB

    Tim Beiko        2021-04-22

    来源 | AllCoreDev Update


    摘要👀

    • Berlin 上线,OpenEthereum 在分叉出现了问题,但快速进行了修复,gas limit 将可能小幅提升
    • 伦敦升级已经有一个 EIP-1559 的开发者测试网了!同时计划多个分叉涉及非常多的工作,因此我们准备开一个额外的 AllCoreDev 会议;
    • 核心开发者开始设计“合并” 的原型——关注 Rayonism☀️

    招聘更新 ⚒️


    柏林升级

    在区块12244000,以太坊主网实现柏林网络升级!🎉

    尽管分叉区块运行顺利,升级后不久,OpenEthereum 就出现了共识问题。开发者很快发现了问题 (etherscan 崩溃了,也很难不发现这个问题......) 并在 Zoom 上开会对问题进行诊断和找出解决办法。

    问题出现了大概1个半小时后,问题根源找到了。简言之,问题是由 BLS-12381 预编译引起的。它在一些柏林测试网里被启动了,但不是主网分叉内容。OpenEthereum 没有禁用这个预编译,而是把它设置在非常遥远的区块上启动。当一笔交易错误地调用了这个预编译地址,OpenEthereum 对该调用的定价就与其他实现不一样。

    如果想了解更多细节,Alex Stoke 在推特上对事件进行了详细解释。我们也对 eth1.0 规范的代码库进行了复盘。最后,OpenEthereum 团队正在写一份对这次事件的完整事后反思。OpenEthereum 的用户现在应该使用该客户端的 v.2.3.4 版本

    EIP-2930 解析 🧠

    为了弥补 EIP-2929 的潜在漏洞,柏林升级还加入了 EIP-2930。这份 EIP 允许交易与一个访问列表一并提交,以在某些情况下稍微降低 gas 开销。

    因访问列表而获益的使用情况并不总是那么明显。幸运的是,Nomic Labs 的 Franco Victorio 对这些情况进行了整理,写了一篇文章解释访问列表会引起的 gas 开销变化、以及访问列表是如何生成的。如果你的项目可能受 EIP-2929 或 2930 影响,你应该阅读这篇文章。

    Gas Limit 提高 📈

    如在上一篇更新提到的,当主网实现了柏林升级,以太坊主网上由大型区块带来的大部分 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 项目☀️

    如上文所述,客户端团队已经开始专注在“合并”上了。首先进行的是 Rayonism 项目,是对俄罗斯艺术运动的致敬——“用射线画出一个分片空间,并将其变成动态时间。”

    在下一个月,基于“可执行信标链”提议的原型会被构建出来。完整的规范可以在 ethereum/rayonism 代码库里找到。

    Rayonsim 项目是 Scaling Ethereum 黑客松的一部分,是对所有人开放的。如果大家也想做出贡献,可以通过加入discord 频道来参与。如果想看它是如何运行的,这里有一份教程。😄

    当然,Rayonsim 项目作为黑客松的一部分意味着里面的内容变得非常快,发出来的文档可能很快过时,构建出来的原型也不适合做成产品。但,在活动结束的时候,我们应该对实现“合并” 的技术要求和如何把构建的原型产品化有一个非常成熟的思路了。

    最后,如果你想看看合并后的图景,Barnabé 本周写了一篇非常好的文章


    感谢您的阅读!下一次的更新应该会在几周后,即伦敦升级的规范被最后敲定的时候。


    发布于 2021.4.20

    [1] 注:Aleut 不包括 EIP-3238,因为该 EIP 仅需要为难度炸弹修改主网的一些常数。



    ECN的翻译工作旨在为中国以太坊社区传递优质资讯和学习资源,文章版权归原作者所有,转载须注明原文出处以及ethereum.cn,若需长期转载,请联系eth@ecn.co进行授权。

    Ethereum Community Network
    以太坊社区网络
    Ethereum Community Network
    以太坊社区网络