Solana Testnet Validator - 빠른 시작

설치 및 검증자 시작

bash
curl -fsSL https://storage.slv.dev/slv/install | sh
slv validator init
slv validator deploy

Solana Testnet Firedancer 검증자 배포

🚀 전제 조건 Ubuntu 24.04 LTS가 클린 설치된 서버를 준비하세요.
🔑 키 처리에 대해 SLV Firedancer 신규 배포에서는 보안을 위해 처음에는 항상 unstaked-keypair.json이 아이덴티티 키로 사용됩니다.
이는 이중 투표와 같은 중대한 문제를 방지하기 위한 모범 사례입니다.
✅ 배포 후 아이덴티티 설정 배포 후에는 반드시 다음 명령으로 인증된 아이덴티티 키를 설정하세요:
bash
slv v set:identity -n testnet --pubkey <name>

Testnet용 베어메탈 서버 준비

VPS나 가상 머신(VM)에서 Solana 노드를 실행하는 것도 가능하지만, 실제로 최적의 성능과 안정성을 달성하기는 어렵습니다. Solana는 가상화 환경보다 훨씬 높은 성능을 제공하는 베어메탈 서버 사용을 공식적으로 권장합니다.
테스트넷 환경은 메인넷에 비해 부하가 낮기 때문에, 16코어 Ryzen CPU와 128GB DDR5 RAM의 서버로 안정적인 운영을 확인했습니다. 이 서버 구성을 사용하면 운영 비용 절감에 도움이 되므로 권장됩니다.
slv v init 명령을 실행하면 베어메탈 서버가 이미 설정되어 있는지 묻습니다:
bash
➜ slv v init
? Select Solana Network (testnet) › testnet
? 🛡️ Do you have a Solana Node Compatible Server? (no)
❯ yes
  no
이 튜토리얼에서는 yes를 선택했다고 가정합니다.
아직 베어메탈 서버를 준비하지 않았다면 베어메탈 서버 설정 가이드를 참조하여 설정을 완료하세요.

서버 기본 사용자명 입력

대부분의 경우 기본 사용자명은 ubuntu 또는 root입니다.
bash
? What's the user for the server? (ubuntu) › ubuntu

서버 IP 주소 입력

서버의 IP 주소를 입력합니다.
bash
? What's the IP address of the server? ›

SSH용 RSA 키 설정

※ RSA 키의 경로를 설정하세요. 기본 경로는 ~/.ssh/id_rsa입니다. 현재는 기본 경로만 지원되므로 그대로 설정하세요.
bash
? What's the path to your RSA key? (~/.ssh/id_rsa) › ~/.ssh/id_rsa
🔍 Checking SSH connection...
✔︎ SSH connection succeeded
그러면 SLV가 서버와의 연결을 확인합니다. 연결에 성공하면 다음 단계가 표시됩니다.

Solana 검증자 타입 선택

Solana 검증자의 타입을 선택합니다.
bash
? Select Validator Type (firedancer-jito)
  agave
  jito
  jito-bam
  firedancer-agave
❯ firedancer-jito

Solana 검증자 아이덴티티 키 생성 또는 설정

새 아이덴티티 키를 생성하거나 기존 아이덴티티 키를 설정할 수 있습니다. 이 예제에서는 "epics-test"라는 이름으로 기존 아이덴티티 키를 설정하는 방법을 보여줍니다.
bash
? Do you want to create a new identity key now? (Y/n) › No
? Please Enter Your Identity Public Key › TKMNqvfwb7PKkc9KFEJJ8EaNK9s5XjNWgFS6oyqSLkp
? Enter Inventory Name (TKMNqvfwb7PKkc9KFEJJ8EaNK9s5XjNWgFS6oyqSLkp) › epics-test
⚠️ Please place your identity key in

  ~/.slv/keys/TKMNqvfwb7PKkc9KFEJJ8EaNK9s5XjNWgFS6oyqSLkp.json
.
.
✔︎ Success
✔ Inventory updated to ~/.slv/inventory.yml
✔ Successfully created solv user on x.x.x.x
아이덴티티 키를 ~/.slv/keys/<your-pubkey>.json에 배치하세요. 그러면 SLV가 비밀번호를 사용하여 solv 사용자를 생성합니다.

자동 리전 감지

다음으로 시스템이 구성된 노드에서 각 블록 엔진으로 ping을 보내 가장 가까운 리전을 자동으로 감지합니다. 실제 ping 값을 측정하여 최적의 리전을 선택할 수 있습니다.
bash
📍 Measuring latencies from x.x.x.x to testnet regions...
  Pinging Dallas (dallas.testnet.block-engine.jito.wtf)...
  Pinging New York (ny.testnet.block-engine.jito.wtf)...
  ✅ New York: 74.341 ms
  ✅ Dallas: 114.722 ms

🎯 Nearest region: 🇺🇸 New York
   Latency: 74.341 ms
   Block Engine: https://ny.testnet.block-engine.jito.wtf
   Shred Receiver: 64.130.35.224:1002
   Relayer: http://ny.testnet.relayer.jito.wtf:8100
   NTP Server: ntp.dallas.jito.wtf

Solana 검증자 Vote 계정 키 생성 또는 설정

새 vote 계정 키를 생성하거나 기존 vote 계정 키를 설정할 수 있습니다. 이 예제에서는 기존 vote 계정 키를 설정하는 방법을 보여줍니다.
bash
? Do you want to create a new vote account key now? (Y/n) › No
? Please Enter Your Vote Account Public Key > <your-vote-account>
구성이 ~/.slv/inventory.testnet.validators.yml에 저장되었습니다.

검증자 배포

구성을 확인하면 배포가 시작됩니다.
bash
slv v deploy -n testnet
먼저 구성 확인이 표시됩니다. Yes를 선택하여 계속하세요.
bash
Your Testnet Validators Settings:
┌────────────────┬──────────────────────────────────────────────┐
│ Identity Key   │ TKMNqvfwb7PKkc9KFEJJ8EaNK9s5XjNWgFS6oyqSLkp  │
├────────────────┼──────────────────────────────────────────────┤
│ Vote Key       │ 6XdQ6szHJjm1t3XbgahSS6WVEhsrs5fniZbLgfkN1QWn │
├────────────────┼──────────────────────────────────────────────┤
│ Authority Key  │ authAccount                                  │
├────────────────┼──────────────────────────────────────────────┤
│ IP             │ x.x.x.x.                                     │
├────────────────┼──────────────────────────────────────────────┤
│ Validator Type │ jito                                         │
├────────────────┼──────────────────────────────────────────────┤
│ Version        │ 3.0.7-jito                                   │
└────────────────┴──────────────────────────────────────────────┘
? Do you want to continue? (Y/n) › Yes
완료되었습니다! Solana 검증자가 배포되었습니다. Solana 네트워크와 동기화되는 데 시간이 걸립니다.

디버깅 및 모니터링

배포 후 Solana RPC 노드 내에서 디버깅하고 모니터링할 수 있습니다. 다음 명령으로 Solana RPC 노드의 상태를 확인할 수 있습니다:
bash
$ solv m
solv는 agave-validator -l /mnt/ledger의 alias입니다. 이 설정은 RPC 노드 배포 시 ~/.profile에 추가됩니다.

아이덴티티 키 변경

배포 후에는 unstaked 키를 인증된 아이덴티티 키로 변경해야 합니다.
bash
slv v set:identity -n testnet --pubkey epics-test
이 명령은 로컬 컴퓨터의 다음 위치에서 아이덴티티 키를 설정합니다:
~/.slv/keys/<name>.json

Firedancer 재시작

검증자에 문제가 있는 경우 다음 명령으로 firedancer를 재시작할 수 있습니다.
--rm 옵션은 검증자를 중지하고, ledger와 snapshot 디렉토리를 삭제하고, snapshot finder로 스냅샷을 다운로드한 다음 검증자를 시작합니다.
bash
slv v restart -n testnet --pubkey <name> --rm

SLV Validator 명령

bash
slv validator --help
Usage:   slv validator
Version: 0.9.700

Description:

  🛠️ Manage Solana Validator Nodes 🛠️

Options:

  -h, --help  - Show this help.

Commands:

  init               - 🚀 Initialize a new validator configuration
  deploy             - 📦 Deploy Validators
  list               - 📋 List validators
  set:identity       - 🪪  Set Validator Identity
  set:unstaked       - 📴 Set Validator Identity to Unstaked Key
  setup:firedancer   - 🔥 Setup/Update Firedancer Validator
  update:firedancer  - 🔄 Update Firedancer Version
  build:solana-cli   - 🛠️ Build Solana CLI from Source
  install:solana     - ➡️ Install Solana CLI Binary
  update:script      - ⚙️  Update Validator Startup Config
  update:jinja       - 🧩 Update Jinja Template
  start              - 🟢 Start Validator
  stop               - 🔴 Stop Validator
  restart            - ♻️  Restart Validator
  cleanup            - 🧹 Cleanup Validator - Remove Ledger/Snapshot Unnecessary Files
  get:snapshot       - 💾 Download Snapshot with aria2c
  gen:vote-account   - 🗳️  Generate Vote Account
  switch             - 🔁 Switch Validator Identity - No DownTime Migration