Rollup节点规范

本文档是 Rollup 节点规范,Rollup 节点负责从 L1 区块(及其关联的收据)中导出 L2 链。文档详细介绍了 Rollup 节点中驱动程序的设计、功能,包括从L1链选择输入,生成payload attributes,并传递给执行引擎以计算L2区块,还包括L2输出RPC方法,以及协议版本追踪。

Rollup 节点规范

<!-- 此文件中的所有术语表引用。 -->

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 -->

驱动程序

rollup 节点驱动程序的任务是管理推导过程:

  • 跟踪 L1 头区块
  • 跟踪 L2 链同步进度
  • 当新输入可用时,迭代推导步骤

推导

这个过程分三个步骤进行:

  1. 从 L1 链中选择输入,在最后一个 L2 区块之上: 一系列区块,包含交易和相关数据及收据。
  2. 读取 L1 信息、存款和排序批次,以便生成 payload attributes(本质上是没有输出属性的区块)。
  3. 将 payload attributes 传递给执行引擎,以便可以计算 L2 区块(包括输出区块属性)。

虽然从概念上讲,这个过程是从 L1 链到 L2 链的纯函数,但实际上它是增量的。每当将新的 L1 区块添加到 L1 链时,L2 链就会扩展。同样,每当 L1 链重组时,L2 链也会重组。

有关 L2 区块派生的完整规范,请参阅 L2 区块派生文档

L2 输出 RPC 方法

rollup 节点有自己的 RPC 方法 optimism_outputAtBlock,它返回一个 32 字节的哈希值,对应于 L2 输出根

输出方法 API

此处的输入和返回类型由 engine API specs 定义。

  • 方法:optimism_outputAtBlock
  • 参数:
    1. blockNumber: QUANTITY,64 位 - L2 整数区块号。
  • 返回:
    1. version: DATA,32 字节 - 输出根版本号,从 0 开始。
    2. l2OutputRoot: DATA,32 字节 - 输出根。

协议版本跟踪

rollup-node 应该通过监视 L1 上的协议版本合约来监视推荐的和要求的协议版本,如 Superchain Version Signaling specifications 中指定的。

这可以通过在Driver循环中轮询来实现。 在轮询协议版本之后,rollup 节点 应该 通过 engine_signalSuperchainV1 调用将其与执行引擎通信。

当推荐版本比 rollup 节点支持的当前版本新时,rollup 节点 应该 警告用户。

如果 rollup 节点不满足要求的协议版本,则 应该 采取安全预防措施。 这可能包括在 rollup 节点运营商同意的情况下停止引擎。

  • 原文链接: github.com/ethereum-opti...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
ethereum-optimism
ethereum-optimism
江湖只有他的大名,没有他的介绍。