本文档提供了有关如何为不同环境和场景配置 Base 节点的详细信息。它涵盖了网络选择、关键配置参数以及主网和测试网部署的自定义选项。有关特定网络的具体设置,请参阅主网配置和Sepolia 测试网配置。
来源: README.md55-64
Base 节点配置主要通过网络特定环境变量文件中定义的环境变量进行管理。这些变量控制节点运行的各个方面,包括网络连接、执行客户端行为和共识设置。
图示:配置系统概述
来源: README.md58-64 .env.mainnet1-55 .env.sepolia1-51
配置 Base 节点的第一步是选择合适的网络。这是通过设置 NETWORK_ENV 环境变量来指向相应的配置文件来实现的。
此环境变量决定了在使用 Docker Compose 启动节点时将使用哪个网络特定的配置文件。
来源: README.md58-64
Base 节点支持多种执行客户端。您可以使用 CLIENT 环境变量指定您首选的客户端。
支持的客户端有:
gethrethnethermind每个客户端都有其独特的优势和特性,但都提供了运行 Base 节点所需的功能。
图示:执行客户端选择
来源: README.md71-78
环境变量文件中的某些参数是节点正常运行所必需的。
| 参数 | 目的 | 示例 |
|---|---|---|
OP_NODE_L1_ETH_RPC | 以太坊 L1 全节点(非 Base)的 URL | https://1rpc.io/eth |
OP_NODE_L1_BEACON | 以太坊 L1 共识层信标端点的 URL | https://your.mainnet.beacon.node/endpoint-here |
OP_NODE_L2_ENGINE_AUTH_RAW | 引擎 API 的认证密钥 | 688f5d737bad920bdfb2fc2f488d6b6209eebda1dae949a8de91398d932c517a |
OP_NODE_NETWORK | 网络标识符 | base-mainnet 或 base-sepolia |
在 Base 能够完全同步之前,L1 节点必须先完成同步。节点还需要访问 L1 共识层(CL)信标端点。
来源: README.md57 .env.mainnet12-16 .env.mainnet21-26 .env.sepolia12-16 .env.sepolia21-26
配置系统分层构建,环境变量由 Docker Compose 加载并传递给相应的组件。
图示:配置参数关系
来源: .env.mainnet1-55 .env.sepolia1-51
Base 节点暴露了多个用于与节点交互的端点。
| 端点 | 默认配置 | 目的 |
|---|---|---|
| 执行客户端 RPC | 端口 8545 | 用于与执行客户端交互的 JSON-RPC API |
| 执行客户端 WebSocket | 端口 8546 | 执行客户端的 WebSocket 端点 |
| op-node RPC | 端口 7545 | Rollup 节点的 JSON-RPC API |
| 评估指标 | 端口 7300 | Prometheus 指标端点 |
| P2P | 端口 9222 | 点对点通信 |
这些端口可以通过环境变量进行配置。
来源: .env.mainnet29-35 .env.sepolia29-35
Base 节点支持不同的同步方法:
要启用 Snap Sync,请取消注释并设置以下环境变量:
OP_NODE_SYNCMODE=execution-layer
OP_GETH_BOOTNODES=<bootnodes>
OP_NETHERMIND_BOOTNODES=<bootnodes>
OP_GETH_SYNCMODE=snap
请注意,Snap Sync 是实验性的,可能会导致同步问题或难以查找对等节点。
来源: .env.mainnet48-55 .env.sepolia44-50
为了在使用受信任的 L1 节点时加快同步速度,您可以启用 OP_NODE_L1_TRUST_RPC 选项。这在处理不支持存储证明的 Erigon 等 L1 客户端时特别有用。
OP_NODE_L1_TRUST_RPC=true
只有当您完全信任您的 L1 节点提供商时,才启用此选项。
来源: README.md87 .env.mainnet43-46 .env.sepolia39-42
为了在网络统计仪表板中监控节点性能,您可以配置统计端点。
OP_GETH_ETH_STATS=nodename:secret@host:port
OP_NETHERMIND_ETHSTATS_ENABLED=true
OP_NETHERMIND_ETHSTATS_NODE_NAME=NethermindNode
OP_NETHERMIND_ETHSTATS_ENDPOINT=ethstats_endpoint
这些设置是可选的,只有在您想参与网络统计仪表板时才需要。
来源: .env.mainnet6-10 .env.sepolia6-10
默认情况下,节点的数据目录存储在 ${PROJECT_ROOT}/geth-data。您可以通过修改 .env 文件中的 GETH_HOST_DATA_DIR 变量来自定义此位置。
加载快照时,将其提取到 GETH_HOST_DATA_DIR 指定的目录中。
来源: README.md89-95
如果您倾向于在单个容器中运行节点而不是使用 Docker Compose,则可以使用 supervisord 入口点。这对于 Kubernetes 部署尤其有用。使用此方法时,您需要覆盖一些默认配置值。
具体来说,您需要调整:
OP_NODE_L2_ENGINE_RPC 以使用 localhost 而不是单独的容器。OP_NODE_RPC_PORT 以避免端口冲突。来源: README.md97-106
下表总结了网络特定环境变量文件中提供的关键配置参数。
| 参数 | 描述 | 默认值 |
|---|---|---|
OP_NODE_L1_ETH_RPC | L1 以太坊节点 RPC URL | 网络依赖 |
OP_NODE_L1_BEACON | L1 共识层信标端点 | 必须提供 |
OP_NODE_L2_ENGINE_AUTH_RAW | JWT 认证密钥 | 预定义值 |
OP_NODE_L2_ENGINE_RPC | 引擎 API 端口 | ws://execution:8551 |
OP_NODE_LOG_LEVEL | 日志详细程度 | info |
OP_NODE_METRICS_ENABLED | 启用 Prometheus 指标 | true |
OP_NODE_P2P_LISTEN_TCP_PORT | P2P TCP 端口 | 9222 |
OP_NODE_RPC_PORT | RPC 端口 | 8545 |
| 参数 | 主网值 | Sepolia 值 |
|---|---|---|
OP_NODE_NETWORK | base-mainnet | base-sepolia |
OP_SEQUENCER_HTTP | https://mainnet-sequencer.base.org | https://sepolia-sequencer.base.org |
RETH_CHAIN | base | base-sepolia |
OP_NODE_P2P_BOOTNODES | 多个主网引导节点 | 多个 Sepolia 引导节点 |