Развертывание ноды Solana: настройка и оптимизация RPC-доступа

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

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

Часто задаваемые вопросы

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

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

Почему запуск ноды Solana — нетривиальная задача

В нашей практике мы сталкивались с ситуациями, когда клиент закупал сервер по официальным минимальным требованиям, но нода отставала от tip уже через неделю. Solana — один из самых требовательных блокчейнов к ресурсам: минимальные системные требования это не приблизительные рекомендации, а жёсткий порог, за которым нода просто не успевает за сетью и деградирует. Неправильный выбор диска, недостаток RAM или экономия на сетевом канале приводят к постоянным форкам и потере RPC-стабильности. Мы настраивали ноды для DeFi-проектов, обрабатывающих тысячи запросов в секунду, и выработали конфигурацию, позволяющую держать slot lag ниже 10 слотов.

Требования к железу: что реально нужно

Официальные требования Solana Foundation и реальный production-minimum расходятся. Практические цифры на текущий момент:

Компонент Минимум (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+ NVMe/HDD 12 TB NVMe 12 TB+ NVMe
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 неприемлемы: они проигрывают NVMe в 50 раз по пропускной способности случайного доступа.

Как выбрать оптимальную конфигурацию для RPC-ноды?

Если вам нужен RPC-узел без голосования, можно сэкономить на CPU (12 cores достаточно), но не на RAM и дисках. Для коммерческого RPC, обслуживающего десятки тысяч запросов, берите 512 GB RAM и 4 TB NVMe с PCIe 4.0. Network — обязательно 10 Gbps, иначе клиенты будут жаловаться на таймауты. Правильная конфигурация окупается за счёт отсутствия простоев — одна минута даунтайма может стоить $1000 для DeFi-проекта. Свяжитесь с нами, чтобы подобрать оптимальное железо под вашу нагрузку.

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

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

# 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)
  • --known-validator — доверенные валидаторы для initial sync. Обязательно для безопасности, иначе нода может синхронизироваться с fork

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

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

# Скачиваем последний 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, skipped slots, memory usage (должно быть < 90% RAM), I/O wait.

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

Какие метрики указывают на проблемы?

Если slot lag превышает 1000 слотов, а skipped slots растут — это сигнал, что нода не справляется с нагрузкой. Смотрите на I/O wait: если он > 30%, диск становится узким местом. RAM при полной загрузке accounts базы — следите за приближением к 90%. Настройте алерты в Grafana на эти пороги.

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

Нода отстаёт и не может догнать 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 атакам.

Как мы настраиваем Solana-ноду: этапы работы

Мы предлагаем развертывание ноды Solana под ключ, от анализа требований до передачи в эксплуатацию.

Этап Длительность Что делаем
Аналитика 1–2 дня Обсуждаем задачи: RPC или валидатор, ожидаемая нагрузка, бюджет
Проектирование 1 день Подбираем железо, сетевую конфигурацию, схему мониторинга
Реализация 2–3 дня Настраиваем сервер: OS, sysctl, hugepages, диски; устанавливаем solana-validator, создаём сервис systemd
Тестирование 1 день Проверяем синхронизацию, нагрузочное тестирование RPC, мониторинг
Деплой 1 день Запуск в production, настройка алертов, передача документации

Сроки ориентировочные от 4 до 8 рабочих дней. Стоимость рассчитывается индивидуально — зависит от сложности и выбранного железа. Свяжитесь с нами для оценки проекта.

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

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

Закажите настройку ноды Solana — мы обеспечим стабильный RPC-доступ с минимальным временем простоя. Получите консультацию инженера.