Развертывание ноды Solana

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1Все 1306 услуг
Развертывание ноды Solana
Средний
от 1 дня до 3 дней
Часто задаваемые вопросы

Направления блокчейн-разработки

Этапы блокчейн-разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1308
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1221
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    921
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1149
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    611
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    886

Развёртывание ноды Solana

Solana — одна из самых требовательных к ресурсам блокчейн-сетей для оператора ноды. Минимальные системные требования здесь — не приближённые ориентиры, а жёсткие практические ограничения: нода с недостаточным железом просто не будет успевать за сетью и отстанет от tip.

Требования к железу

Официальные требования Solana Foundation и реальный production минимум расходятся. Вот практические цифры на 2024–2025:

Компонент Минимум (RPC нода) Рекомендуется Validator
CPU 12 cores / 24 threads (AMD EPYC/Threadripper) 16+ cores 24+ cores
RAM 256 GB DDR4 512 GB 512 GB+
Storage OS 500 GB NVMe 1 TB NVMe 1 TB NVMe
Storage Accounts 2 TB NVMe (PCIe 4.0) 4 TB NVMe 4 TB NVMe
Storage Ledger 8 TB+ HDD/NVMe 12 TB 12 TB+
Network 1 Gbps 10 Gbps 10 Gbps

Почему так много RAM: Solana хранит account state в памяти (accounts DB). При 1.8+ млрд accounts в сети — это сотни гигабайт. Нода с 128 GB RAM не запустится стабильно.

Почему NVMe обязателен: скорость I/O критична. Нода должна обрабатывать тысячи транзакций в секунду, записывать ledger, отвечать на RPC запросы — всё одновременно. Rotational HDD для accounts/ledger — неприемлемо.

Установка и конфигурация

Подготовка системы

# Ubuntu 22.04 LTS — рекомендуемая OS
# Настройка sysctl для высокой нагрузки
cat >> /etc/sysctl.conf << EOF
net.core.rmem_max = 134217728
net.core.wmem_max = 134217728
net.core.rmem_default = 134217728
net.core.wmem_default = 134217728
net.core.optmem_max = 134217728
net.core.netdev_max_backlog = 65536
EOF
sysctl -p

# Лимиты для процесса solana-validator
cat >> /etc/security/limits.conf << EOF
solana soft nofile 1000000
solana hard nofile 1000000
solana soft memlock unlimited
solana hard memlock unlimited
EOF

# Hugepages для улучшения производительности памяти
echo 'vm.nr_hugepages = 131072' >> /etc/sysctl.conf

Установка Solana CLI

# Устанавливаем конкретную версию — не latest в production
SOLANA_VERSION="v1.18.26"
sh -c "$(curl -sSfL https://release.solana.com/${SOLANA_VERSION}/install)"

export PATH="/home/solana/.local/share/solana/install/active_release/bin:$PATH"
solana --version

Конфигурация RPC-ноды

# /home/solana/start-validator.sh
#!/bin/bash

exec solana-validator \
  --identity /home/solana/validator-keypair.json \
  --known-validator 7Np41oeYqpe1GAUzqNoFdJ5SAAQhphFp8s6XAXFCLRiE \
  --known-validator GdnSyH3YtwcxFvQrVVJMm1JhTS4QVX7MFsX56uJLUfiZ \
  --known-validator DE1bawNcRJB9rVm3buyMVDbezCfKkKa3aTEnDqeS89UB \
  --only-known-rpc \
  --rpc-port 8899 \
  --private-rpc \
  --dynamic-port-range 8000-8020 \
  --entrypoint mainnet-beta.solana.com:8001 \
  --entrypoint entrypoint2.mainnet.solana.com:8001 \
  --entrypoint entrypoint3.mainnet.solana.com:8001 \
  --expected-genesis-hash 5eykt4UsFv8P8NJdTREpY1vzqKqZKvdpKuc147dw2N9d \
  --wal-recovery-mode skip_any_corrupted_record \
  --ledger /mnt/ledger \
  --accounts /mnt/accounts \
  --snapshots /mnt/snapshots \
  --log /home/solana/solana-validator.log \
  --limit-ledger-size 50000000 \
  --no-voting \
  --enable-rpc-transaction-history \
  --enable-extended-tx-metadata-storage \
  --rpc-bind-address 0.0.0.0

Ключевые флаги:

  • --no-voting — RPC-нода, не валидатор (не нужен stake)
  • --limit-ledger-size 50000000 — ограничение размера ledger (~200 GB). Без этого ledger растёт неограниченно
  • --enable-rpc-transaction-history — хранить историю транзакций. Нужно для getTransaction RPC метода
  • --known-validator — доверенные валидаторы для initial sync. Обязательно для безопасности, иначе нода может синхронизироваться с fork

Первый запуск: snapshot sync

Синхронизация с genesis занимает недели. Используем snapshot:

# Скачиваем последний snapshot с официальных источников
# Список available snapshots: https://api.mainnet-beta.solana.com/
solana-validator \
  --ledger /mnt/ledger \
  download-latest-snapshot \
  --snapshot-dir /mnt/snapshots \
  --trusted-validators 7Np41oeYqpe1GAUzqNoFdJ5SAAQhphFp8s6XAXFCLRiE

После скачивания snapshot (~100+ GB) нода запускается и догоняет tip за несколько часов.

Мониторинг ноды

# Статус ноды
solana-validator --ledger /mnt/ledger monitor

# Информация о здоровье
curl -s http://localhost:8899 -X POST -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"getHealth"}' | jq .

# Отставание от tip (должно быть < 100 слотов в норме)
solana catchup --our-localhost 8899

Критичные метрики для мониторинга: slot lag (отставание от tip), skipped slots, memory usage (должно быть < 90% RAM), I/O wait.

Prometheus + Grafana: экспортёр solana-exporter публикует метрики в формате Prometheus. Dashboard доступен на Grafana Marketplace.

Типичные проблемы

Нода отстаёт и не может догнать tip: обычно проблема в I/O — accounts база не успевает. Проверяем iostat -x 1, если await > 50ms — нужен более быстрый NVMe.

OOM killer убивает процесс: 256 GB RAM на пределе. Решение: добавить swap на NVMe (не HDD), настроить vm.swappiness=10.

Нода форкается: проверяем --known-validator и --expected-genesis-hash. Нода без trusted validators уязвима к eclipse атакам.

Что входит в работу

  • Подготовка сервера: sysctl, limits, hugepages, разметка дисков
  • Установка и конфигурация solana-validator
  • Начальная синхронизация через snapshot
  • Настройка systemd сервиса и автоперезапуска
  • Мониторинг: Prometheus метрики, Grafana дашборд, алерты на slot lag