---
title: "erpc validator와 erpc rpc로 validator와 RPC 노드 실행하기"
description: "erpc rpc는 18개 체인에서 RPC 노드를, erpc validator는 13개 체인에서 validator를 실행합니다. 모든 체인에서 같은 하위 명령을 쓰며 ERPC 계정이 필요 없습니다."
canonical: "https://erpc.global/ko/doc/erpc-cli/nodes/"
locale: "ko"
---

# erpc validator와 erpc rpc로 validator와 RPC 노드 실행하기

`erpc rpc`는 18개 체인에서 RPC 노드를, `erpc validator`는 그중 13개 체인에서 validator를 실행합니다. 모든 체인이 같은 하위 명령을 사용하며, 이 노드 수명 주기 명령은 무료이고 계정이 필요 없습니다.

이 페이지는 프리릴리스인 ERPC CLI `v0.1.0-rc.4`를 설명합니다. 실제 호스트에서의 검수는 아직 진행 중입니다. 각 체인의 상태는 [각 체인의 현황](https://erpc.global/ko/doc/erpc-cli/nodes/#각-체인의-현황)과 각 체인의 가이드에 나와 있습니다.

## 노드 배포하기

`init`은 서버를 준비하고, `deploy`는 노드를 설치하고 시작합니다. Ethereum RPC 노드는 아무것도 설치되지 않은 Ubuntu 서버(24.04 이상)에서 시작합니다:

```bash
# check the server, pin the client releases, store the node in 1Password
erpc rpc --chain ethereum -n mainnet --name eth1 init --host <address> --vault <vault id> --ssh-key ~/.ssh/id_ed25519.pub
# install, fetch a snapshot, apply the firewall, start
erpc rpc --chain ethereum -n mainnet --name eth1 deploy --ssh-key ~/.ssh/id_ed25519.pub
# both layers, sync and head
erpc rpc --chain ethereum -n mainnet --name eth1 status --ssh-key ~/.ssh/id_ed25519.pub
```

일부 체인은 먼저 더 많은 준비가 필요하며, 무엇이 필요한지는 각 체인의 가이드에 나와 있습니다. 새 Solana validator 또는 RPC 노드에는 파일 시스템 세 개가 마운트되어 있어야 하고, 키가 이미 1Password에 있어야 합니다.

## 체인, 네트워크, 호스트 선택하기

체인은 `--chain`, `ERPC_CHAIN` 또는 `default_chain` 설정으로, 네트워크는 `-n`으로, 호스트는 `--name`으로 선택하세요. 메인넷 노드를 변경할 때는 명령줄에 `--chain`을 직접 적어야 합니다.

- `erpc validator`(별칭 `v`), `erpc rpc`(별칭 `r`), `erpc node`(별칭 `n`, Avalanche와 Sui용)가 노드 명령을 실행합니다.
- 명령 그룹을 하위 명령 없이 실행하면(`erpc validator`) 그 그룹의 하위 명령이 나열됩니다.
- 노드 명령에서는 `--json`을 명령보다 앞에 두어야 합니다: `erpc --json rpc …`.

## 모든 체인에서 동작하는 명령

| 하위 명령 | 하는 일 |
| --- | --- |
| `init` | 서버를 검사하고, 클라이언트 버전을 고정하고, 노드를 1Password에 저장하고, 호스트를 준비합니다 |
| `deploy` | 클라이언트를 설치하거나 빌드하고, 스냅샷을 가져오고, erpc에 해당 노드용 방화벽이 있으면 방화벽을 적용한 뒤, 노드를 시작합니다 |
| `list`, `status`, `logs` | 인벤토리, 상태, 저널 |
| `start`, `stop`, `restart` | 서비스 제어. 계층이 여러 개인 노드는 올바른 순서로 제어합니다 |
| `update` | 다른 클라이언트 버전으로 옮깁니다. 롤백 정책은 클라이언트에 따라 다릅니다 |
| `update-config` | 체인의 재시작 규칙에 따라 설정 및 접근 권한 변경을 적용합니다 |
| `plan` | 체인의 배포 계획 또는 설정 계획을 보여 줍니다 |
| `destroy` | 소유한 서비스를 중지하거나 폐기합니다. 데이터, 키, 방화벽을 남길지는 체인의 운영 가이드를 따릅니다 |

solv 백엔드에 기록된 Solana validator에서는 이 중 `init`, `deploy`, `list`, `status`만 사용할 수 있습니다.

## 체인과 가이드

| 체인 | RPC 노드 | Validator | 네트워크 | 가이드 |
| --- | --- | --- | --- | --- |
| Solana | `erpc rpc --chain solana` | `erpc validator --chain solana` | mainnet, testnet | [운영](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/solana-native.md), [등록](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/solana-registration.md), [체인](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/solana.md) |
| Ethereum | `erpc rpc --chain eth` (mainnet, `--type full` 또는 `archive`) | `erpc validator --chain eth` (Hoodi, mainnet) | mainnet, Hoodi | [RPC](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/ethereum-rpc.md), [Validator](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/ethereum-validator.md), [체인](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/ethereum.md) |
| Base | `erpc rpc --chain base` | | mainnet, sepolia | [체인](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/base.md) |
| Avalanche | `erpc rpc --chain avax` (`erpc node`도 가능) | `erpc validator --chain avax` | mainnet, fuji | [운영](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/avalanche.md), [체인](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/avalanche.md) |
| Bitcoin | `erpc rpc --chain bitcoin` | | mainnet, testnet4, signet, regtest | [RPC](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/bitcoin-rpc.md), [체인](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/bitcoin.md) |
| Polygon | `erpc rpc --chain polygon` | `erpc validator --chain polygon` | mainnet, amoy | [RPC](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/crates/erpc-chain-polygon/templates/README.md), [Validator](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/polygon-validator.md), [체인](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/polygon.md) |
| BNB Chain | `erpc rpc --chain bsc` | `erpc validator --chain bsc` | mainnet, chapel | [RPC](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/bsc-rpc.md), [Validator](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/bsc-validator.md), [체인](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/bsc.md) |
| Kaia | `erpc rpc --chain kaia` | `erpc validator --chain kaia` | mainnet, kairos | [RPC](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/kaia-rpc.md), [Core cell](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/kaia-core-cell.md), [체인](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/kaia.md) |
| Arbitrum | `erpc rpc --chain arbitrum` (mainnet, nova, sepolia) | `erpc validator --chain arbitrum` (Arbitrum One mainnet만) | mainnet, nova, sepolia | [RPC](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/nitro-rpc.md), [Validator](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/arbitrum-validator.md), [체인](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/arbitrum.md) |
| Optimism | `erpc rpc --chain optimism` | | mainnet, sepolia | [운영](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/op-follower-rpc.md), [체인](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/optimism.md) |
| Hyperliquid | `erpc rpc --chain hyperliquid` | `erpc validator --chain hyperliquid` | mainnet, testnet | [RPC](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/hyperliquid-rpc.md), [Validator](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/hyperliquid-validator.md), [AQA](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/hyperliquid-aqa.md), [체인](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/hyperliquid.md) |
| Monad | `erpc rpc --chain monad` | `erpc validator --chain monad` | mainnet, testnet | [운영](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/monad-node.md), [체인](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/monad.md) |
| TRON | `erpc rpc --chain tron` | `erpc validator --chain tron` | mainnet, nile | [운영](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/crates/erpc-chain-tron/templates/README.md), [체인](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/tron.md) |
| Sui | `erpc rpc --chain sui` (`erpc node`도 가능) | `erpc validator --chain sui` | mainnet, testnet | [운영](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/crates/erpc-chain-sui/templates/README.md), [체인](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/sui.md) |
| NEAR | `erpc rpc --chain near` | `erpc validator --chain near` | mainnet, testnet | [RPC](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/near-rpc.md), [Validator](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/near-validator.md), [체인](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/near.md) |
| Arc | `erpc rpc --chain arc` | | mainnet, testnet | [RPC 런타임](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/arc-runtime.md), [체인](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/arc.md) |
| Robinhood Chain | `erpc rpc --chain robinhood` | `erpc validator --chain robinhood` | mainnet, testnet | [참여 승인](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/robinhood-admission.md), [Validator](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/robinhood-defensive-validator.md), [체인](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/robinhood.md) |
| Soneium | `erpc rpc --chain soneium` | | mainnet, minato | [체인](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/soneium.md) |

[노드 실행](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/nodes.md)에 체인별 클라이언트가 나와 있습니다.

## erpc가 서버에 요구하는 것

- erpc는 1Password SSH 에이전트 또는 `SSH_AUTH_SOCK`에 있는 사용자의 키를 사용해 sudo 사용자(기본값 `ubuntu`)로 SSH 로그인하며, 처음 접속할 때 호스트 키를 고정합니다.
- 서버에는 `/usr/bin/python3`와, `sudo` 실행 시 비밀번호를 묻지 않는 로그인 계정이 필요합니다.
- `/opt`는 Ubuntu가 기본으로 제공하는 상태 그대로, root가 소유하고 그룹과 다른 사용자가 쓸 수 없는 실제 디렉터리로 이미 존재해야 합니다. erpc는 이 디렉터리를 만들지 않습니다. `/opt/erpc`와 erpc가 그 안에 만드는 `runs`, `uploads` 디렉터리에도 같은 규칙이 적용되며, 이 중 어느 것도 심볼릭 링크여서는 안 됩니다. 다른 볼륨에 두려면 그 볼륨을 `/opt/erpc`에 마운트하세요. 노드의 경우 `/opt/erpc`가 있는 파일 시스템이 POSIX ACL도 유지해야 하며(ext4와 XFS는 기본적으로 유지합니다), 그렇지 않으면 erpc가 중단됩니다.
- 새 Solana 호스트에는 Ubuntu 24.04, systemd 255, 그리고 AVX2와 SHA CPU 기능을 갖춘 x86-64가 필요합니다. ERPC는 Solana RPC 노드에 최소 32개의 논리 스레드와 480 GiB의 사용 가능한 메모리를, 메인넷 validator에 24개 스레드와 300 GiB를, 테스트넷 validator에 24개 스레드와 120 GiB를 요구합니다.

## erpc가 노드를 실행하는 방식

- 대부분의 체인은 클라이언트를 로그인할 수 없는 전용 사용자로 실행하고, 각 버전을 설치하기 전에 고정된 체크섬과 대조하며, 새 관리 연결이 확인해야 하는 타이머가 걸린 롤백과 함께 nftables 방화벽을 적용합니다. 모든 체인이 그런 것은 아닙니다. 새 Solana 노드는 고정된 소스 커밋으로 서버에서 빌드되며, solv 백엔드에 기록된 Solana 노드는 비밀번호 없는 sudo를 가진 로그인 사용자로 실행되고 일부 도구를 체크섬 없이 가져옵니다.
- erpc는 solv 백엔드의 Solana validator, Ethereum validator, Bitcoin 노드에는 방화벽을 적용하지 않으므로, 이 호스트들의 필터링은 사용자가 직접 해야 합니다.
- 네트워크를 변경하는 동안 호스트에 접근할 수 있는 독립된 수단을 확보해 두세요.
- 보호된 서비스의 drop-in 디렉터리에 `systemctl edit`으로 만든 `override.conf` 같은 다른 파일이 있는 동안에는 방화벽 단계가 진행을 거부하고 아무것도 변경하지 않습니다. 사용자의 drop-in 파일을 디렉터리 밖으로 옮긴 뒤 명령을 다시 실행하세요.
- 사용자의 머신에서 보내는 시크릿은 표준 입력으로 서버에 전달되며, 명령줄에는 절대 올라가지 않습니다.
- 새 Solana validator는 투표가 비활성화된 별도의 identity로 동기화합니다. `deploy --activate-validator`는 공개 등록 및 네이티브 BLS 검사를 거친 뒤, 정상 상태의 호스트를 원래 등록된 identity로 전환합니다. `--backend solv`는 기존 solv 호스트를 재개하며, 새 호스트를 만들 수는 없습니다.
- Ethereum validator의 서명자를 백업에서 복원하지 마세요. 서명자는 `erpc v --chain eth migrate`로 이전하세요.

[로그인 및 키](https://erpc.global/ko/doc/erpc-cli/sign-in-and-keys/#노드-키가-보관되는-위치)에서 각 노드가 1Password와 호스트에 어떤 키를 보관하는지 확인할 수 있습니다.

## 각 체인의 현황

표의 모든 체인에서 구현은 오프라인으로 검사되며, 실제 호스트에서의 라이브 검수는 미뤄져 있습니다. RPC 명령 라우팅 검사는 18개 체인 전부에 대해 공통 하위 명령 12개를 모두 실행해 보지만, 이 검사 중 어느 것도 실제 호스트에서 노드를 실행하지 않습니다. 각 체인의 현황은 [체인 소스 맵](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/chains/README.md)의 해당 체인 페이지에 나와 있습니다.
