OffshoreVps
Инструкции17 окт. 20267 мин чтенияАвтор: команда OffshoreVps

Запуск RPC-узла Solana: требования и настройка

Что на самом деле нужно валидатору или RPC-узлу Solana, как настроить систему, запустить RPC-узел с клиентом Agave и когда разумнее выбрать вариант поменьше.

Solana — самый требовательный блокчейн для самостоятельного запуска. Валидатору или полной RPC-ноде нужны очень быстрый процессор, много ОЗУ и быстрые диски NVMe, а требования постоянно меняются. В этом руководстве объясняется, что это значит на практике, чтобы вы могли решить, нужна ли вам собственная нода или хватит более скромной конфигурации.

Окно терминала на VPS с командами для запуска RPC-узла Solana, начиная с «sudo adduser --disabled-password --gecos "" sol»
Примерно такие команды вы будете выполнять на своём сервере в этом руководстве.

Валидатор, RPC-нода или ни то, ни другое?

  • Валидатор. Голосует за блоки и требует полной аппаратной спецификации, пополненного vote-аккаунта и постоянной доступности.
  • RPC-нода. Обслуживает запросы приложений, ботов и индексаторов. Она не голосует, но ей всё равно нужно похожее оборудование, а при включении индексов аккаунтов — ещё больше ОЗУ.
  • Лёгкое использование. Если вы отправляете лишь несколько транзакций или читаете немного данных, платная RPC-точка обычно дешевле, чем запуск ноды.

Перед покупкой проверьте официальные требования к валидатору Solana. Они опубликованы в документации Solana и Agave и меняются вместе с сетью. Ориентировочно для загруженной RPC-ноды ожидайте сотни ГБ ОЗУ и несколько быстрых дисков NVMe. Это территория выделенных серверов, а не небольшого VPS. Подобранные по размерам варианты перечислены на нашей странице хостинга нод Solana.

Шаг 1: подготовьте сервер

Используйте Ubuntu LTS и шаги из статьи как защитить новый VPS. Создайте отдельного пользователя и, если дисков NVMe больше одного, разместите ledger и accounts на разных дисках.

sudo adduser --disabled-password --gecos "" sol
sudo mkdir -p /mnt/ledger /mnt/accounts
sudo chown -R sol:sol /mnt/ledger /mnt/accounts

Шаг 2: увеличьте системные лимиты

Solana открывает много файлов и использует большие отображения памяти. Добавьте следующее в /etc/sysctl.d/21-solana.conf и в ваш unit-файл systemd:

vm.max_map_count=1000000
net.core.rmem_max=134217728
net.core.wmem_max=134217728

# in the systemd unit:
LimitNOFILE=1000000

Примените командой sudo sysctl --system.

Шаги этого руководства по порядку: 1. Валидатор, RPC-узел или ни то ни другое?; 2. подготовьте сервер; 3. увеличьте системные лимиты; 4. запустите RPC-узел; 5. наблюдайте, как он догоняет сеть; 6. Брандмауэр
Шаги этого руководства по порядку.

Шаг 3: установите ПО валидатора

Установите текущий релиз Agave (клиент валидатора Solana) способом из официальной документации и проверьте его. Затем проверьте версию:

agave-validator --version
solana --version

Шаг 4: запустите RPC-ноду

Так обычно выглядит команда запуска для RPC-ноды, не участвующей в голосовании. Используйте известные валидаторы и точки входа из официальной документации для вашего кластера.

agave-validator \
  --identity /home/sol/identity.json \
  --ledger /mnt/ledger \
  --accounts /mnt/accounts \
  --entrypoint ENTRYPOINT:8001 \
  --known-validator KNOWN_VALIDATOR_PUBKEY \
  --only-known-rpc \
  --rpc-port 8899 \
  --private-rpc \
  --no-voting \
  --full-rpc-api \
  --limit-ledger-size \
  --log /var/log/solana/validator.log

Замените заполнители значениями из документации. --private-rpc не позволяет порту RPC анонсироваться в сети, но его всё равно нужно закрыть файрволом.

Шаг 5: наблюдайте, как нода догоняет сеть

solana catchup --our-localhost
solana-validator --ledger /mnt/ledger monitor

Догон по снапшоту занимает от нескольких минут до нескольких часов. Если нода отстаёт и не может нагнать, причина обычно в диске или сети.

Файрвол

Разрешите диапазон портов gossip и TPU, описанный в документации (по умолчанию от 8000 до 10000), и держите RPC (8899 и 8900) закрытым. Если вам нужно обслуживать RPC для других машин, поставьте перед ним обратный прокси с аутентификацией.