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로컬 RPC 구독을 관리하고 이벤트를 HTTP 콜백으로 전달합니다
ai, resume, memory, skillsERPC AI와 저장된 대화, 기억, 스킬
worker (w)서버에서 실행하는 자체 앱
storage (st), backupERPC Global Storage와 머신 백업(아래)
walletEURC로 ERPC Credit을 구매하는 Base 지갑(지갑에서 결제)
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_inerpc login을 실행하세요
5problems_found검사(status, doctor)에서 문제가 발견되었으며, 어떤 문제인지는 보고서에 나와 있습니다
6declined사용자가 거절했으며, 아무것도 변경되지 않았습니다
7networkERPC 또는 다른 서비스에 연결할 수 없었습니다
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 Credit으로 결제하는 ERPC Global Storage 요금제를 구매합니다. 요금제와 가격은 요금제에 나와 있습니다.

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 initrestic을 설치하고, 액세스 키와 리포지토리를 만들고, 이 머신에 전용 restic 키를 부여합니다
erpc backup run [paths]백업합니다. Linux에서 경로를 지정하지 않으면 의사 파일 시스템, 마운트, 휘발성 경로를 제외한 /를 백업합니다. 다른 OS에서는 경로를 지정하세요
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 세션과 계정의 백업 시크릿을 어느 쪽도 보관하지 않는 머신에서만 유효합니다.
  • erpc backup password --show의 출력 사본을 머신들과 떨어진 곳에 보관하세요. 마스터 비밀번호와 모든 머신의 backup.env를 잃으면 백업을 잃게 됩니다.
  • 백업은 알려진 키 파일과 시스템 시크릿을 제외합니다. .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으로 설정합니다(앱의 상태 데이터 백업).