菜单

op-node

相关源文件

op-node 是 Base 节点架构中的一个关键组件,它作为 Base 的共识层,Base 是建立在 Optimism OP Stack 上的以太坊 Layer 2 扩容解决方案。本文档将解释 op-node 在 Base 节点系统中的作用、架构和操作。有关与 op-node 配合使用的执行客户端的信息,请参阅 执行客户端

目的与作用

op-node 作为以太坊 Layer 1 (L1) 和 Base Layer 2 (L2) 之间的桥梁。其主要职责包括:

  1. 连接以太坊 L1 并读取数据
  2. 根据 L1 数据派生 L2 链状态
  3. 将派生的 L2 区块提交给执行客户端
  4. 管理与其他 Base 节点的 P2P 通信
  5. 提供 RPC 端点以监控和查询同步状态

来源:README.md5-7 README.md112-122

架构与集成

op-node 在 Base 节点系统中与执行客户端(Geth、Reth 或 Nethermind)并行运行。下图展示了 op-node 如何融入整体 Base 节点架构:

来源:op-node-entrypoint25-46 README.md30-39 README.md55-88

启动过程

当 Base 节点启动时,op-node 会遵循此初始化顺序:

来源:op-node-entrypoint1-46 supervisord.conf6-11

配置参数

op-node 通过 Docker Compose 的环境变量文件(例如 .env.mainnet.env.sepolia)进行配置。关键配置参数包括:

参数描述示例
OP_NODE_L1_ETH_RPC以太坊 L1 节点 RPC 端点的 URLhttps://eth-mainnet.provider.com
OP_NODE_L2_ENGINE_RPC执行客户端 Engine API 的 URLws://execution:8551
OP_NODE_L2_ENGINE_AUTHJWT 认证文件的路径/config/jwt-secret.txt
OP_NODE_P2P_ADVERTISE_IP用于 P2P 通信的公网 IP自动检测
OP_NODE_NETWORK网络标识符(mainnet 或 sepolia)mainnet
OP_NODE_RPC_PORTop-node RPC 服务的端口7545

来源:op-node-entrypoint25-46 README.md55-65 README.md97-106

与 L1 和 L2 的交互

op-node 通过特定的协议和 API 与 L1 和 L2 进行交互。

来源:README.md80-85 README.md112-122

同步流程

op-node 负责同步 Base 链。它根据 L1 的数据派生 L2 区块,并确保执行客户端处理这些区块。

  1. 从以太坊 L1 读取交易数据和存款
  2. 根据 L1 数据和排序器信息构建 L2 区块
  3. 通过 Engine API 将这些区块提交给执行客户端
  4. 与规范的 L2 链保持同步

可以使用 optimism_syncStatus RPC 端点监控同步状态。

来源:README.md112-122

监控与故障排除

要检查您的 op-node 是否正常运行,请:

  1. 使用 optimism_syncStatus RPC 方法验证同步状态
  2. 监控日志以查找错误或警告
  3. 检查与 L1 节点和执行客户端的连接

常见问题包括:

  • L1 节点连接问题
  • 与执行客户端的身份验证失败
  • P2P 网络连接问题

如果 op-node 未正确同步,请验证您的 L1 节点是否已完全同步,因为 op-node 无法超前于 L1 上可用的数据进行进展。

来源:README.md42-47 README.md112-122

技术要求

为达到最佳 op-node 性能,请确保您的系统满足以下要求:

  • 现代多核 CPU
  • 至少 16 GB RAM(推荐 32 GB)
  • 高速 NVMe SSD 存储
  • 稳定可靠的以太坊 L1 节点连接
  • 足够的链数据存储空间

来源:README.md30-39

进程管理

在 Base 节点系统中,op-node 由 supervisord 管理,后者确保进程持续运行并在崩溃时重启。

来源:supervisord.conf6-11

与 Docker Compose 的集成

当使用 Docker Compose 运行 Base 节点时,op-node 容器会与执行客户端容器协同工作。

为了在单个容器中运行这两个服务,supervisord 会同时管理 op-node 和执行客户端进程。

来源:README.md96-106 supervisord.conf1-18