如何搭建 Polkadot 平行链 RPC 节点:系统平行链完整部署指南(Bridge Hub / People Chain / Coretime)
本文介绍如何为 Polkadot 系统平行链(Bridge Hub、People Chain、Coretime Chain 等)搭建 RPC 节点,提供 Docker 和 systemd 两种完整部署方案,包含链规格文件获取、快照加速同步、归档/修剪节点配置、同步监控和日常管理命令。适合需要直接访问特定平行链数据的开发者和运维工程师。
原文作者:PaperMoon 团队
Polkadot 不只有一条链。你在做身份相关的功能,数据在 People Chain 上;你需要跨链桥的状态,数据在 Bridge Hub 上;你要查 Coretime 分配记录,那是 Coretime Chain 的事。Asset Hub 只是其中一条,Polkadot 生态里有好几条系统平行链,每条都有自己独立的 RPC 端点。
如果你已经看过 Polkadot Hub RPC 节点的搭建指南,本文的部署流程完全一致,核心差别只有一点,每条平行链用自己的链规格文件。本文重点在于告诉你各条链的链规格从哪里拿,以及怎么根据目标平行链调整命令参数。
一、Polkadot 系统平行链一览
|
平行链 |
Para ID |
主要用途 |
归档节点存储需求 |
链规格文件(Chain Spec) |
|---|---|---|---|---|
|
Asset Hub |
1000 |
资产发行、DeFi、NFT、智能合约交互入口 |
~1.2 TB |
asset-hub-polkadot.json |
|
Bridge Hub |
1002 |
跨链桥消息验证与中继 |
~1.1 TB |
bridge-hub-polkadot.json |
|
People Chain |
1004 |
链上身份、账户与社交关系注册 |
~900 GB |
people-polkadot.json |
|
Coretime Chain |
1005 |
Coretime 资源调度与计算资源分配 |
~900 GB |
coretime-polkadot.json |
|
Collectives Chain |
1001 |
Fellowship 技术委员会治理与投票 |
~1 TB |
collectives-polkadot.json |
修剪节点(只保留近期状态)所有平行链通用:约 200 GB + 中继链约 822 GB = 合计约 1 TB。
平行链(parachain):Polkadot 中继链上连接的独立区块链,每条平行链有自己的逻辑和状态,但共享中继链的安全性。系统平行链由 Polkadot 治理直接管理,是 Polkadot 生态基础设施的一部分。
如果你需要搭建的是第三方平行链(比如某个 DeFi 协议的平行链),需要到该项目的官方文档里找链规格文件,流程和本文完全相同。
二、硬件与软件要求
硬件
|
配置项 |
最低配置(可运行) |
高流量 / 生产环境推荐 |
|---|---|---|
|
CPU |
8 核 |
16 核及以上 |
|
内存 |
64 GB RAM |
128 GB RAM |
|
存储(归档节点) |
依据所运行平行链而定(见系统链存储需求) |
高速企业级 NVMe SSD(优先 IOPS 与持续写入性能) |
必须使用 NVMe SSD,机械硬盘在初次同步阶段会成为严重瓶颈。
需要开放的端口
|
端口 |
服务类型 |
用途说明 |
是否需要公网开放 |
|---|---|---|---|
|
30333 |
P2P(平行链) |
与其他平行链节点进行发现、区块同步与区块传播 |
✅ 必须 |
|
30334 |
P2P(中继链) |
与 Relay Chain 节点建立连接并同步区块 |
✅ 必须 |
|
9944 |
RPC(WebSocket / HTTP) |
钱包、SDK、dApp 连接节点的主要接口 |
❌ 不建议公网直接开放 |
|
9933 |
RPC(HTTP) |
后端脚本或服务调用链上接口 |
❌ 不建议公网直接开放 |
|
9615 |
监控(Prometheus) |
导出节点运行指标(区块高度、peer 数、CPU、内存等) |
可选(生产建议内网) |
软件
- Ubuntu 22.04 LTS 或同类 Linux 发行版
- Docker(Docker 部署方式必须)
- rclone(快照下载推荐安装)
三、获取链规格文件
系统平行链
系统平行链的链规格文件可以从 Polkadot SDK 仓库直接下载。以 People Chain 为例:
```bash
curl -L https://raw.githubusercontent.com/paritytech/polkadot-sdk/master/cumulus/parachains/chain-specs/people-polkadot.json \
-o people-polkadot.json
```
把文件名换成你需要的平行链对应的 JSON 文件即可(见上方表格第五列)。
第三方平行链
没有统一的来源,到对应项目的官方文档或 GitHub 仓库里找 chain spec 文件。找到之后,后续部署流程和系统平行链完全一样。
四、Docker 部署
本节以 People Chain 为示例,其他平行链只需替换链规格文件名和容器名称。
4.1 可选:通过快照加速同步
从零同步需要数天时间。如果安装了 rclone,可以用官方快照跳过大部分同步。
各平行链的快照路径:
|
平行链 |
快照路径前缀 |
数据库类型 |
典型用途 |
|---|---|---|---|
|
Asset Hub |
polkadot-asset-hub-rocksdb-archive |
RocksDB |
资产发行、DeFi、NFT、EVM 交互 |
|
Bridge Hub |
polkadot-bridge-hub-paritydb-archive |
ParityDB |
跨链桥消息验证与中继 |
|
People Chain |
polkadot-people-rocksdb-archive |
RocksDB |
链上身份与账户注册 |
|
Coretime Chain |
polkadot-coretime-rocksdb-archive |
RocksDB |
Coretime 资源调度 |
以 People Chain 为例,创建数据目录并下载快照:
```bash
mkdir -p my-node-data/chains/people-polkadot/db
mkdir -p my-node-data/chains/polkadot/db
# 替换 INSERT_LATEST 为 snapshots.polkadot.io 上的最新版本号
export SNAPSHOT_URL="https://snapshots.polkadot.io/polkadot-people-rocksdb-archive/INSERT_LATEST"
rclone copyurl $SNAPSHOT_URL/files.txt files.txt
rclone copy --progress --transfers 20 \
--http-url $SNAPSHOT_URL \
--no-traverse --http-no-head --disable-http2 \
--inplace --no-gzip-encoding --size-only \
--retries 6 --retries-sleep 10s \
--files-from files.txt :http: my-node-data/chains/people-polkadot/db/
rm files.txt
```
中继链快照(所有平行链通用):
```bash
export SNAPSHOT_URL_RELAY="https://snapshots.polkadot.io/polkadot-rocksdb-prune/INSERT_LATEST"
rclone copyurl $SNAPSHOT_URL_RELAY/files.txt files.txt
rclone copy --progress --transfers 20 \
--http-url $SNAPSHOT_URL_RELAY \
--no-traverse --http-no-head --disable-http2 \
--inplace --no-gzip-encoding --size-only \
--retries 6 --retries-sleep 10s \
--files-from files.txt :http: my-node-data/chains/polkadot/db/
rm files.txt
```
4.2 启动归档节点
```bash
docker run -d --name people-chain-rpc --restart unless-stopped \
-p 9944:9944 \
-p 9933:9933 \
-p 9615:9615 \
-p 30334:30334 \
-p 30333:30333 \
-v $(pwd)/people-polkadot.json:/people-polkadot.json \
-v $(pwd)/my-node-data:/data \
parity/polkadot-parachain:stable2512-1 \
--name=PeopleChainRPC \
--base-path=/data \
--chain=/people-polkadot.json \
--prometheus-external \
--prometheus-port 9615 \
--unsafe-rpc-external \
--rpc-port=9944 \
--rpc-cors=all \
--rpc-methods=safe \
--rpc-max-connections=1000 \
--state-pruning=archive \
--blocks-pruning=archive \
-- \
--base-path=/data \
--chain=polkadot \
--state-pruning=256 \
--blocks-pruning=256 \
--rpc-port=0
```
切换到其他平行链时需要修改的地方:
- `people-polkadot.json` → 对应平行链的链规格文件名
- `--name=PeopleChainRPC` → 改成你喜欢的名字
- `my-node-data/chains/people-polkadot/db` 目录名对应链规格里的链 ID
4.3 启动修剪节点
修剪节点只需把上面命令的两个参数改掉:
```
--state-pruning=archive → --state-pruning=1000
--blocks-pruning=archive → --blocks-pruning=256
```
其余完全相同。
五、Systemd 部署
5.1 下载二进制文件
```bash
wget https://github.com/paritytech/polkadot-sdk/releases/download/polkadot-stable2512-1/polkadot-parachain
chmod +x polkadot-parachain
sudo mv polkadot-parachain /usr/local/bin/
polkadot-parachain --version
```
5.2 创建用户和目录
```bash
sudo useradd -r -s /bin/bash polkadot
sudo mkdir -p /var/lib/people-chain-rpc
sudo cp people-polkadot.json /var/lib/people-chain-rpc/
sudo chown -R polkadot:polkadot /var/lib/people-chain-rpc
```
5.3 归档节点服务文件
```bash
sudo useradd -r -s /bin/bash polkadot
sudo mkdir -p /var/lib/people-chain-rpc
sudo cp people-polkadot.json /var/lib/people-chain-rpc/
sudo chown -R polkadot:polkadot /var/lib/people-chain-rpc
```
写入:
```ini
[Unit]
Description=People Chain RPC Node
After=network.target
[Service]
Type=simple
User=polkadot
Group=polkadot
WorkingDirectory=/var/lib/people-chain-rpc
ExecStart=/usr/local/bin/polkadot-parachain \
--name=PeopleChainRPC \
--chain=/var/lib/people-chain-rpc/people-polkadot.json \
--base-path=/var/lib/people-chain-rpc \
--port=30333 \
--rpc-port=9944 \
--rpc-external \
--rpc-cors=all \
--rpc-methods=safe \
--rpc-max-connections=1000 \
--prometheus-port=9615 \
--prometheus-external \
--state-pruning=archive \
--blocks-pruning=archive \
-- \
--chain=polkadot \
--base-path=/var/lib/people-chain-rpc \
--port=30334 \
--state-pruning=256 \
--blocks-pruning=256 \
--rpc-port=0
Restart=always
RestartSec=10
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
```
修剪节点同样只改两行:`--state-pruning=1000` 和 `--blocks-pruning=256`。
5.4 启动服务
```bash
sudo systemctl daemon-reload
sudo systemctl enable people-chain-rpc
sudo systemctl start people-chain-rpc
```
六、验证同步状态
节点启动后需要一段时间同步,用下面的命令实时查看进度:
```bash
curl -H "Content-Type: application/json" \
-d '{"id":1, "jsonrpc":"2.0", "method": "system_syncState", "params":[]}' \
http://localhost:9944
```
`currentBlock` 追上 `highestBlock` 时同步完成:
```json
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"startingBlock": 0,
"currentBlock": 3394816,
"highestBlock": 3394816
}
}
```
节点健康检查:
```bash
curl -H "Content-Type: application/json" \
-d '{"id":1, "jsonrpc":"2.0", "method": "system_health", "params":[]}' \
http://localhost:9944
```
七、节点管理命令速查
Docker
```bash
docker logs -f people-chain-rpc # 实时日志
docker stop people-chain-rpc # 停止
docker start people-chain-rpc # 启动
docker rm people-chain-rpc # 删除容器(数据目录保留)
```
Systemd
```bash
sudo systemctl status people-chain-rpc # 查看状态
sudo journalctl -u people-chain-rpc -f # 实时日志
sudo systemctl stop people-chain-rpc # 停止
sudo systemctl start people-chain-rpc # 启动
sudo systemctl enable people-chain-rpc # 设为开机自启
```
八、适配其他平行链的变量速查
不管你要搭哪条平行链的节点,修改下面这几个地方就够了:
|
修改位置 |
需要做什么 |
原因 / 作用 |
示例 |
|---|---|---|---|
|
链规格文件名(如 people-polkadot.json) |
替换为目标平行链的 chain spec 文件 |
决定节点启动时连接哪条链 |
asset-hub-polkadot.json |
|
快照路径前缀 |
使用对应平行链的 snapshot 前缀 |
恢复正确的区块与状态数据库 |
polkadot-asset-hub-rocksdb-archive |
|
数据目录路径(如 chains/people-polkadot/db) |
修改为对应链的目录 |
每条链拥有独立数据库 |
chains/asset-hub-polkadot/db |
|
Docker 容器名 / systemd 服务名 |
改为可区分的名称 |
同一服务器运行多个节点时避免混淆 |
polkadot-asset-hub-node |
|
--name= 参数 |
设置节点显示名称 |
链上 peer 列表中显示的节点标识 |
核心的启动命令、端口映射、pruning 参数逻辑,所有 Substrate 平行链都相同。
Polkadot 系统平行链里,Asset Hub 是大多数开发者会先接触的,但 People Chain(身份)和 Bridge Hub(跨链桥)在构建更完整的应用时很快就会用到。搭节点的流程是一样的,最重要的事情是在启动之前先确认好自己要接的是哪条链——链规格文件拿错了,节点会同步到完全错误的网络,数据毫无意义。
阅读原文:https://docs.polkadot.com/node-infrastructure/run-a-node/parachain-rpc/
更多推荐



所有评论(0)