汇总节点规范

Rollup 节点是负责从 L1 区块(及其关联的收据)派生 L2 链的组件。

Rollup 节点中派生 L2 链的部分称为rollup 驱动程序。本文档目前仅涉及 rollup 驱动程序的规范。

目录

司机

Rollup 节点中的driver的任务 是管理派生过程:

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

推导

此过程分三个步骤进行:

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

虽然这个过程在概念上是从 L1 链到 L2 链的纯函数,但实际上是增量的。每当新的 L1 块添加到 L1 链时,L2 链就会扩展。类似地,每当 L1 链重新组织时,L2 链也会重新组织

有关 L2 块推导的完整规范,请参阅L2 块推导文档

L2输出RPC方法

Rollup 节点有自己的 RPC 方法,optimism_outputAtBlock该方法返回与L2 输出 root对应的 32 字节哈希。

输出方法API

这里的输入和返回类型是由引擎 API 规范定义的)。

  • 方法:optimism_outputAtBlock
  • 参数:
    1. blockNumber: QUANTITY, 64 位 - L2 整数块号 OR - 、、 或String之一。"safe"``"latest"``"pending"
  • 返回:
    1. version: DATA, 32 字节 - 输出根版本号,从 0 开始。
    2. l2OutputRoot: DATA, 32 字节 - 输出根。