ERPC CLI 命令

一張表涵蓋 ERPC CLI 的所有命令群組,另有適用於每個命令的選項,以及指令碼可以依賴的退出碼。
本頁說明 ERPC CLI v0.1.0-rc.4,這是發行前版本。

命令群組

執行任何命令群組而不帶子命令(例如 erpc validator 或 erpc worker),即可列出其子命令。
命令作用
validator (v), rpc (r), node (n)Validator 與 RPC 節點
rpc call向共享、自訂或 x402 端點傳送一個 JSON-RPC 請求(RPC 呼叫與 Webhook)
webhook管理本機的 RPC 訂閱,並將事件傳遞到 HTTP 回呼
ai, resume, memory, skillsERPC AI,以及其已儲存的對話、記憶與技能
worker (w)伺服器上的您自己的應用
storage (st), backupERPC Global Storage 與機器備份(見下文)
wallet以 EURC 購買 ERPC Credit 的 Base 錢包(從錢包付款)
signup, login, logout, whoami您的 ERPC 帳戶(登入與金鑰)
doctor回報本機如何保存您的工作階段
config讀取並變更 ~/.erpc/config.toml(僅限公開設定)。erpc config init 會寫入一個附有註解的起始檔案,除非已經有一個
version版本、構建與元件資訊
completions產生 shell 自動補全:erpc completions zsh,也支援 bash、fish、powershell 與 elvish

全域選項

  • --json 提供機器可讀的輸出:erpc --json <command>。ERPC_JSON=true 具有相同效果。在節點命令中,--json 必須放在命令之前。
  • --lang 設定 erpc 使用的語言:en、ja、zh 或 ru。未指定時,erpc 會使用 locale 設定,否則使用系統的語言。

錯誤與退出碼

失敗在各處的呈現方式都相同:一行 error: 說明出了什麼問題,若有下一步可做,另有一行 hint: 說明該怎麼做。使用 --json 時,失敗會是標準輸出上的一個物件 {"error": {"code", "exit", "message", "hint"}}。有兩種情況會改為列印 clap 自身的訊息並以 2 退出:在終端機中 clap 無法解析的命令列,以及節點樹(erpc validator、rpc、node)的子命令不接受的參數,即使在 --json 下也是如此。details 欄位只會在命令需要向指令碼補充說明其失敗前做了什麼時出現,且絕不會在終端機中出現。
退出狀態代碼含義
0成功
1failed無法完成所要求的操作
2usage命令列無法使用
3needs_terminal需要有人回答:請傳入 --yes,或在終端機中執行
4not_signed_in請執行 erpc login
5problems_found檢查(status、doctor)發現了問題,其報告會說明是哪些
6declined您回答了「否」,且未做任何變更
7network無法連線到 ERPC 或其他服務
被 Ctrl-C(或 SIGTERM、SIGHUP)停止時,erpc 會以該訊號本身結束,因此指令碼中的迴圈也會停止。已公開的代碼會保留其名稱與退出狀態,且代碼絕不會被重複使用。

儲存與備份

bash
erpc storage buy 5        # an ERPC Global Storage plan
erpc backup init          # back this machine up with restic, on a schedule if you like
erpc storage buy 會購買 ERPC Global Storage 方案,以 ERPC Credit 支付。方案與價格請見價格。

erpc storage

  • erpc storage put 會在傳送任何內容之前,先在本機上加密檔案,除非指定了 --no-encrypt。ERPC 只儲存加密後的位元組,且絕不持有金鑰。erpc storage get 會識別加密的檔案並將其解密。
  • 每個帳戶有一把儲存金鑰,保存在 erpc login 所選的保存位置中。erpc 不會將其保存在 Linux 核心金鑰環中(該金鑰環在重啟後會遺失):請使用 --store 1password 或 --store file 登入,或使用 --no-encrypt。使用 file 保存位置時,金鑰以未加密的形式存放在 ~/.erpc/storage-key(模式 0600)中。--no-encrypt 會將您要傳送的檔案按原樣上傳,不加密。
  • 遺失儲存金鑰,就會遺失所有以它加密的檔案,且 ERPC 無法找回該金鑰。erpc storage key export --show 會列印金鑰,以便將副本保存在本機以外的地方,erpc storage key import 則可在另一台機器上將其匯入。
  • 檔案儲存時所使用的路徑及其大小,對 ERPC 是可見的。
  • erpc storage keys list 會顯示儲存存取金鑰,erpc storage keys revoke <n> 會撤銷其中一把。

erpc backup

erpc backup 使用 restic 將機器備份到 ERPC Global Storage。檔案在離開您的機器之前就會在本機加密,且 ERPC 絕不持有可開啟備份的密碼。
命令作用
erpc backup init安裝 restic、建立存取金鑰與儲存庫,並為本機配發專屬的 restic 金鑰
erpc backup run [paths]執行備份。在 Linux 上若未指定路徑,則備份 /,但排除虛擬檔案系統、掛載點與易變路徑。在其他系統上,請指定路徑
erpc backup snapshots本機的快照;使用 --all-hosts 可查看所有機器的快照
erpc backup restore <id|latest>恢復到新的目錄,除非 --target 指定了其他目錄。--in-place 會在詢問後覆寫本機
erpc backup check檢查儲存庫,並讀回 5% 的資料
erpc backup prune在詢問後,為單一機器保留 7 個每日、4 個每週與 6 個每月快照
erpc backup schedule daily|weekly|off [paths]依計時器在 --at(預設 03:00)執行 run
erpc backup status排程,以及上次執行的結束情況
erpc backup password --show列印儲存庫的主密碼,以便在其他地方保存副本
  • 每台機器都會取得一把僅能附加的金鑰,該金鑰無法刪除自身的備份。執行 erpc backup init 的那台機器也持有能夠刪除備份的金鑰,因此只有在既不保存 erpc 工作階段、也不保存帳戶備份 Secret 的機器上,這項保護才成立。
  • 請將 erpc backup password --show 的副本保存在這些機器以外的地方。遺失主密碼以及每台機器的 backup.env,就會遺失備份。
  • 備份會排除已知的金鑰檔案與系統 Secret,例如 .ssh/id_*、.config/solana/id.json、erpc 的工作階段與 SSH 主機金鑰。名稱不同或位於其他位置的金鑰資料,會像其他檔案一樣被備份:請使用 --exclude 將其排除。
  • erpc 會安裝 restic 0.19.1,並根據編譯在 erpc 中的 SHA-256 摘要,檢查封存檔與程式本身。
  • 排程:在 Linux 上,先執行 sudo erpc backup init,再執行 sudo erpc backup schedule daily。在 macOS 上,執行 erpc backup schedule daily ~/Documents;此工作會在您登入期間,以您的身分執行。
  • 備份會存放到帳戶的預設區域。erpc backup 在其所備份的機器上執行;worker 的伺服器則改用 erpc worker backup on 設定(備份應用的狀態資料)。