📌 项目地址:inkonchain/node | ⭐ 36,592 颗星 | 🔧 Shell | 📜 MIT
这个项目(inkonchain/node)是一个帮你用Docker Compose跑Ink节点的方案,从simple-optimism-node fork过来做了定制。它目前用的是op-geth执行客户端。但如果你打算用它跑主网节点,有一个事情必须提前知道:op-geth的支持到2026年5月31日结束。L1 Glamsterdam硬分叉之后,继续跑op-geth的节点会跟不上共识链,直接掉队。
这个项目本身的README已经把风险写得很清楚,而且诚恳地承认仓库自己还没准备好迁移。我读完的感觉是:它像一个快被废弃的脚手架,但你仍可以用它快速搭建测试环境或短期节点。生产节点的话,得自己额外干活。
先说结论:什么时候可以用它?
- 测试网(Sepolia):目前完全可用,因为测试网不会那么快受影响,而且你可以用它的Docker Compose一键启动,省事。等op-reth支持出来后,直接切换就行。
- 主网生产节点:不建议直接用它默认的op-geth启动。除非你准备好自己跑一个op-reth并行节点,并在硬分叉前完成切换。官方建议“在硬分叉窗口前并行运行新旧客户端验证,再准备新快照”,这句话翻译成人话就是:你得自己搭两套节点,把数据对一下,没问题再把旧节点停掉。
项目目前没准备好的5件事
READEME里列了5项改造还没做,意味着如果你硬要自己迁移到op-reth,得自己搞定这些:
- docker-compose.yml里没有op-reth服务。你得自己写一个合法、已验证的op-reth service、image、entrypoint进去。
- op-node的引擎端点还是
http://op-geth:8551。你改成op-reth后得改成http://op-reth:8551(或类似端口)。 - 快照格式不兼容。Sepolia的Gelato索引已经暴露了reth的全量数据目录(
reth/full/datadir),但主网索引只提供geth归档。所以你要自己找op-reth快照,或者自己同步(耗时)。 - 健康检查和监控目前还是对着op-geth和InfluxDB的
opgeth数据库。换了op-reth后这些指标会失效,你得重写Healthcheck和Grafana面板。 - 环境变量和端口命名全是
PORT__OP_GETH_*和envs/*/op-geth.env。得全部改名,不然新客户端读到错误配置。
这些不是小修小改,是结构性的。如果你现在就想用op-reth,不如直接抄官方Optimism node的文档自己从头配,别折磨这个仓库。
硬件要求(别被忽悠)
- 主网:16GB+ RAM,2TB SSD(NVMe推荐),100Mbps+下载。
- 测试网:16GB+ RAM,500GB SSD,100Mbps+。
注意那个存储说的是“2 TB”不是“2TB以上”,但现实情况是Ink链大概需要1.5TB左右(取决于存档策略),加上操作系统和其他程序,2TB是安全边界。如果你选低端SSD(比如QLC),持续写入会降速,最好用TLC或NVMe。另外,100Mbps带宽每天能同步约100GB,如果L1同步出问题,等你要补全的时候会嫌慢。
环境准备
你需要:
- Docker Engine + Docker Compose v2(Linux上)或Docker Desktop(macOS/Windows)
- 一个能用的L1执行RPC(比如Infura、Alchemy、自有节点)和L1 Beacon API(比如Lighthouse/Nimbus的beacon节点)
注意:这两个端点必须连到同一个网络(都是主网或者都是Sepolia),不能混用。 - 足够的磁盘空间,我强调一下:同步花几小时到几天,中途磁盘满了会崩溃。
Apple Silicon用户注意:healthcheck容器跑的是linux/amd64,Docker Desktop会自动翻译,但第一次启动时下载和解压会慢一些,正常现象。
Ubuntu安装Docker(按README里的来)
如果你的Ubuntu还没装Docker,按下面的步骤(不是你想的apt install docker.io,那样装的版本老且没有Compose插件):
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install -y curl gnupg ca-certificates lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
安装完后,运行docker compose version确认Compose可用。如果你不是root,执行sudo usermod -aG docker $USER后必须注销重新登录,否则docker命令还是需要sudo。
接下来做什么?
如果你只是测试,用这个仓库启动一个测试网节点,体验Ink链的运行方式,完全OK。如果你要跑主网,我建议你现在就去了解op-reth的配置(官方文档有详细指南),然后做两件事:
- 用这个仓库的
op-geth版本启动一个只用来同步快照的临时节点,导出数据。 - 同时跑一个op-reth节点独立同步,等两者高度一致后,把op-geth停掉,切换op-reth。
等这个仓库更新了op-reth支持,你可以再回来检查docker-compose.yml是否兼容你的迁移方案。