在过去的两周里,许多以太坊核心开发者前往多伦多参与以太坊的扩张(scaling)每周一次的电话会议被迫取消。本周五晚上,以太坊核心开发商将继续召开电话会议,重点关注伊斯坦布尔(Istanbul)硬分叉,并决定最终入选的提案(EIP)。
在设计层面,伊斯坦布尔(Istanbul)以太坊将走向 Serenity(安静)阶段最后的分叉(不会产生新代币)。同时,这个分叉提案涉及到很多问题(Progpow、状态租赁、chainID等等)。如果这个分叉中没有解决一些问题,将对以太坊的后续生态发展产生重大影响。此外,以太坊2.0研究员Justin Drake以太坊2.0阶段0将于2020年1月3日发布。
推迟ProgPoW,聚焦「状态租赁」
上个月17号,伊斯坦布尔硬分叉提案(EIP)征集结束时,共收集了29个提案。这些提案是:
EIP-615:EVM子程序和静态跳转
EIP-663:无限制的SWAP和DUP指令
EIP-1057:ProgPoW,程序化工作证明
EIP-1108:降低alt_bn128预编译gas成本
EIP-1109:PRECOMPILEDCALL操作码(删除预编译合同 费用)
EIP-1283:没有dirty maps,测量SSTORE的净gas成本
EIP-1344:添加ChainID操作码
EIP-1352:为预编译/系统合同指定有限的地址范围
EIP-1380:减少自我呼叫gas成本
EIP-1559:改变ETH 1.0链gas费用
EIP-1965:检查chainID具体块号是否有效
EIP-1702:广义账户版控制方案
EIP-1706:当gas成本低的时候,禁用SSTORE
EIP-1803:重命名操作码
EIP-1829: Elliptic Curve Linear Combinations)的预编译
EIP-1884:依赖于重新定义trie-size的操作码
EIP-1930:Gas如果呼叫标准不够严格,就不够严格gas可恢复调用。
EIP-1985:某些EVM合理极限的参数
EIP-1959:检查新的操作码chainID是否是chainID历史的一部分
EIP-1962:EC与运行时定义的算术和配对(取代EIP-1829)
EIP-2014:扩展状态Oracle
EIP-2026:状态租赁H – 固定账户预付款
EIP-2027:状态租赁C – 核算净合同规模
EIP-2028:降低Calldata Gas成本
EIP-2029:状态租赁A – 状态柜台合同
EIP-2031:状态租赁B–净交易柜台
EIP-2035:无状态客户端 – 重新定价SLOAD和SSTORE支付块证明
EIP-2045:EVM操作代码颗粒gas成本
EIP-2046:减少对预编译程序的静态调用gas成本
以前的核心开发者电话会议,临时批准的提案是EIP 1108——对以太坊网络提出建议Gas成本略有变化。然而,开发人员强调,尽管该提案已获得批准,但基准数据需要在随后的核心开发人员会议上提交。
此外,备受关注的提案EIP-1057可能被推迟。EIP 1057提出了改进PoW算法,称为“渐进式PoW”或ProgPoW,旨在更好地利用GPU特定的计算功能。
此前,开发人员通过开源赏金平台Gitcoin进行众筹募集了5万DAI(约5万美元)ProgPoW代码审计资金。但由于该代码尚未找到第三方进行审计,因此在5月24日的开发者会议上被推迟。
还有被推迟的EIP-1559,该提案旨在改变以太坊的交易费模式,但由于过于复杂,被开发者“抛弃”。
在这些提案中,「状态租赁」特别耀眼。
「状态租赁」设计的初衷是,目前,以太坊的状态非常大。如果它继续以目前的速度增长,以太坊网络将变得非常臃肿。我们低估了存储的长期成本,可以近似地建模为字节*因此,有必要改变以太坊目前的状态设计。
根据以太坊2.0根据路线图,状态租赁也将在ETH 2.0(目前的计划是在阶段2)部署。ETH1.0重新耗时费力地开发,相信也会成为本周五电话会议的讨论热点。
删减提案
上述提案也在社区中引起了广泛的讨论,许多开发者质疑一些提案重复,应该删除。
开发者Alex Beregszaszi 表示:“我很困惑。我认为那些提出冲突、相邻和重复的人EIP(有3到4个EIPs都是关于chainid、重新定价、SWAP和DUP)建议应在再次提出之前达成一些共识。如果他们没有明确规定,那么争论EIP毫无意义。”
直到目前,提案审计过程只进行了短期投机技能的最新消息。核心开发者能否在周五给出最终答案仍悬而未决。
Alex认为有些提案不需要硬分叉,可以联系以太坊客户端开发人员解决。“那些(EIP)作者不应该只是试图自己解决它,而是要联系一些相关的开发人员,比如客户端开发人员来审查他们的想法。如果每个人都等着核心开发者召开电话会议讨论实施,我们将没有足够的时间讨论所有这些提案。”
对于上面的EIP,为了减少核心开发者的工作量,提高效率,开发者社区(点击进入)也在讨论中减少。
硬分叉时间表
除了关注提案,伊斯坦布尔硬分叉的时间安排也值得关注。
前硬分叉协调员 Afri Schoedon(已离开)制定的时间表分解为硬分叉过程“固定的9个月周期”。伊斯坦布尔硬分叉时间表如下:
2019-05-17(星期五):接受“伊斯坦布尔”提案截止日期
2019-07-19(星期五):主要客户端实现的截止日期
2019-08-14(星期三):测试网((Ropsten、Gorli或特设testnet))升级时间
2019-10-16(星期三):主网升级时间(“伊斯坦布尔”)
第一阶段提案收集已经完成,接下来要做的就是“实现主要客户端”。所谓的“实现主要客户端”,即将接受的EPI并入以太坊现有客户端,这一步类似于将代码组合在一起,以便对其进行全面测试。
然而,根据以太坊一贯的调性,这次硬分叉“按时”完成的可能性不高。代码出现在之前的君士坦丁堡分叉中。BUG,导致分叉延迟。
以太坊公益事业的受助人Alexey Akhunov在Gitter聊天室说,每个人都应该考虑“截止日期”,截止日期不应该结束,一切都要做好。
“这个截止日期的目的是什么?”Akhunov说,“因为这是我们第一次()引入这么多东西,我们来这里是为了确保我们所做的是有原因的,而不是因为‘有人这么说’。”