文章目录
- Base Node:自己跑一个以太坊 L2 节点
- 1、 这东西解决什么问题
- 2、 需要什么配置
- 3、 怎么装怎么用
- 4、 几个关键配置项
- 5、 快速同步的技巧
- 6、 遇到问题怎么办
- 7、 适合谁用
Base Node:自己跑一个以太坊 L2 节点
base/node 在 GitHub 上已经拿到 68.5K Star 了。
Base 是 Coinbase 推出的以太坊 L2 网络,基于 Optimism 的 OP Stack 构建。这个仓库提供了一套 Docker 方案,让你用base-reth-node和base-consensus两个客户端跑起一个完整的 Base 节点。
1、 这东西解决什么问题
跑以太坊 L2 节点这件事,以前门槛不低。你需要自己配执行层客户端、共识层客户端,处理 L1 和 L2 之间的通信,还要搞清楚各种参数怎么填。稍微哪个环节出错,节点就同步不上。
Base Node 把这些全打包了。一个 Docker Compose 命令,执行层和共识层一起启动,L1 的 RPC 和 Beacon 端点配好就能跑。主网和测试网都支持,切换就是换个环境变量的事。
对于想参与 Base 网络验证、做 DApp 后端、或者单纯想自己跑节点不依赖第三方 RPC 的开发者来说,这是目前最省事的方案。
2、 需要什么配置
这不是一个轻量级项目。官方给的最低要求是:
- 多核 CPU
- 32GB 内存(推荐 64GB)
- NVMe 固态硬盘
- 存储空间:当前链大小的两倍加快照大小,再留 20% 余量
- Docker 和 Docker Compose
生产环境的配置更高。官方用的是 AWS i7i.12xlarge 实例,所有本地 NVMe 硬盘做 RAID 0,文件系统用 ext4。
说白了,这东西是给有服务器资源的人准备的。想在自己笔记本上跑,基本不现实。
3、 怎么装怎么用
前提是已经有一个以太坊 L1 全节点的 RPC 和 Beacon 端点。没有的话,得先解决这个。
选网络,主网用.env.mainnet,测试网用.env.sepolia。在对应的.env文件里填上 L1 端点:
BASE_NODE_L1_ETH_RPC=<你的L1-RPC地址> BASE_NODE_L1_BEACON=<你的L1-Beacon地址>然后一条命令启动:
# 主网dockercompose up--build# 测试网NETWORK_ENV=.env.sepoliadockercompose up--build就这些。执行层跑的是base-reth-node,共识层跑的是base-consensus,两个容器协同工作,自动开始同步区块。
4、 几个关键配置项
主网和测试网的切换靠两个变量:RETH_CHAIN和BASE_NODE_NETWORK。主网都是base,测试网都是base-sepolia。
Flashblocks 模式是个有意思的特性。设置RETH_FB_WEBSOCKET_URL之后,执行客户端会切换到 Flashblocks 模式,可以用 RPC 查询 pending 状态的区块:
curl-XPOST\--data'{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["pending", false],"id":1}'\http://localhost:8545不设这个变量,就跑标准模式。两种模式根据实际需求选。
还有 Follow 模式和 Pruning 功能,分别通过BASE_NODE_SOURCE_L2_RPC和RETH_PRUNING_ARGS控制。具体参数看.env.mainnet或.env.sepolia文件里的注释就行。
5、 快速同步的技巧
全量同步一个 L2 节点要花不少时间。官方提供了快照恢复的方式,能大幅缩短同步周期。
快照的获取和恢复步骤在 docs.base.org 的节点运维文档里有详细说明。对于需要快速上线节点的场景,这是必选项。
6、 遇到问题怎么办
官方在 Discord 上开了🛠|node-operators频道,节点运维相关的问题可以在那里提问。也可以直接在 GitHub 上提 Issue。
两个渠道响应速度都不错,毕竟 Base 背后是 Coinbase 的团队在维护。
7、 适合谁用
在 Base 上做 DApp 开发、需要自建节点作为后端的团队。
做区块链基础设施运维、想给 Base 网络提供节点服务的工程师。
对以太坊 L2 技术感兴趣、想亲手跑一个节点看看内部运作方式的开发者。
不建议没有服务器资源或不熟悉 Docker 的人尝试。这个项目的定位很明确,就是给有基础设施能力的团队用的。
以太坊 L2 技术感兴趣、想亲手跑一个节点看看内部运作方式的开发者。
不建议没有服务器资源或不熟悉 Docker 的人尝试。这个项目的定位很明确,就是给有基础设施能力的团队用的。