---
title: "使用 erpc validator 和 erpc rpc 运行 validator 和 RPC 节点"
description: "erpc rpc 在 18 条链上运行 RPC 节点，erpc validator 在 13 条链上运行 validator；每条链使用相同的子命令，且无需 ERPC 账户。"
canonical: "https://erpc.global/zh/doc/erpc-cli/nodes/"
locale: "zh"
---

# 使用 erpc validator 和 erpc rpc 运行 validator 和 RPC 节点

`erpc rpc` 在 18 条链上运行 RPC 节点，`erpc validator` 在其中 13 条链上运行 validator。每条链都使用相同的子命令，这些节点生命周期命令免费，且无需账户。

本页介绍 ERPC CLI `v0.1.0-rc.4`，这是一个预发布版本。在真实主机上的验收仍在进行中：[各链的现状](https://erpc.global/zh/doc/erpc-cli/nodes/#各链的现状)和各链的指南给出了每条链的状态。

## 部署节点

`init` 准备服务器，`deploy` 安装并启动节点。Ethereum RPC 节点从一台干净的 Ubuntu 服务器（24.04 或更高版本）开始：

```bash
# check the server, pin the client releases, store the node in 1Password
erpc rpc --chain ethereum -n mainnet --name eth1 init --host <address> --vault <vault id> --ssh-key ~/.ssh/id_ed25519.pub
# install, fetch a snapshot, apply the firewall, start
erpc rpc --chain ethereum -n mainnet --name eth1 deploy --ssh-key ~/.ssh/id_ed25519.pub
# both layers, sync and head
erpc rpc --chain ethereum -n mainnet --name eth1 status --ssh-key ~/.ssh/id_ed25519.pub
```

有些链需要事先准备更多内容，各链的指南会说明需要什么。新的 Solana validator 或 RPC 节点需要挂载三个文件系统，并且其密钥已存入 1Password。

## 选择链、网络和主机

使用 `--chain`、`ERPC_CHAIN` 或 `default_chain` 设置选择链，使用 `-n` 选择网络，使用 `--name` 选择主机。对主网上的节点进行变更时，必须在命令行上写明 `--chain`。

- `erpc validator`（别名 `v`）、`erpc rpc`（别名 `r`）和 `erpc node`（别名 `n`，用于 Avalanche 和 Sui）运行节点命令。
- 运行不带子命令的命令组（`erpc validator`）即可列出其子命令。
- 在节点命令中，`--json` 必须放在命令之前：`erpc --json rpc …`。

## 适用于所有链的命令

| 子命令 | 作用 |
| --- | --- |
| `init` | 检查服务器、固定客户端版本、将节点存入 1Password 并准备主机 |
| `deploy` | 安装或构建客户端、获取快照、在 erpc 为该节点提供防火墙时应用防火墙，并启动节点 |
| `list`, `status`, `logs` | 清单、健康状态和日志 |
| `start`, `stop`, `restart` | 服务控制，对有多个层的节点按正确顺序执行 |
| `update` | 切换到另一个客户端版本；回滚策略取决于客户端 |
| `update-config` | 按照该链的重启规则应用配置和访问权限的变更 |
| `plan` | 显示该链的部署计划或配置计划 |
| `destroy` | 停止或退役其拥有的服务；数据、密钥和防火墙的保留方式遵循该链的运维指南 |

记录在 solv 后端上的 Solana validator 只有其中的 `init`、`deploy`、`list` 和 `status`。

## 链与指南

| 链 | RPC 节点 | Validator | 网络 | 指南 |
| --- | --- | --- | --- | --- |
| Solana | `erpc rpc --chain solana` | `erpc validator --chain solana` | mainnet、testnet | [运维](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/solana-native.md)、[注册](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/solana-registration.md)、[链](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/solana.md) |
| Ethereum | `erpc rpc --chain eth`（mainnet，`--type full` 或 `archive`） | `erpc validator --chain eth`（Hoodi、mainnet） | mainnet、Hoodi | [RPC](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/ethereum-rpc.md)、[Validator](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/ethereum-validator.md)、[链](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/ethereum.md) |
| Base | `erpc rpc --chain base` | | mainnet、sepolia | [链](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/base.md) |
| Avalanche | `erpc rpc --chain avax`（也可用 `erpc node`） | `erpc validator --chain avax` | mainnet、fuji | [运维](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/avalanche.md)、[链](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/avalanche.md) |
| Bitcoin | `erpc rpc --chain bitcoin` | | mainnet、testnet4、signet、regtest | [RPC](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/bitcoin-rpc.md)、[链](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/bitcoin.md) |
| Polygon | `erpc rpc --chain polygon` | `erpc validator --chain polygon` | mainnet、amoy | [RPC](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/crates/erpc-chain-polygon/templates/README.md)、[Validator](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/polygon-validator.md)、[链](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/polygon.md) |
| BNB Chain | `erpc rpc --chain bsc` | `erpc validator --chain bsc` | mainnet、chapel | [RPC](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/bsc-rpc.md)、[Validator](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/bsc-validator.md)、[链](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/bsc.md) |
| Kaia | `erpc rpc --chain kaia` | `erpc validator --chain kaia` | mainnet、kairos | [RPC](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/kaia-rpc.md)、[Core cell](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/kaia-core-cell.md)、[链](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/kaia.md) |
| Arbitrum | `erpc rpc --chain arbitrum`（mainnet、nova、sepolia） | `erpc validator --chain arbitrum`（仅 Arbitrum One mainnet） | mainnet、nova、sepolia | [RPC](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/nitro-rpc.md)、[Validator](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/arbitrum-validator.md)、[链](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/arbitrum.md) |
| Optimism | `erpc rpc --chain optimism` | | mainnet、sepolia | [运维](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/op-follower-rpc.md)、[链](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/optimism.md) |
| Hyperliquid | `erpc rpc --chain hyperliquid` | `erpc validator --chain hyperliquid` | mainnet、testnet | [RPC](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/hyperliquid-rpc.md)、[Validator](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/hyperliquid-validator.md)、[AQA](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/hyperliquid-aqa.md)、[链](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/hyperliquid.md) |
| Monad | `erpc rpc --chain monad` | `erpc validator --chain monad` | mainnet、testnet | [运维](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/monad-node.md)、[链](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/monad.md) |
| TRON | `erpc rpc --chain tron` | `erpc validator --chain tron` | mainnet、nile | [运维](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/crates/erpc-chain-tron/templates/README.md)、[链](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/tron.md) |
| Sui | `erpc rpc --chain sui`（也可用 `erpc node`） | `erpc validator --chain sui` | mainnet、testnet | [运维](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/crates/erpc-chain-sui/templates/README.md)、[链](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/sui.md) |
| NEAR | `erpc rpc --chain near` | `erpc validator --chain near` | mainnet、testnet | [RPC](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/near-rpc.md)、[Validator](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/near-validator.md)、[链](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/near.md) |
| Arc | `erpc rpc --chain arc` | | mainnet、testnet | [RPC 运行时](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/arc-runtime.md)、[链](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/arc.md) |
| Robinhood Chain | `erpc rpc --chain robinhood` | `erpc validator --chain robinhood` | mainnet、testnet | [准入](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/robinhood-admission.md)、[Validator](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/robinhood-defensive-validator.md)、[链](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/robinhood.md) |
| Soneium | `erpc rpc --chain soneium` | | mainnet、minato | [链](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/soneium.md) |

[运行节点](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/nodes.md)列出了每条链使用的客户端。

## erpc 对服务器的要求

- erpc 使用您的密钥（来自 1Password SSH agent 或 `SSH_AUTH_SOCK`），以 sudo 用户（默认为 `ubuntu`）通过 SSH 登录，并在首次连接时固定主机密钥。
- 服务器需要 `/usr/bin/python3`，以及一个执行 `sudo` 时无需输入密码的登录用户。
- `/opt` 必须事先就是一个由 root 拥有、其所属组和其他用户都不可写的真实目录，与 Ubuntu 默认提供的一致；erpc 不会创建它。`/opt/erpc` 以及 erpc 在其中创建的 `runs` 和 `uploads` 目录也须遵守同一规则，且它们都不能是符号链接：如需将它们放在另一个卷上，请将该卷挂载到 `/opt/erpc`。对于节点，存放 `/opt/erpc` 的文件系统还必须保留 POSIX ACL（ext4 和 XFS 默认保留），否则 erpc 会停止。
- 新的 Solana 主机需要 Ubuntu 24.04、systemd 255，以及支持 AVX2 和 SHA CPU 特性的 x86-64。ERPC 要求 Solana RPC 节点至少有 32 个逻辑线程和 480 GiB 可用内存，主网 validator 至少有 24 个线程和 300 GiB，测试网 validator 至少有 24 个线程和 120 GiB。

## erpc 如何运行节点

- 大多数链会以一个无法登录的独立用户运行客户端，在安装每个版本之前用已固定的校验和对其进行检查，并应用带有定时回滚的 nftables 防火墙，该回滚必须由一个新的管理连接确认。并非所有链都是如此：新的 Solana 节点在服务器上从固定的源代码 commit 构建，而记录在 solv 后端上的 Solana 节点以拥有免密码 sudo 的登录用户运行，并且会在没有校验和的情况下获取部分工具。
- erpc 不会为 solv 后端上的 Solana validator、Ethereum validator 或 Bitcoin 节点应用防火墙，因此这些主机的过滤需要由您自己完成。
- 在网络变更期间，请保留一种独立的方式来访问主机。
- 当受保护服务的 drop-in 目录中有其他文件（例如 `systemctl edit` 生成的 `override.conf`）时，防火墙步骤会拒绝执行，且不做任何更改。请将您的 drop-in 移出该目录，然后再次运行命令。
- 从您的机器发送的 Secret 通过标准输入到达服务器，从不出现在命令行上。
- 新的 Solana validator 会以单独的身份同步，且投票处于禁用状态。`deploy --activate-validator` 会在公开注册和原生 BLS 检查之后，将健康的主机切换到其原先注册的身份。`--backend solv` 用于接续现有的 solv 主机，无法创建新主机。
- 不要从备份恢复 Ethereum validator 的签名者：请使用 `erpc v --chain eth migrate` 迁移签名者。

[登录与密钥](https://erpc.global/zh/doc/erpc-cli/sign-in-and-keys/#节点密钥的保存位置)列出了每种节点在 1Password 和主机上保存的密钥。

## 各链的现状

对于表中的每条链，其实现都经过了离线检查，而在真实主机上的实地验收已推迟。RPC 命令路由检查对全部十八条链执行全部十二个通用子命令，这些检查都不会在真实主机上运行节点。[链源码索引](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/README.md)中每条链的页面说明了该链的现状。
