Run validators and RPC nodes with erpc validator and erpc rpc

erpc rpc runs RPC nodes on 18 chains and erpc validator runs validators on 13 of them. Every chain uses the same verbs, and these node lifecycle commands are free and need no account.
This page describes ERPC CLI v0.1.0-rc.4, a pre-release. Acceptance on real hosts is still under way: Where each chain stands and each chain's guide give the state of each chain.

Deploy a node

init prepares a server and deploy installs and starts the node. An Ethereum RPC node starts from a bare Ubuntu server, 24.04 or later:
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
Some chains need more in place first, and each chain's guide says what. A new Solana validator or RPC node needs three filesystems mounted and its keys already in 1Password.

Choose the chain, network and host

Pick the chain with --chain, ERPC_CHAIN or the default_chain setting, the network with -n, and the host with --name. A change to mainnet needs --chain written on the command line.
  • erpc validator (alias v), erpc rpc (alias r) and erpc node (alias n, for Avalanche and Sui) run the node commands.
  • Run a command group without a verb (erpc validator) to list its verbs.
  • On node commands, --json has to go before the command: erpc --json rpc ….

Commands that work on every chain

VerbWhat it does
initChecks the server, pins client releases, stores the node in 1Password and prepares the host
deployInstalls or builds the client, fetches a snapshot, applies the firewall where erpc has one for that node, and starts the node
list, status, logsInventory, health and journal
start, stop, restartService control, in the right order for nodes with several layers
updateMoves to another client release; the rollback policy depends on the client
update-configApplies configuration and access changes using the chain's restart rules
planShows the chain's deployment or configuration plan
destroyStops or retires owned services; data, key and firewall retention follow the chain's operations guide
A Solana validator recorded on the solv backend has only init, deploy, list and status of these.

Chains and guides

ChainRPC nodeValidatorNetworksGuides
Solanaerpc rpc --chain solanaerpc validator --chain solanamainnet, testnetOperations, Registration, Chain
Ethereumerpc rpc --chain eth (mainnet, --type full or archive)erpc validator --chain eth (Hoodi, mainnet)mainnet, HoodiRPC, Validator, Chain
Baseerpc rpc --chain basemainnet, sepoliaChain
Avalancheerpc rpc --chain avax (also erpc node)erpc validator --chain avaxmainnet, fujiOperations, Chain
Bitcoinerpc rpc --chain bitcoinmainnet, testnet4, signet, regtestRPC, Chain
Polygonerpc rpc --chain polygonerpc validator --chain polygonmainnet, amoyRPC, Validator, Chain
BNB Chainerpc rpc --chain bscerpc validator --chain bscmainnet, chapelRPC, Validator, Chain
Kaiaerpc rpc --chain kaiaerpc validator --chain kaiamainnet, kairosRPC, Core cell, Chain
Arbitrumerpc rpc --chain arbitrum (mainnet, nova, sepolia)erpc validator --chain arbitrum (Arbitrum One mainnet only)mainnet, nova, sepoliaRPC, Validator, Chain
Optimismerpc rpc --chain optimismmainnet, sepoliaOperations, Chain
Hyperliquiderpc rpc --chain hyperliquiderpc validator --chain hyperliquidmainnet, testnetRPC, Validator, AQA, Chain
Monaderpc rpc --chain monaderpc validator --chain monadmainnet, testnetOperations, Chain
TRONerpc rpc --chain tronerpc validator --chain tronmainnet, nileOperations, Chain
Suierpc rpc --chain sui (also erpc node)erpc validator --chain suimainnet, testnetOperations, Chain
NEARerpc rpc --chain nearerpc validator --chain nearmainnet, testnetRPC, Validator, Chain
Arcerpc rpc --chain arcmainnet, testnetRPC runtime, Chain
Robinhood Chainerpc rpc --chain robinhooderpc validator --chain robinhoodmainnet, testnetAdmission, Validator, Chain
Soneiumerpc rpc --chain soneiummainnet, minatoChain
Running nodes has the clients for each chain.

What erpc needs on the server

  • erpc logs in over SSH as a sudo user (ubuntu by default) with your key, from the 1Password SSH agent or SSH_AUTH_SOCK, and pins the host key the first time.
  • The server needs /usr/bin/python3 and a login whose sudo asks for no password.
  • /opt must already be a real directory owned by root that neither its group nor others can write, as Ubuntu ships it; erpc does not create it. /opt/erpc and the runs and uploads directories erpc makes in it are held to the same rule, and none of these may be a symbolic link: to keep them on another volume, mount the volume at /opt/erpc. For a node, the filesystem that holds /opt/erpc must also keep POSIX ACLs (ext4 and XFS do by default), or erpc stops.
  • A new Solana host needs Ubuntu 24.04, systemd 255 and x86-64 with AVX2 and SHA CPU features. ERPC requires at least 32 logical threads and 480 GiB of usable memory for a Solana RPC node, 24 threads and 300 GiB for a mainnet validator, and 24 threads and 120 GiB for a testnet validator.

How erpc runs a node

  • Most chains run the client as its own user that cannot log in, check each release against a pinned checksum before it is installed, and apply an nftables firewall with a timed rollback that a fresh management connection must confirm. Not all of them do: a new Solana node is built on the server from a pinned source commit, and a Solana node recorded on the solv backend runs as a login user with passwordless sudo and fetches some tools without a checksum.
  • erpc applies no firewall to Solana validators on the solv backend, Ethereum validators or Bitcoin nodes, so filtering those hosts is yours to do.
  • Keep an independent way to reach the host during network changes.
  • While a protected service's drop-in directory holds another file, such as an override.conf from systemctl edit, the firewall step refuses and changes nothing. Move your drop-in out of the directory and run the command again.
  • Secrets sent from your machine reach the server over standard input, never on a command line.
  • A new Solana validator syncs under a separate identity with voting disabled. deploy --activate-validator switches a healthy host to its original registered identity after public registration and native BLS checks. --backend solv resumes an existing solv host and cannot create a new one.
  • Do not restore an Ethereum validator's signer from a backup: move a signer with erpc v --chain eth migrate.
Sign in and keys shows which keys each node keeps in 1Password and on the host.

Where each chain stands

For every chain in the table, the implementation is checked offline, and live acceptance on real hosts is deferred. The RPC command-routing check exercises all twelve common verbs for all eighteen chains, and none of these checks runs a node on a real host. Each chain's page in the chain source map says where it stands.