Skip to main content

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.json
  • genesis.json

将上述文件保存到 $GATELAYER_WORKSPACE 根目录。

2.2 生成 JWT 密钥

openssl rand -hex 32 > jwt.txt

2.3 拷贝到对应目录

  • genesis.jsonjwt.txt 放到 $GATELAYER_WORKSPACE 根目录
  • rollup.jsonjwt.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
# 或重新登录

最后更新于2025/12/03