Solana Testnet Validator - Quickstart

Установка и запуск Validator

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

Развертывание Solana Testnet Firedancer Validator

🚀 Предварительные требования Подготовьте сервер с чистой установкой Ubuntu 24.04 LTS.
🔑 О работе с ключами Для новых развертываний SLV Firedancer в целях безопасности в качестве identity key изначально всегда используется unstaked-keypair.json.
Это best practice для предотвращения критических проблем, таких как double voting.
✅ Настройка identity после развертывания После развертывания обязательно задайте authorized identity key следующей командой:
bash
slv v set:identity -n testnet --pubkey <name>

Подготовка Baremetal Server для Testnet

Хотя запуск Solana nodes на VPS или виртуальных машинах (VM) возможен, на практике добиться оптимальной производительности и стабильности сложно. Solana официально рекомендует использовать baremetal servers, которые обеспечивают гораздо более высокую производительность, чем виртуализированные среды.
Поскольку нагрузка в testnet ниже, чем в mainnet, нами подтверждена стабильная работа на серверах с 16-core Ryzen CPU и 128GB DDR5 RAM. Использование такой конфигурации помогает снизить операционные расходы, поэтому она рекомендуется.
Когда вы запускаете команду slv v init, система спросит, настроен ли ваш baremetal server:
bash
 slv v init
? Select Solana Network (testnet) › testnet
? 🛡️ Do you have a Solana Node Compatible Server? (no)
 yes
  no
Это руководство предполагает, что вы выбираете yes.
Если вы еще не подготовили baremetal server, обратитесь к руководству по настройке Baremetal Server, чтобы завершить подготовку.

Введите стандартное имя пользователя сервера

В большинстве случаев стандартное имя пользователя — ubuntu или root.
bash
? What's the user for the server? (ubuntu) › ubuntu

Введите IP-адрес сервера

Введите IP-адрес сервера.
bash
? What's the IP address of the server? ›

Укажите RSA Key для SSH

※ Укажите путь к вашему RSA key. Путь по умолчанию — ~/.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 Validator

Выберите тип Solana validator.
bash
? Select Validator Type (firedancer-jito)
  agave
  jito
  jito-bam
  firedancer-agave
 firedancer-jito

Сгенерируйте или задайте Solana Validator Identity Key

Вы можете сгенерировать новый identity key или задать существующий identity key. В этом примере показано, как задать существующий identity key с именем "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
Поместите ваш identity key в ~/.slv/keys/<your-pubkey>.json. После этого SLV создаст пользователя solv с использованием пароля.

Автоматическое определение региона

Далее система выполнит ping до каждого block engine с настроенного узла, чтобы автоматически определить ближайший регион. Измеряя фактические значения 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 Validator Vote Account Key

Вы можете сгенерировать новый vote account key или задать существующий vote account key. В этом примере показано, как задать существующий vote account key.
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.

Разверните validator

После подтверждения конфигурации начнется развертывание.
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 Validator развернут. Для синхронизации с сетью Solana потребуется некоторое время.

Отладка и мониторинг

После развертывания вы можете выполнять отладку и мониторинг внутри Solana RPC node. Состояние Solana RPC node можно проверить следующими командами:
bash
$ solv m
solv — это alias для agave-validator -l /mnt/ledger. Эта настройка добавляется в ~/.profile во время развертывания RPC node.

Смена Identity Key

После развертывания вам нужно заменить unstaked key на authorized identity key.
bash
slv v set:identity -n testnet --pubkey epics-test
Эта команда установит identity key с вашего локального компьютера, находящийся по пути:
~/.slv/keys/<name>.json

Перезапуск Firedancer

Если у вас возникли проблемы с validator, вы можете перезапустить firedancer следующей командой.
Опция --rm остановит validator, удалит каталоги ledger и snapshot, загрузит snapshot с помощью snapshot finder, а затем снова запустит validator.
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