Gate Layer RPC 节点部署
本文档描述如何部署 Gate Layer L2 RPC 节点,包括依赖安装、配置文件准备、节点启动与 Blob 参数说明。
本文档提供两种部署方式:
- 二进制方式:直接使用编译好的二进制文件启动(见第 3 章)
- Docker 方式:使用 Docker 容器启动(见第 4 章)
在开始之前
- 仅用于同步/查询(不发送交易)的 RPC 节点:无需申请白名单,按本文档直接部署即可。
- 需要向网络发起交易(包括对外提供可发交易的公共 RPC 服务)的节点:请先提交申请表。审核通过后即可进行交易提交与公共 RPC 配置。
获取二进制与示例配置
可直接从 GitHub 获取 Gate Layer 二进制与示例配置(包含 rollup.json / genesis.json 等):
1. 环境准备
依赖项:golang 1.22+ · make · git · gcc · libc-dev
组件:
gatelayer-geth:L2 执行客户端(op-geth)gatelayer-node:L2 RPC/服务节点(op-node)
设置工作目录:
export GATELAYER_WORKSPACE=/tmp/gatelayer
mkdir -p "$GATELAYER_WORKSPACE"
cd "$GATELAYER_WORKSPACE"
2. 配置文件准备
2.1 下载/准备主节点配置文件
rollup.jsongenesis.json
将上述文件保存到 $GATELAYER_WORKSPACE 根目录。
2.2 生成 JWT 密钥
openssl rand -hex 32 > jwt.txt
2.3 拷贝到对应目录
genesis.json与jwt.txt放到$GATELAYER_WORKSPACE根目录rollup.json与jwt.txt放到$GATELAYER_WORKSPACE根目录
说明:
jwt.txt将被 op-geth 与 op-node 共同使用(Engine API 鉴权),两端需保持完全一致。
3. 启动 L2 节点
3.1 初始化 op-geth(gatelayer-geth)
如 genesis.json 变化需重新执行:
mkdir -p datadir
gatelayer-geth init \
--state.scheme=hash \
--datadir=datadir \
genesis.json
3.2 启动 gatelayer-geth(执行层)
gatelayer-geth \
--datadir ./datadir \
--http \
--http.corsdomain="*" \
--http.vhosts="*" \
--http.addr=0.0.0.0 \
--http.api=web3,eth,txpool,net,engine,miner \
--ws \
--ws.addr=0.0.0.0 \
--ws.port=8546 \
--ws.origins="*" \
--ws.api=eth,txpool,net,engine,miner \
--syncmode=full \
--gcmode=archive \
--nodiscover \
--maxpeers=0 \
--networkid=10088 \
--authrpc.vhosts="*" \
--authrpc.addr=0.0.0.0 \
--authrpc.port=8551 \
--authrpc.jwtsecret=./jwt.txt \
--rollup.sequencerhttp=https://gatelayer-seq-mainnet.gatenode.cc'
3.3 启动 gatelayer-node(共识/协调 + RPC)
gatelayer-node \
--l2=http://localhost:8551 \
--l2.jwt-secret=./jwt.txt \
--sequencer.l1-confs=0 \
--verifier.l1-confs=0 \
--rollup.config=./rollup.json \
--rpc.addr=0.0.0.0 \
--l1=https://evm.nodeinfo.cc \
--l1.trustrpc=true \
--l1.rpckind=basic \
--l1.epoch-poll-interval=10s \
--log.level=debug \
--l1.beacon.ignore=false \
--l1.beacon=https://api.nodeinfo.cc \
--l1.beacon.fetch-all-sidecars=true \
--p2p.sync.onlyreqtostatic=true'
注意:
p2p.static可以替换为种子/发现方式(按实际运维策略选择)。- 确保
--l2.jwt-secret与 op-geth 的--authrpc.jwtsecret指向同一文件(内容一致)。
(可选)配置全量 Blob 归档服务
默认情况下,普通 L1 信标节点仅保留近 18 天的 blob 数据。若需要同步超过 18 天历史的 blob 数据,可为 gatelayer-node 配置“全量 blob 归档”服务地址:
# 在 gatelayer-node 启动参数中追加:
--l1.beacon-archiver=https://blob-archiver.gatenode.cc
说明:
- 该归档服务由官方维护,提供自 2025-11-28 起的全部 blob 数据下载。
- 如果你的节点已保持最新且不需要历史 blob,同步场景可以不启用该配置。
4. Docker 方式启动 L2 节点
Docker 方式提供了更简单的部署体验,脚本会自动处理配置文件下载、JWT 密钥生成、数据目录初始化等步骤。
4.1 环境准备
依赖项:
- Docker(版本 20.10+)
- Docker Compose(版本 2.0+ 或 docker-compose 1.29+)
检查 Docker 环境:
# 检查 Docker 是否安装
docker --version
# 检查 Docker Compose 是否可用
docker compose version
获取 Docker 启动文件:
从 GitHub 仓库获取 Docker 启动所需的文件:
cd /node-binary/gatelayer/mainnet/docker
tree
.
├── archive
│ ├── README.md
│ └── docker-compose.yml
└── full
├── README.md
└── docker-compose.yml
仓库地址:https://github.com/gatechain/node-binary
4.2 启动节点
4.2.1 启动 Full 节点
基本启动:
cd /node-binary/gatelayer/mainnet/docker/full
cp .env.example .env
#启动
docker compose up -d
4.2.2 启动 Archive 节点
cd /node-binary/gatelayer/mainnet/docker/archive
cp .env.example .env
#启动
docker compose up -d
4.3 验证节点状态
查看容器状态:
cd /node-binary/gatelayer/mainnet/docker/full 或者 cd /node-binary/gatelayer/mainnet/docker/archive
docker compose -f docker-compose.yml ps
查看日志:
docker compose logs -f
检查 RPC 端点:
# 检查 HTTP RPC
curl -X POST http://localhost:8545 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'
4.4 停止节点
docker compose down
4.5 数据目录
默认数据目录:/tmp/gatelayer
目录结构:
/tmp/gatelayer/
├── datadir/ # geth 数据目录
│ └── geth/
│ └── chaindata/
├── rollup.json # Rollup 配置
├── genesis.json # 创世配置
└── jwt.txt # JWT 密钥
4.9 故障排查
Docker 权限问题:
如果遇到权限错误,将用户添加到 docker 组:
sudo usermod -aG docker $USER
newgrp docker
# 或重新登录