Разверните ноды Chainstack на выделенном сервере
Своя full или archive node на железе, которое вы ни с кем не делите. Подключите собственную ноду к Chainstack (BYOC), получите root и IPMI с первого дня и забудьте про лимиты managed-эндпоинта.
Что можно делать с Chainstack на выделенном сервере
Chainstack — это managed-инфраструктура для 70+ блокчейнов. Разверните выделенный сервер и держите ноду сами, а инструментарий Chainstack ей управляет.
Full или archive node без лимитов по запросам
Bring Your Own Cloud (BYOC)
Продакшен-бэкенд для dApp или RPC
Каждая транзакция, без сэмплинга
Валидатор или staking-нода
Несколько нод разных сетей на одной машине
Как развернуть ноду Chainstack на выделенном сервере
Full node в Ethereum синкается от нескольких часов до нескольких суток, а archive node занимает несколько терабайт. Эти шаги проведут от пустого сервера до синкающейся ноды с рабочим RPC-эндпоинтом. Харденинг, мониторинг и настройку reverse-proxy вынесли в дальнейшие шаги в конце.
Шаг 01 — Закажите сервер и получите доступ
Выберите конфиг из блока выше (для full node одной сети хватит младшего NVMe-тарифа). После провижининга IP, root-пароль и данные IPMI придут на почту. Подключитесь по SSH:
ssh root@YOUR_SERVER_IPIPMI позволяет переустановить систему или зайти в консоль, если ОС не грузится, без обращения в поддержку.
Шаг 02 — Подготовьте NVMe под данные блокчейна
Проверьте, что диски на месте, и примонтируйте тот, где будет храниться состояние сети:
lsblkmkfs.ext4 /dev/nvme1n1mkdir -p /data/ethereummount /dev/nvme1n1 /data/ethereumecho '/dev/nvme1n1 /data/ethereum ext4 defaults 0 0' >> /etc/fstabДержите данные блокчейна на выделенном NVMe, а не на системном диске.
Шаг 03 — Установите execution-клиент
Установите Geth из официального PPA:
add-apt-repository -y ppa:ethereum/ethereumapt update && apt install -y ethereumgeth versionШаг 04 — Установите consensus-клиент
После The Merge Ethereum'у нужен consensus-клиент рядом с Geth. Установите Lighthouse и сгенерируйте общий JWT-секрет, по которому два клиента аутентифицируют друг друга:
openssl rand -hex 32 | tr -d '\n' > /data/ethereum/jwt.hexНаправьте Lighthouse на engine API Geth на порт 8551.
Шаг 05 — Запустите Geth и откройте RPC-эндпоинт
Запустите Geth с путем на NVMe и включите HTTP-RPC API:
geth --datadir /data/ethereum \ --authrpc.jwtsecret /data/ethereum/jwt.hex \ --http --http.api eth,net,web3 \ --http.addr 0.0.0.0 --http.port 8545Привязка к 0.0.0.0 открывает эндпоинт на всех интерфейсах. Это нормально, пока вы проверяете, но перед продакшеном закройте доступ.
Шаг 06 — Заверните в systemd и проверьте синк
Оберните Geth в systemd-юнит, чтобы он переживал перезагрузки и перезапускался при сбое, и смотрите, как начинается синк:
systemctl enable --now gethgeth attach --exec 'eth.syncing'Во время синка номера блоков растут:
{ currentBlock: 2148740, highestBlock: 21463991, ...}Когда eth.syncing возвращает false, нода полностью синхронизирована, а RPC-эндпоинт работает.
Шаг 07 — Проверьте, что эндпоинт отвечает
С сервера приложения проверьте, что нода отвечает на JSON-RPC-запрос:
curl -s -X POST http://YOUR_SERVER_IP:8545 \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","method":"eth_blockNumber","params":[],"id":1}'Hex-номер блока в ответе означает, что ваша нода обслуживает запросы.
Дальнейшие шаги (сделайте до продакшена): закройте RPC-порт через UFW и reverse-proxy, добавьте TLS, настройте мониторинг числа пиров и заполнения диска и — если используете Chainstack BYOC — подключите ноду к своему проекту Chainstack, чтобы она появилась в консоли.
Частые проблемы
Синк как будто завис на низком блоке на несколько часов. Обычно это нормально для фазы загрузки состояния, а не сбой. Проверьте число пиров через admin.peers.length в geth attach — если ноль, файрвол блокирует P2P-порт (30303). Откройте его, и пиры появятся.
Диск заполняется быстрее, чем ожидалось. Вы случайно развернули archive node. Full-синк («snap») хранит недавнее состояние; archive хранит все и требует несколько ТБ. Проверьте, в каком режиме запустилась нода, и подбирайте NVMe под режим, а не наоборот.
RPC-эндпоинт не принимает подключения от приложения. По умолчанию Geth слушает только localhost. Либо он запущен без --http.addr 0.0.0.0, либо правило файрвола блокирует порт 8545. Проверьте оба варианта, прежде чем считать ноду сломанной.
Инфраструктура is*hosting как основа для Chainstack
Bare metal, а не его кусок
Вы получаете многоядерный AMD EPYC и сотни гигабайт RAM целиком, без гипервизора между вами и диском. Синхронизация ноды упирается в I/O, а на выделенном сервере за диск больше никто не конкурирует.
NVMe под состояние блокчейна
Archive node создает постоянные случайные чтения с диска, а такая нагрузка быстро изнашивает потребительские SSD. Мы ставим enterprise NVMe в конфигурациях с несколькими дисками и настраиваем soft-RAID при развертывании.
Защита от DDoS и бесплатный трансфер
Бесплатная защита от DDoS в Нидерландах с эффективностью 95% и бесплатный перенос проекта, если переезжаете с другого хостинга. Свое железо в дата-центрах уровня Tier-3+ в пяти локациях под мониторингом 24/7.