Solana Testnet Validator - Quickstart
Установка и запуск Validator
bash
curl -fsSL https://storage.slv.dev/slv/install | sh
slv validator init
slv validator deploycurl -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>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➜ 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? What's the user for the server? (ubuntu) › ubuntuВведите IP-адрес сервера
Введите IP-адрес сервера.
bash
? What's the IP address of the server? ›? 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? 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? 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? 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📍 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>? 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 testnetslv 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) › YesYour 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 msolv — это 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-testslv 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> --rmslv 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 Migrationslv 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