ERPC CLI にログインし、鍵の置き場所を確かめる

このマシンでログインすると、ERPC CLI はセッションをキーチェーンか 1Password に置きます。このページでは、ノードの鍵の置き場所と、erpc が置くファイルも説明します。
このページは、プレリリースの ERPC CLI v0.1.0-rc.4 について説明しています。

ログインする

bash
erpc signup     # opens the sign-up page
erpc login      # signs this machine in; the session goes to the keychain or 1Password
erpc whoami
erpc login は、OAuth のデバイス認可グラント(device authorization grant)でセッションを受け取ります。ブラウザのないマシンでは、erpc login --no-browser がブラウザを開く代わりに URL とコードを表示し、erpc signup --no-browser はアカウント登録の URL を表示します。erpc whoami は保存したセッションが誰のものかを表示し、erpc logout はログアウトして保存したセッションを消します。

セッションの置き場所を選ぶ

ターミナルでは、erpc login がどのストアを使うかを聞きます。既定は OS のキーチェーンで、1Password が応答すれば 1Password も選べます。--store と --vault を付けると聞かずに決まり、その選択は config.toml に記録され、ほかのコマンドもそこを読みます。
--storeセッションの置き場所
keychainOS のキーチェーン
1password-desktop(1password、op も可)1Password(デスクトップアプリ経由)
1password-service-account1Password(サービスアカウントのトークン経由)
fileディスク上のファイル。このマシンにシークレットが残ります
指定も記録もないときは、OP_SERVICE_ACCOUNT_TOKEN が設定されていれば 1Password のサービスアカウントを、なければ OS のキーチェーンがあればそれを、それもなければ erpc の状態ディレクトリのファイルを使います。どのストアを使っていて、なぜそうなったかは erpc doctor が報告します。サービスアカウントを使うとき、erpc は OP_SERVICE_ACCOUNT_TOKEN を自分が起動する op のプロセスにだけ渡し、このトークンをどこにも書きません。
1Password のアイテムにはマシンの名前が付くので、2 台のマシンが 1 つのセッションを共有することはありません。名前は ERPC_HOST_LABEL で上書きできます。

Linux の場合

Secret Service が応答する環境では、キーチェーンは Secret Service です。それ以外では、カーネルがユーザーごとに持つ永続キーリングを使います。これはメモリー上にあり、ディスクには書かれません。セッションは再起動するか数日使わないまで続き、その後はもう一度 erpc login を求められます。自分のログインを持たずに始めたシェル(- なしの su、sudo -E)ではこのキーリングを使えないため、erpc は理由を示して処理を断ります。

macOS の場合

erpc は /usr/bin/security を通してキーチェーンを使います。あなたとして動くほかのプログラムも、同じく security を実行すればセッションを読めます。一方でキーチェーンは、保存中のセッションを暗号化したまま保ち、ほかのユーザーからは読めないようにします。

セッションがディスクに置かれるとき

erpc がセッションを状態ディレクトリに書くのは 3 つの場合です。file ストアを使うとき、退避したセッション(ローテーションしたリフレッシュトークンがストアに届かなかったもの)のとき、書き込みが途中で止まった後です。こうしたファイルがある間は、erpc doctor がそれぞれを報告します。Unix ではこれらのファイルはモード 0600 で作られます。Windows では、erpc は独自の権限を設定しません。

ノードの鍵の置き場所

ノードの台帳と、各チェーンのガイドが挙げる元の鍵のバックアップは、1Password に置かれます。すべての鍵が 1Password にあるわけではなく、ノードが動くために必要な鍵をホストに持つこともあります。ホストにあるものは自分でバックアップしてください。バックアップなしにそのホストを作り直すと、失われます。また、稼働中の Sui のバリデータと、選出された TRON の witness は、新しいホストへの移動を受け付けません。
ノード1Password にあるものホストにあるもの
Solana バリデータ(native)自分で作ったアイデンティティと同期用のキーペア。投票アカウントと引き出し権限は、公開鍵としてだけ erpc に渡します同期用のキーペア(そのホスト向けに暗号化)と、--activate-validator 以降はアイデンティティも。投票アカウントと引き出しの鍵は取り込まれません
Solana バリデータ(solv)ステークされたアイデンティティと、公開鍵だけを渡した場合を除いて引き出し権限。投票アカウントの鍵は、アカウントの確認が済むと削除されます使い捨ての unstaked-identity.json(平文)。デプロイがステークされた鍵や引き出し権限をノードにコピーすることはありません
Solana RPC(native)自分で作ったアイデンティティ同じアイデンティティ(そのホスト向けに暗号化)
Solana RPC(solv)台帳そのホストで作ったアイデンティティ。ホストの外へは出ません
Ethereum バリデータ台帳キーストア、その解錠パスワード、スラッシングの履歴。バックアップの履歴はスナップショットの時点で止まるため、その後に署名した鍵を復元するとスラッシュされることがあります。署名者の移動は erpc v --chain eth migrate で行います
Arc RPCコンセンサスの鍵暗号化したコンセンサスの鍵
Avalancheステーキングの鍵と BLS の鍵のバックアップ最初のデプロイでそのホストで作った同じ鍵
Sui バリデータ自分のマシンで作った protocol・network・worker の鍵同じ 3 つの鍵(systemd-creds でそのホスト向けに暗号化)。アカウントの鍵は置きません
Sui フルノード台帳ネットワークの認証情報(そのホスト向けに暗号化)。ほかに写しはありません
TRON witness暗号化したキーストアとそのパスワード同じもの(暗号化した systemd の認証情報として)
Polygon バリデータinit が生成する署名者の鍵。ステーキングのオーナーの鍵は求めません同じ鍵(そのホスト向けに暗号化)。監視だけをしている間、ノードは別のアイデンティティで動きます
BNB Chain バリデータ署名に使う素材とピアのアイデンティティのバックアップ暗号化したキーストアに入ったコンセンサスの鍵、暗号化したウォレットに入った投票の鍵、そのホスト向けに暗号化したそれぞれのパスワード
Kaia バリデータ(コンセンサスノードまたはプロキシノード)ノードのアイデンティティのバックアップホストで作り、そのホスト向けに暗号化したノードのアイデンティティ。運用者のウォレットは erpc の外に置いたままです
Monad ノード(RPC またはバリデータ)元のキーストアの両方同じキーストア(そのホスト向けに暗号化)
Hyperliquid バリデータホットのコンセンサスの鍵。コールドのアカウントの鍵は求めませんホットの鍵(そのホスト向けに暗号化し、有効化したバリデータのユニットだけが読み込む)
Hyperliquid AQA パブリッシャー専用の API の鍵またはエージェントの鍵同じ鍵(そのホスト向けに暗号化)
NEAR バリデータコンセンサスの鍵同じ鍵(そのホスト向けに暗号化)
Arbitrum バリデータinit が生成するウォレットと、プロバイダーの認証情報暗号化したプロバイダーの認証情報と、--activate-signer 以降はウォレットも(root の所有で暗号化)
Robinhood Chain バリデータinit が生成するウォレットと、プロバイダーの設定暗号化したプロバイダーの設定と、--activate-signer 以降はウォレットも(root の所有で暗号化)
OP 系の RPC台帳とプロバイダーの値暗号化したプロバイダーの認証情報、engine JWT、ピアのアイデンティティ。オーナーの記録とホストの暗号化のシークレットはバックアップしてください
Nitro RPC台帳と上流の認証情報暗号化した上流の認証情報
ほかの RPC ノードはバリデータの署名鍵を持ちませんが、ホストにはクライアントが自分で作るもの(engine JWT、ピアのアイデンティティ、RPC の cookie など)が残ります。
鍵のバックアップだけでは、バリデータを安全に復旧できません。サーバーを入れ替えたりデータを復元したりする前に、そのチェーンの復旧手順に従ってください。鍵の復元の方法は各チェーンのガイドにあります(ノード)。
ノードの鍵を手元のマシンのディスクに書くコマンドが 1 つあります。erpc validator vote-account は、Solana CLI が動いている間、アイデンティティと投票の鍵を状態ディレクトリの下の 0600 のファイルに書き、終わったら消去します。プロセスが途中で落ちると、後の実行が片付けるまでファイルが残ることがあります。
erpc worker のアプリの取引用の鍵とシークレットは、これらとは別に置かれます。鍵とシークレットを見てください。

erpc が置くファイル

パス中身
~/.erpc/config.toml公開してよい設定(erpc config)
~/.erpc/state/セッションとロック(セッションをどう保存しているかは erpc doctor が表示)
~/.erpc/conversations/保存した ERPC AI の会話
~/.erpc/memory.jsonERPC AI が覚えていること
~/.erpc/vps_hosts.jsonERPC AI がログインした VPS のホスト鍵
~/.erpc/skills/erpc skills install が書いたスキル
~/.erpc/storage-keyストレージの暗号化の鍵(erpc login がセッションをファイルに置くとき)
~/.erpc/backup-password、~/.erpc/backup-admin-keyバックアップのマスターパスワードと read_write の鍵(erpc login がセッションをファイルに置くとき)
~/.erpc/keystore/ワーカーのキーストア。1Password も再起動の後まで残るキーチェーンもないマシンで、アプリのシークレットと取引用の鍵を、パスフレーズで暗号化したファイルに 1 つずつ置きます
~/.erpc/workers.tomlこのマシンの erpc worker のアプリの一覧
~/.erpc/backup.envこのマシンのバックアップの認証情報(0600)
~/.erpc/bin/restic-0.19.1erpc backup がインストールする、版を固定した restic