本文档详细阐述了如何从L1数据中推导出L2链,这是rollup节点的核心任务之一。内容涵盖批量提交的各个方面,包括排序、批处理、线格式、架构、L1遍历、有效载荷属性推导,以及引擎队列的使用。同时还描述了在L1链重组情况下如何重置管道,以确保L2链的连续性和正确性。
本文档定义了争议游戏(Dispute Game)的接口,争议游戏用于在乐观rollup中,当对layer2状态的声明产生争议时,由多方参与进行仲裁。文档详细描述了DisputeGameFactory和DisputeGame两个核心接口,以及相关的类型定义,为不同证明系统(如欺诈证明、有效性证明、认证证明)的实现提供了灵活性。
DisputeGameFactory
DisputeGame
本文介绍了Optimism Rollup 的 SystemConfig 合约,该合约用于在L1上发出rollup配置更改的日志事件,这些更改会被L2的区块衍生过程获取并应用。文章详细说明了SystemConfig合约中包含的参数,如batcherHash、overhead、scalar、gasLimit以及unsafeBlockSigner,以及如何读写这些配置。
本文档描述了Optimism Rollup中L2输出根提案的规范。为了实现L2到L1消息传递的信任执行,需要将L2的状态同步到结算层L1。Proposer构建并提交L2状态的承诺(输出根)到L1上的L2OutputOracle合约。本文档详细介绍了L2输出承诺的构造方式,L2OutputOracle合约的接口,以及在面对L1重组时的安全考虑。
本文档详细描述了Cannon故障证明虚拟机(FPVM)的规范,该虚拟机模拟了一个运行在big-endian 32位MIPS32架构上的最小Linux系统,重点介绍了FPVM的状态(包括内存、寄存器等)、内存管理(包括堆)、延迟槽、系统调用、I/O操作(包括标准流、提示通信和预图像通信)以及异常处理,为理解和实现FPVM提供技术指导。
本文档概述了L1执行引擎对L2的修改、配置和使用,包括处理存款交易、手续费的收取方式(优先级费用、基础费用和 L1 成本费用),还介绍了Engine API 的使用,例如 forkchoiceUpdatedV1、newPayloadV1、getPayloadV1,以及L2执行引擎的网络和同步方式。
本文档介绍了L2输出根提案规范,这是Optimism Rollup中将L2状态同步到L1(结算层)的关键环节。Proposer的角色是构建并提交输出根到L1上的L2OutputOracle合约,以此作为桥梁的L2 状态视图,并可接受fault proof挑战。其中详细说明了L2输出承诺的构建方式和L2OutputOracle智能合约的接口定义与配置,以及安全方面的考虑,例如 L1 重组。
本文档是 Rollup 节点规范,Rollup 节点负责从 L1 区块(及其关联的收据)中导出 L2 链。文档详细介绍了 Rollup 节点中驱动程序的设计、功能,包括从L1链选择输入,生成payload attributes,并传递给执行引擎以计算L2区块,还包括L2输出RPC方法,以及协议版本追踪。
本文档是关于rollup node的规范,重点介绍了rollup driver的职责,即从L1链派生L2链的过程,包括从L1选择输入、生成payload attributes以及将payload attributes传递给执行引擎等步骤。同时,还介绍了Rollup节点提供的RPC方法optimism_outputAtBlock,该方法用于获取L2输出根。
本文介绍了Fault Dispute Game (FDG) 的机制,这是一种通过迭代二分执行轨迹来验证根声明有效性的争议解决游戏。参与者通过提出声明来缩小执行轨迹,直至争议点为单个状态转换。游戏依靠虚拟机(VM)来验证声明的有效性,并最终通过对声明的争议情况来确定胜者。文章还涉及了参与者、移动类型、游戏时钟和最终的解决方案等关键概念。