Exécuter des validateurs et des nœuds RPC avec erpc validator et erpc rpc

erpc rpc exécute des nœuds RPC sur 18 chaînes et erpc validator des validateurs sur 13 d'entre elles. Toutes les chaînes utilisent les mêmes verbes, et ces commandes de cycle de vie des nœuds sont gratuites et ne demandent aucun compte.
Cette page décrit ERPC CLI v0.1.0-rc.4, une préversion. Les tests d'acceptation sur des hôtes réels sont toujours en cours : Où en est chaque chaîne et le guide de chaque chaîne indiquent l'état de chaque chaîne.

Déployer un nœud

init prépare un serveur et deploy installe et démarre le nœud. Un nœud RPC Ethereum démarre à partir d'un serveur Ubuntu nu, en version 24.04 ou ultérieure :
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
Certaines chaînes demandent d'autres prérequis, que précise le guide de chaque chaîne. Un nouveau validateur ou nœud RPC Solana a besoin de trois systèmes de fichiers montés et de ses clés déjà présentes dans 1Password.

Choisir la chaîne, le réseau et l'hôte

Choisissez la chaîne avec --chain, ERPC_CHAIN ou le paramètre default_chain, le réseau avec -n et l'hôte avec --name. Toute modification d'un nœud sur mainnet exige que --chain soit écrit sur la ligne de commande.
  • erpc validator (alias v), erpc rpc (alias r) et erpc node (alias n, pour Avalanche et Sui) exécutent les commandes de nœud.
  • Exécutez un groupe de commandes sans verbe (erpc validator) pour lister ses verbes.
  • Sur les commandes de nœud, --json doit être placé avant la commande : erpc --json rpc ….

Commandes valables sur toutes les chaînes

VerbeCe qu'il fait
initVérifie le serveur, épingle les versions du client, stocke le nœud dans 1Password et prépare l'hôte
deployInstalle ou compile le client, récupère un snapshot, applique le pare-feu lorsqu'erpc en a un pour ce nœud, et démarre le nœud
list, status, logsInventaire, santé et journal
start, stop, restartContrôle du service, dans le bon ordre pour les nœuds à plusieurs couches
updatePasse à une autre version du client ; la politique de rollback dépend du client
update-configApplique les changements de configuration et d'accès selon les règles de redémarrage de la chaîne
planAffiche le plan de déploiement ou de configuration de la chaîne
destroyArrête ou retire les services qui lui appartiennent ; la conservation des données, des clés et du pare-feu suit le guide d'exploitation de la chaîne
Un validateur Solana consigné sur le backend solv ne dispose, parmi ces verbes, que de init, deploy, list et status.

Chaînes et guides

ChaîneNœud RPCValidateurRéseauxGuides
Solanaerpc rpc --chain solanaerpc validator --chain solanamainnet, testnetExploitation, Enregistrement, Chaîne
Ethereumerpc rpc --chain eth (mainnet, --type full ou archive)erpc validator --chain eth (Hoodi, mainnet)mainnet, HoodiRPC, Validateur, Chaîne
Baseerpc rpc --chain basemainnet, sepoliaChaîne
Avalancheerpc rpc --chain avax (aussi erpc node)erpc validator --chain avaxmainnet, fujiExploitation, Chaîne
Bitcoinerpc rpc --chain bitcoinmainnet, testnet4, signet, regtestRPC, Chaîne
Polygonerpc rpc --chain polygonerpc validator --chain polygonmainnet, amoyRPC, Validateur, Chaîne
BNB Chainerpc rpc --chain bscerpc validator --chain bscmainnet, chapelRPC, Validateur, Chaîne
Kaiaerpc rpc --chain kaiaerpc validator --chain kaiamainnet, kairosRPC, Core cell, Chaîne
Arbitrumerpc rpc --chain arbitrum (mainnet, nova, sepolia)erpc validator --chain arbitrum (mainnet Arbitrum One uniquement)mainnet, nova, sepoliaRPC, Validateur, Chaîne
Optimismerpc rpc --chain optimismmainnet, sepoliaExploitation, Chaîne
Hyperliquiderpc rpc --chain hyperliquiderpc validator --chain hyperliquidmainnet, testnetRPC, Validateur, AQA, Chaîne
Monaderpc rpc --chain monaderpc validator --chain monadmainnet, testnetExploitation, Chaîne
TRONerpc rpc --chain tronerpc validator --chain tronmainnet, nileExploitation, Chaîne
Suierpc rpc --chain sui (aussi erpc node)erpc validator --chain suimainnet, testnetExploitation, Chaîne
NEARerpc rpc --chain nearerpc validator --chain nearmainnet, testnetRPC, Validateur, Chaîne
Arcerpc rpc --chain arcmainnet, testnetRuntime RPC, Chaîne
Robinhood Chainerpc rpc --chain robinhooderpc validator --chain robinhoodmainnet, testnetAdmission, Validateur, Chaîne
Soneiumerpc rpc --chain soneiummainnet, minatoChaîne
Exécuter des nœuds indique les clients de chaque chaîne.

Ce dont erpc a besoin sur le serveur

  • erpc se connecte en SSH en tant qu'utilisateur sudo (ubuntu par défaut) avec votre clé, depuis l'agent SSH de 1Password ou SSH_AUTH_SOCK, et épingle la clé d'hôte lors de la première connexion.
  • Le serveur a besoin de /usr/bin/python3 et d'un compte de connexion dont le sudo ne demande pas de mot de passe.
  • /opt doit déjà être un vrai répertoire appartenant à root, dans lequel ni son groupe ni les autres ne peuvent écrire, tel qu'Ubuntu le fournit ; erpc ne le crée pas. /opt/erpc et les répertoires runs et uploads qu'erpc y crée sont soumis à la même règle, et aucun d'eux ne peut être un lien symbolique : pour les placer sur un autre volume, montez ce volume sur /opt/erpc. Pour un nœud, le système de fichiers qui contient /opt/erpc doit aussi conserver les ACL POSIX (ext4 et XFS le font par défaut), sinon erpc s'arrête.
  • Un nouvel hôte Solana nécessite Ubuntu 24.04, systemd 255 et un x86-64 doté des fonctionnalités CPU AVX2 et SHA. ERPC exige au moins 32 threads logiques et 480 GiB de mémoire utilisable pour un nœud RPC Solana, 24 threads et 300 GiB pour un validateur mainnet, et 24 threads et 120 GiB pour un validateur testnet.

Comment erpc exécute un nœud

  • La plupart des chaînes exécutent le client sous son propre utilisateur, qui ne peut pas se connecter, vérifient chaque version par rapport à une somme de contrôle épinglée avant de l'installer, et appliquent un pare-feu nftables avec un rollback minuté qu'une nouvelle connexion de gestion doit confirmer. Ce n'est pas le cas de toutes : un nouveau nœud Solana est compilé sur le serveur à partir d'un commit source épinglé, et un nœud Solana consigné sur le backend solv s'exécute sous un utilisateur de connexion disposant de sudo sans mot de passe et récupère certains outils sans somme de contrôle.
  • erpc n'applique aucun pare-feu aux validateurs Solana sur le backend solv, aux validateurs Ethereum ni aux nœuds Bitcoin ; le filtrage de ces hôtes vous revient donc.
  • Gardez un moyen indépendant d'atteindre l'hôte pendant les changements réseau.
  • Tant que le répertoire drop-in d'un service protégé contient un autre fichier, comme un override.conf créé par systemctl edit, l'étape du pare-feu refuse de s'exécuter et ne modifie rien. Sortez votre drop-in du répertoire et relancez la commande.
  • Les secrets envoyés depuis votre machine parviennent au serveur par l'entrée standard, jamais sur une ligne de commande.
  • Un nouveau validateur Solana se synchronise sous une identité distincte, avec le vote désactivé. deploy --activate-validator bascule un hôte sain vers son identité enregistrée d'origine après l'enregistrement public et les vérifications BLS natives. --backend solv reprend un hôte solv existant et ne peut pas en créer un nouveau.
  • Ne restaurez pas le signataire d'un validateur Ethereum à partir d'une sauvegarde : déplacez un signataire avec erpc v --chain eth migrate.
Connexion et clés indique quelles clés chaque nœud conserve dans 1Password et sur l'hôte.

Où en est chaque chaîne

Pour chaque chaîne du tableau, l'implémentation est vérifiée hors ligne, et les tests d'acceptation en conditions réelles sur de vrais hôtes sont reportés. La vérification du routage des commandes RPC teste les douze verbes communs sur les dix-huit chaînes, et aucune de ces vérifications n'exécute de nœud sur un hôte réel. La page de chaque chaîne dans la carte des sources des chaînes indique où elle en est.