本文档是 Rollup 节点规范,Rollup 节点负责从 L1 区块(及其关联的收据)中导出 L2 链。文档详细介绍了 Rollup 节点中驱动程序的设计、功能,包括从L1链选择输入,生成payload attributes,并传递给执行引擎以计算L2区块,还包括L2输出RPC方法,以及协议版本追踪。
<!-- 此文件中的所有术语表引用。 -->
Rollup 节点是负责从 L1 区块(及其相关的收据)推导 L2 链的组件。
rollup 节点中推导 L2 链的部分称为 rollup 驱动程序。本文档目前仅关注 rollup 驱动程序的规范。
<!-- START doctoc generated TOC please keep comment here to allow auto update --> <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --> 目录
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
这个过程分三个步骤进行:
虽然从概念上讲,这个过程是从 L1 链到 L2 链的纯函数,但实际上它是增量的。每当将新的 L1 区块添加到 L1 链时,L2 链就会扩展。同样,每当 L1 链重组时,L2 链也会重组。
有关 L2 区块派生的完整规范,请参阅 L2 区块派生文档。
rollup 节点有自己的 RPC 方法 optimism_outputAtBlock
,它返回一个 32 字节的哈希值,对应于 L2 输出根。
此处的输入和返回类型由 engine API specs 定义。
optimism_outputAtBlock
blockNumber
: QUANTITY
,64 位 - L2 整数区块号。version
: DATA
,32 字节 - 输出根版本号,从 0 开始。l2OutputRoot
: DATA
,32 字节 - 输出根。rollup-node 应该通过监视 L1 上的协议版本合约来监视推荐的和要求的协议版本,如 Superchain Version Signaling specifications 中指定的。
这可以通过在Driver循环中轮询来实现。
在轮询协议版本之后,rollup 节点 应该 通过 engine_signalSuperchainV1
调用将其与执行引擎通信。
当推荐版本比 rollup 节点支持的当前版本新时,rollup 节点 应该 警告用户。
如果 rollup 节点不满足要求的协议版本,则 应该 采取安全预防措施。 这可能包括在 rollup 节点运营商同意的情况下停止引擎。
- 原文链接: github.com/ethereum-opti...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!