Команды ERPC CLI

Все группы команд ERPC CLI в одной таблице, опции, которые работают с любой командой, и коды завершения, на которые может полагаться скрипт.
Эта страница описывает ERPC CLI v0.1.0-rc.4 — пререлиз.

Группы команд

Запустите любую группу команд без подкоманды, например erpc validator или erpc worker, чтобы вывести список её подкоманд.
КомандаЧто делает
validator (v), rpc (r), node (n)Валидаторы и RPC-ноды
rpc callОтправляет один JSON-RPC-запрос на общий, собственный или x402 endpoint (Вызовы RPC и вебхуки)
webhookУправляет локальными подписками RPC и доставляет события на HTTP-адрес обратного вызова
ai, resume, memory, skillsERPC AI, его сохранённые диалоги, запомненные факты и навыки
worker (w)Ваши собственные приложения на сервере
storage (st), backupERPC Global Storage и резервные копии машин (ниже)
walletКошелёк в сети Base, через который покупается ERPC Credit за EURC (Оплата из кошелька)
signup, login, logout, whoamiВаш аккаунт ERPC (Вход и ключи)
doctorСообщает, как эта машина хранит вашу сессию
configЧитает и изменяет ~/.erpc/config.toml (только публичные настройки). erpc config init записывает стартовый файл с комментариями, если такого файла ещё нет
versionВерсия, сборка и сведения о компонентах
completionsГенерирует автодополнение для оболочки: 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 никогда нет. erpc storage get распознаёт зашифрованный файл и расшифровывает его.
  • На каждый аккаунт приходится один ключ хранилища, и он находится в месте хранения, которое выбрал erpc login. erpc не держит его в keyring ядра 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 создаёт резервную копию машины в ERPC Global Storage с помощью restic. Файлы шифруются на вашей машине до того, как покинут её, и у 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]Запускает run по таймеру в момент, заданный --at (по умолчанию 03:00)
erpc backup statusРасписание и то, чем закончился последний запуск
erpc backup password --showВыводит мастер-пароль репозитория, чтобы сохранить его копию в другом месте
  • Каждая машина получает ключ только для добавления, который не может удалить её собственные резервные копии. Машина, на которой вы выполнили erpc backup init, также хранит ключи, которые это могут, поэтому защита действует только на машине, где нет ни сессии erpc, ни секретов резервного копирования аккаунта.
  • Храните копию вывода erpc backup password --show вдали от машин. Потеря мастер-пароля и backup.env каждой машины означает потерю резервных копий.
  • Резервная копия не включает известные файлы ключей и системные секреты, например .ssh/id_*, .config/solana/id.json, сессию erpc и ключи хоста SSH. Ключевой материал под другим именем или в другом месте копируется как любой другой файл: исключите его с помощью --exclude.
  • erpc устанавливает restic 0.19.1 и проверяет и архив, и программу по дайджестам SHA-256, встроенным в erpc при сборке.
  • Расписание: в Linux — sudo erpc backup init, затем sudo erpc backup schedule daily. В macOS — erpc backup schedule daily ~/Documents; задание выполняется от вашего имени, пока вы вошли в систему.
  • Резервные копии отправляются в регион аккаунта по умолчанию. erpc backup работает на той машине, резервную копию которой создаёт; сервер воркера вместо этого настраивается через erpc worker backup on (Резервное копирование состояния приложения).