可执行信标链(2)

Vitalik 此前发布的文章《以 rollup 为中心的路线图》中提到,数据分片作为 eth2 执行中的主要扩容因素,融易新媒体,允许在单个执行分片上进行扩容,并简化了总体设计。

Eth1 分片设计基于其通过信标链与数据分片通信。如果阶段 2 的多执行分片功能将在之后推出,那么这个方法就有意义了。有了以 rollup 为中心的路线图,将 Eth1 放在专门的分片上 (即独立于信标链、且频繁与信标链交互) 会给共识层带来不必要的复杂性,并增加在分片上发布数据和在 eth1 中访问数据之间的延迟。

我们提议将 eth1 数据 (交易、状态根等) 嵌入到信标区块中,并且要求信标链区块提议者生成可执行的 eth1 数据,以消除这种复杂性。也就是说将 eth1 执行和有效性作为共识核心的一等公民。

提案概览

Eth1-引擎由系统中的验证者维持。

当验证者打算提议一个信标区块时,他会通过 eth1-引擎创建 eth1 数据。然后 eth1 数据将被嵌入到其提议的信标区块中。

如果 eth1 数据无效,其所在的信标区块也同样无效。

Eth1 引擎的修改

根据前面的介绍,eth1 分片为中心的设计中,eth1-引擎和 eth2-客户端是松散耦合的,并通过 RPC 协议实现通信 (查看文章 eth1+eth2 客户端关系 以了解更多信息)。eth1-引擎不断维护着其交易池和状态下载器,这需要它自己的网络堆栈。它还应该存储 eth1 区块。

当前的提案取消了 eth1 区块的概念,eth1-引擎有两种可能的方式来处理这一变化:

通过合成的方式,从信标链区块的 eth1 数据中创建 eth1 区块

修改引擎:交易处理过程不a需要使用 eth1 区块,而是使用 eth1 数据

信标区块根可用于保存当前状态管理所需要的链的概念

两者相比,后者为比较长期的选项。它允许 eth1 客户端更快地转换为 eth1-引擎,且 eth1 分片概念证明 (PoC) 已经证明了这一点。

我们使用术语“可执行数据” (executable data) 来表示包含 eth1 状态根、交易清单 (包括收据根“receipts root“和 bloom filter)、coinbase、时间戳、区块哈希以及 eth1 状态迁移函数所需要的所有其他数据位。可执行数据在 eth2 规范中表示如下:

class ExecutableData(Container):    coinbase: bytes20  # Eth1 address that collects txs fees    state_root: bytes32    gas_limit: uint64    gas_used: uint64    transactions: [Transaction, MAX_TRANSACTIONS]    receipts_root: bytes32    logs_bloom: ByteList[LOGS_BLOOM_SIZE]

Eth1-引擎的职责清单与此前 eth1 分片的职责类似。主要有:

交易执行。Eth2-客户端向 eth1-引擎发送一笔可执行数据。Eth1-引擎通过处理该数据来更新其内部状态,并且如果通过了共识检查则返回 true ,否则返回false。诸如即时存款处理之类的高级用例也可能要求结果中包含完整的交易收据。

交易池维护。Eth1-引擎使用 ETH 网络协议来广播信息并跟踪网络上的交易。等待被打包的交易 (pending transactions) 保存在交易池中,然后用于创建新的可执行数据。

可执行数据创建。Eth2-客户端发送之前的区块哈希、eth1 状态根、coinbase、时间戳和创建可执行数据的所有其他信息 (交易清单的一部分)。Eth1-引擎返回一个 ExcecutableData 实例。

状态管理

Eth1-引擎维护状态存储以便能够运行 eth1 状态执行函数。

它涉及在最终确定性上触发的状态树修剪机制 (pruning mechanism),该机制要求基于信标区块链的状态树版本控制。

注意:长期无区块敲定会造成大量垃圾数据的堆积,从而消耗额外的磁盘空间。

当无状态执行和”区块创建“完成时,eth1 引擎可以选择作为纯状态迁移函数运行,并在此基础上承担一些责任,如,可以禁用状态存储,从而减少使用磁盘空间的需求。

JSON-RPC 支持。为了可用性和应用性,保留以太坊 JSON-RPC 的支持十分重要。该责任将由 eth2-客户端和 eth1-引擎共同承担,因为 eth1-引擎可能失去了单独处理 JSON-RPC 终端子集的能力,如那些基于区块号和哈希的调用。这种分离将在之后解决。

信标区块处理

可执行数据 ExecutableData 结构代替了信标区块体中的 Eth1Data 。此外,信标链和 eth1 的同步处理允许即时存款。因此,存款可以从信标区块体中移除。

以下是更新了的信标区块体:

 文章标题:可执行信标链(2)

内容摘要:Vitalik 此前发布的文章《以 rollup 为中心的路线图》中提到,数据分片作为 eth2 执行中的主要扩容因素, 融易新媒体 ,允许在单个执行分片上进行扩容,并 ...

免责声明:融易新媒体转载此文目的在于传递更多信息,不代表本网的观点和立场。文章内容仅供参考,不构成投资建议。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。


本文网址:http://mt.ironge.com.cn/html/zt/315bgt/262294.html



备案/许可证编号:津ICP备17005847号

信息网络传播视听节目许可证:0900000

BS17799信息安全管理体系认证:00307I10001R0S ISO9001质量管理体系认证:00307Q10176R1S 违法和不良信息举报:12377 mt.ironge.com.cn All Right Reserve 版权所有