erpc validator と erpc rpc でバリデータと RPC ノードを動かす

erpc rpc は 18 のチェーンで RPC ノードを、erpc validator はそのうち 13 のチェーンでバリデータを動かします。どのチェーンでも同じサブコマンドで操作できます。ノードの用意から撤去までのこれらのコマンドは無料で、アカウントも要りません。
このページは、プレリリースの ERPC CLI v0.1.0-rc.4 について説明しています。実際のホストでの受け入れ確認は、まだ進めている途中です。チェーンごとの状態は、チェーンごとの検証の状況と各チェーンのガイドで確認できます。

ノードをデプロイする

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 のバリデータや RPC ノードには、3 つのファイルシステムのマウントと、1Password に入れておいた鍵が必要です。

チェーン、ネットワーク、ホストを選ぶ

チェーンは --chain、ERPC_CHAIN、または default_chain の設定で、ネットワークは -n で、ホストは --name で選びます。mainnet に切り替えるときは、コマンドラインに --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 のバリデータでは、このうち init、deploy、list、status だけが使えます。

対応チェーンとチェーンごとのガイド

チェーンRPC ノードバリデータネットワークガイド
Solanaerpc rpc --chain solanaerpc validator --chain solanamainnet, testnet運用、登録、チェーン
Ethereumerpc rpc --chain eth(mainnet、--type full または archive)erpc validator --chain eth(Hoodi、mainnet)mainnet, HoodiRPC、バリデータ、チェーン
Baseerpc rpc --chain basemainnet, sepoliaチェーン
Avalancheerpc rpc --chain avax(erpc node でも可)erpc validator --chain avaxmainnet, fuji運用、チェーン
Bitcoinerpc rpc --chain bitcoinmainnet, testnet4, signet, regtestRPC、チェーン
Polygonerpc rpc --chain polygonerpc validator --chain polygonmainnet, amoyRPC、バリデータ、チェーン
BNB Chainerpc rpc --chain bscerpc validator --chain bscmainnet, chapelRPC、バリデータ、チェーン
Kaiaerpc rpc --chain kaiaerpc validator --chain kaiamainnet, kairosRPC、Core cell、チェーン
Arbitrumerpc rpc --chain arbitrum(mainnet、nova、sepolia)erpc validator --chain arbitrum(Arbitrum One の mainnet のみ)mainnet, nova, sepoliaRPC、バリデータ、チェーン
Optimismerpc rpc --chain optimismmainnet, sepolia運用、チェーン
Hyperliquiderpc rpc --chain hyperliquiderpc validator --chain hyperliquidmainnet, testnetRPC、バリデータ、AQA、チェーン
Monaderpc rpc --chain monaderpc validator --chain monadmainnet, testnet運用、チェーン
TRONerpc rpc --chain tronerpc validator --chain tronmainnet, nile運用、チェーン
Suierpc rpc --chain sui(erpc node でも可)erpc validator --chain suimainnet, testnet運用、チェーン
NEARerpc rpc --chain nearerpc validator --chain nearmainnet, testnetRPC、バリデータ、チェーン
Arcerpc rpc --chain arcmainnet, testnetRPC ランタイム、チェーン
Robinhood Chainerpc rpc --chain robinhooderpc validator --chain robinhoodmainnet, testnet参加の手続き、バリデータ、チェーン
Soneiumerpc rpc --chain soneiummainnet, minatoチェーン
各チェーンのクライアントは ノードの動かし方 に載っています。

erpc がサーバーに求めること

  • erpc は、あなたの鍵で、sudo のできるユーザー(既定は ubuntu)として SSH でログインします。鍵は 1Password の SSH エージェントか SSH_AUTH_SOCK から使い、初めて接続したときにホスト鍵を固定します。
  • サーバーには /usr/bin/python3 と、sudo がパスワードを求めないログインユーザーが必要です。
  • /opt は、Ubuntu の初期状態と同じく、root が所有し、グループにもその他のユーザーにも書き込めない実体のディレクトリとして、あらかじめ在る必要があります。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、mainnet のバリデータでスレッド 24 と 300 GiB、testnet のバリデータでスレッド 24 と 120 GiB です。

erpc がノードを動かすときにすること

  • ほとんどのチェーンでは、クライアントをログインできない専用のユーザーで動かし、各リリースをインストールする前に固定したチェックサムと照合し、新しい管理用の接続で確認されなければ時間で元に戻る、nftables のファイアウォールを適用します。すべてのチェーンがそうではありません。新しい Solana のノードは、固定したソースのコミットからサーバー上でビルドします。solv のバックエンドで記録された Solana のノードは、パスワードなしの sudo ができるログインユーザーで動き、一部のツールをチェックサムなしで取得します。
  • erpc は、solv のバックエンドの Solana のバリデータ、Ethereum のバリデータ、Bitcoin のノードにはファイアウォールを適用しません。これらのホストの通信の制限は、ご自身で行ってください。
  • ネットワークを変更する間も、ホストに届く別の経路を持っておいてください。
  • 保護されたサービスの drop-in ディレクトリに別のファイル(systemctl edit で作った override.conf など)が在る間は、ファイアウォールの手順は受け付けず、何も変更しません。その drop-in をディレクトリの外に移してから、コマンドをもう一度実行してください。
  • あなたのマシンから送るシークレットは、標準入力でサーバーに届き、コマンドラインには載りません。
  • 新しい Solana のバリデータは、投票を無効にした別のアイデンティティで同期します。deploy --activate-validator は、公開の登録とネイティブの BLS の確認を経てから、健全なホストを元の登録済みのアイデンティティに切り替えます。--backend solv は既存の solv のホストを再開するためのもので、新しいホストは作れません。
  • Ethereum のバリデータの署名者をバックアップから復元しないでください。署名者を移すときは erpc v --chain eth migrate を使います。
ノードごとに、どの鍵を 1Password とホストに置くかは、ログインと鍵に載っています。

チェーンごとの検証の状況

表のどのチェーンも、実装はオフラインで確認済みで、実際のホストでの受け入れ確認はまだ先です。RPC のコマンドの振り分けの確認では、18 のチェーンすべてで共通の 12 の動詞を試しますが、これらの確認のどれも、実際のホストでノードを動かしてはいません。各チェーンの状況は、チェーンごとの資料の一覧の、そのチェーンのページに載っています。