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 进行设置(备份应用的状态数据)。