Розгортання ноди 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 з офіційних джерел
# Список доступних 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