通告 | 以太坊正在为下一次硬分叉做准备 · 以太坊核心开发者第32次例会

hongji   |     |   2394 次阅读

以太坊正在为下一次硬分叉做准备。今天的以太坊核心开发者例会上,除了例行的对测试和客户端的升级,他们还讨论了推迟包含在 Constantinople中的 EIP(以太坊提升提议)。

以太坊核心开发者例会 #32 [01/26/18]

  • 视频
  • 议事日程
  • 重要更新
    • 新的关于 PayGas 的以太坊提升提议将由 Vitalik 撰写,以取代 EIP 86
    • 在下一次核心开发者例会之前,EIP 96 需要更多的合作以获得更规范的以太坊提升提议
    • EIP 145 基本上是最终版了,它将从下一次硬分叉开始运行。
    • EIP 169/170 将在下一次例会进行更充分的讨论
  • 更多升级,由 u/9502 提出
    • 在今后几个星期,Parity 客户端将支持运行 Casper 测试网络
    • Harmony 客户端已经运行了 Casper 支持
    • Casper 测试网络正在调试这些客户端
    • Casper 测试网络获得了“完全的成功”。围绕防火墙有一些运行上的问题
    • 在时间表以及哪些 EIP 将会包括在 Constantinople 上,将会有更多细节在下一次例会中确认
    • 一个分片的最小完全特别版已经在 PyEVM 上运行
    • 部署分片的第二阶段和第四阶段将会在一个月或之后完成

测试

  • Yoichi - 。关于用户体验的问题已经报告上去了。Tim 说 Yoichi 可以跟他要求任何关于用户体验的帮助。
  • Swende - 关于 Hive 测试,一些重构已经完成了。希望能尽快重新启动。
  • Dimity - 在一个测试最优化过程中,他指出一部分测试已经在一次又一次分叉之后重复地测试,这是浪费时间;更好的方法是它应该被移除以最优化测试时间。客户端也许不需要运行每一个变动,因为它只是从测试中移除一些已发送的数据。他计划给所有这些指定特殊部分的分叉创建一个测试,因此当有人要创建一个测试的时候,它将指明这一测试将被运行在哪一次分叉上。

分叉发布管理

关于下一次硬分叉 Constantinople,哪些 EIP 会被考虑包含到其中?

  • EIP 86 (记录摘要 - 分片)( Vitalik ) - 会有一个新的操作码叫做 Pay Gas。它有两个功能: (1)支付 Gas。它有一个内置的功能,以在交易结束后返还任何没有被使用的 Gas 。 (2)如果一笔交易在 PayGas 功能被调用之前被冻结了,该交易将会是无效的。但如果交易执行在 PayGas 操作码已经被调用之后冻结了,那么该交易是有效的。这样做的目的是判定在 PayGas 操作码之前的所有执行是否应该被考虑为基本验证的一部分。所以,它将包括比如 nonce 这样的东西;在一些情况下,它可能包含更多东西。如果在 PayGas 操作码之后出现了任何东西,则都是完整执行(译者注:即合约逻辑的执行,而非交易验证逻辑的执行)的一部分,它所具有的矿工普遍工作的方式是每一个矿工都将有一些 Gas 门槛,也许是 100,000 Gas 或者别的。在任何时候,他们将保留一笔交易;他们将运行交易执行以用尽 Gas 数量。如果 PayGas 操作码已经被调用了,该交易就不会被包括进来;但如果它没有,它将是交易的终结。所以,这基本上是对预验证(pre-verification)和错误交易执行的替代。

另一个讨论是关于使用协议内 nonce 的。在分片讨论的环境里,团队倾向于不使用它;但在另一种环境下,它会有更高的交易费用因为它将使交易在区块链中出现不止一次。所以,在主链上,它也许会起作用,但它可以有一个独立的协议验证机制。

好处:
(a)抽象签名 - 你可以使用任何你想要的签名算法。
(b)重放保护抽象
(c)它让预验证变得更加复杂

可能的用例可以是众筹。比如说,有一个 100,000 人想参与的众筹,但其容量是前 20,000 人之后无人可以再加入。众筹关闭的状态将是所有 100,000 个交易都将发出但后面的 80,000 个会成为没有操作码的,也无需支付 Gas 费用。

结论:关于 PayGas 的新的 EIP 将由 Vitalik 撰写,以取代 EIP 86。

  • EIP 96 - 一开始,在将这一 EIP 包括进 Coinstantinople 上,Vitalik 没有任何明确的意见。他认为,他对于现在的 Casper 来说是较不重要的。然而,Pawel 分享了他的想法:将一些功能从内部的 EVM(以太坊虚拟机)移到外部的合约,比如某些类型的预编译(pre-complied)合约,是更正确的做法。它会让迁移合约变得容易很多。Vitalik 后来同意将它包括进接下来的硬分叉。EWASM 团队有同样的感觉,Axic 添加。

Piper - 我们正在准备在 PyEVM 中应用交易的概念。它正从分片部分迅速转移到主链上。

结论: EIP 96 将需要更多一点合作以获得更正式的以太坊提升提议,直到下一次核心开发者例会。

  • EIP 145(在 EVM 中引入移位操作(Bitwise Shifting)) - Pawel 提醒道:EIP 已经准备好接受同行审议了。它也已经完成了 CPP 上的实现,但他们需要一些方式配置客户端以包含这些性能。所以,它也可以运行在一些假的 Constantinople 分叉上,也可以在独立的配置上运行。这是调试开始前我们列表上唯一的事项。欢迎更多的客户端实现。Solidity 同样支持它,由 Axic 添加。

Karalabe 要求为 EIP 扩大测试案例,已覆盖通用的用例,然后一个实现者便可检查它看起来是否起作用了。

结论:EIP 145 基本上是最终版了,并将进入硬分叉。

  • EIP 169/170(账户清零)- Vitalik 解释,其中一人说如果账户的余额下降到低于交易 Gas 价格的21000分之一,账户会消失。而其他人说,当你创建一个新帐户的时候,初始的 nonce 必须是别的而不是0。

结论:EIP 169/170需要在下一次例会中更充分的讨论。

Hudson - EIP 的时间安排对决定、实行和测试来说是很重要的;它有助于节省多少时间。

客户端升级

  • Geth - Karalabe - Geth 最近的一个问题是,在你同步的哦时候,你使用了快速同步,使用了一些硬盘空间;在之后,它表现得像是一个全节点。从这一点继续往前推,你的节点也像一个 Archive 一样,最终,你的设备就变慢了。他们目前正在进行一个内存中的状态裁剪,因此他们尝试将垃圾只保存在内存里,然后在内存中清理它们,并且只是周期性地、或是在垃圾占据硬盘达到相当数量才清理硬盘,也可能在别的时候。他们已经开始在主网上进行基准测试,这将减少80%的硬盘扩张。

Geth v1.8.0将不会为 GoEthereum 提速,但它将在实际上防止它变慢。有了这一点,用户就不需要频繁地重新同步,只需要 1/5 的时间。他们同样已经为实现完整的垃圾收集做了独立的 pull request(译者注:GitHub 上的一种代码改进行为) 或是概念证明(POC)实验。接下来的工作是190,他希望拥有完整的垃圾收集实现。

团队会等待完整的发布。

  • Parity - Afri - Parity 1.9 发布了。这是迄今最快的客户端。下周的重点是轻节点开发。他们同样将开始实现 Casper 测试网络报告。

  • Harmony - Mkalinin - 我们已经实现了 Casper Ware 节点最纯粹的版本。这一节点可以与其他客户端在混合共识网络中同步。

  • CPP Ethereum - Pawel - 我们已经结合了 EWASM,所以,可以为虚拟机智能合约运行 EWASM 了。

  • Ethereum JS - Casey - Ethereum JS 没有重要的升级,只是保持维护。

  • PyEVM - Piper - 重新命名,并将 PyEthereum 客户端命名为 Trinity。从命令行交互界面的共识实现开始,尽他们所能地快速工作。正在开发分片,其他的融合也在继续。

  • TurboGeth - Alexey - 在它很有希望稳定下来之后,开发着最后的最优版本。同步更快了,而他们正在尝试检验它是否能像一个客户端那样工作。

研究进展

Casper 和 分片 - Vitalik - Casper FFG - Casper FFG 的测试版已经运行几个星期了。它运行得不是太好,因为它一直在重新连接,并且,对另一个节点来说,也没有好到可以完全独立维护。所以最终,在一些防火墙上,它需要主动的维护。他们已经准备好帮助 Casper 测试网上的其它客户端。在这里可以跟踪分片进展的状态。

分片 - 许多工作已经起步。我们准备在 PyEVM 上实现分片。我们正在为 THIG 的一些改变做开发,比如账户通道,写入 PyEVM 的账户抽象。话了很多时间开发一棵新的二进制树。实际上,下一步是获得无状态客户端的逻辑。正在尝试让全节点功能在测试网络上工作。

黄皮书

黄皮书已经被置于自由创造共享文化协议(Creative Commons Free Culture License) CC-BY-SA 之下。它最近由 Nick Savers 加以维护,并获得了来自世界各地的许多人的贡献。

请在 TwitterFacebookGoogle+Steemit 以及 Medium 上关注我们以获得更多有趣的信息。要获取每周新闻,点击这里订阅

PS. 这篇文档在 2018年1月27日 更新。


原文链接: https://etherworld.co/2018/01/26/ethereum-is-getting-ready-for-next-hardfork-ethereum-core-devs-meeting-32-highlights/
作者: Etherworld
翻译: 阿剑


你可能还会喜欢:

记录 | 以太坊团队·2017年第四季度总结
科普 | ERC 和 EIP 代表什么呢?
干货 | 共识算法的比较:Casper vs Tendermint

 
0 人喜欢