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

Проектируем и разрабатываем блокчейн-решения полного цикла: от архитектуры смарт-контрактов до запуска DeFi-протоколов, NFT-маркетплейсов и криптобирж. Аудит безопасности, токеномика, интеграция с существующей инфраструктурой.
Показано 1 из 1Все 1306 услуг
Развертывание ноды Polygon
Средний
от 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

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

Собственная нода Polygon нужна когда публичные RPC перестают быть достаточными: rate limits на Alchemy/Infura режут запросы в пике нагрузки, нет гарантий uptime, и при серьёзной dApp недопустимо зависеть от чужой инфраструктуры. Polygon PoS — это не L2 Ethereum, а sidechain с собственным набором валидаторов и Heimdall/Bor архитектурой.

Архитектура Polygon PoS ноды

Polygon PoS нода состоит из двух компонентов, которые должны работать одновременно:

Heimdall — валидаторный слой (Tendermint-based). Отвечает за: финализацию чекпоинтов на Ethereum mainnet, consensus layer, bridge между Polygon и Ethereum. Работает на порту 26656 (P2P) и 1317 (API).

Bor — execution layer, форк go-ethereum. Именно он исполняет транзакции и смарт-контракты. Совместим с Ethereum JSON-RPC API. Порт 30303 (P2P), 8545 (HTTP RPC), 8546 (WebSocket).

Оба компонента должны быть синхронизированы. Частая ошибка при развёртывании — запуск Bor раньше чем Heimdall дошёл до текущего блока.

Требования к серверу

Тип ноды CPU RAM Диск Сеть
Full node (archive) 16+ cores 64+ GB 8+ TB NVMe 1 Gbps
Full node (pruned) 8 cores 32 GB 500 GB NVMe 500 Mbps
Sentry node 4 cores 16 GB 200 GB 250 Mbps

Archive нода — полная история всех состояний, нужна для eth_getStorageAt на исторических блоках и для аналитики. Pruned — для большинства dApp достаточна.

Polygon chain активна, размер стейта растёт быстро. Через 6 месяцев после деплоя — диск будет значительно более заполнен, планируйте с запасом.

Деплой через официальные скрипты

Polygon поддерживает официальный Ansible playbook:

git clone https://github.com/maticnetwork/node-ansible
cd node-ansible

# Редактируем inventory.yml: указываем IP и SSH ключи
# Выбираем тип: sentry, validator или fullnode

ansible-playbook playbooks/network.yml \
  --inventory inventory.yml \
  -e "node_type=sentry network_version=mainnet node_name=my-polygon-node"

Ручной деплой (больше контроля):

# Heimdall
git clone https://github.com/maticnetwork/heimdall
cd heimdall && make install

heimdalld init --chain-id heimdall-137
# Скачиваем genesis: https://raw.githubusercontent.com/maticnetwork/heimdall/master/builder/files/genesis-mainnet-v1.json
heimdalld start --rest-server

# Bor (в отдельном процессе)
git clone https://github.com/maticnetwork/bor
cd bor && make bor

bor server --config /path/to/config.toml

Snapshots: экономим время на синхронизации

Синхронизация с нуля — несколько недель. Polygon Foundation публикует snapshots на S3:

# Heimdall snapshot
aria2c -x6 -s6 "https://snapshot-download.polygon.technology/snapshots/heimdall/mainnet/latest.tar.gz"

# Bor snapshot (несколько TB для archive)
aria2c -x6 -s6 "https://snapshot-download.polygon.technology/snapshots/bor/mainnet/..."

aria2c вместо wget — многопоточная загрузка, в 3–5 раз быстрее для больших файлов.

Конфигурация Bor для production

# config.toml
[jsonrpc]
enabled = true
host = "0.0.0.0"  # в production — только localhost, перед nginx
port = 8545

[jsonrpc.ws]
enabled = true
port = 8546

[p2p]
maxpeers = 50

[cache]
cache = 4096  # MB, увеличить при большом RAM

Не экспонируйте RPC публично напрямую. Nginx с rate limiting и IP whitelist перед нодой — обязательно. Иначе нода станет публичным RPC и исчерпает ресурсы от чужих запросов.

Мониторинг синхронизации

// Проверка статуса через JSON-RPC
const latestBlock = await provider.getBlockNumber()  // ваша нода
const publicBlock = await publicProvider.getBlockNumber()  // Alchemy

const lag = publicBlock - latestBlock
if (lag > 10) alert('Node is lagging!')

Heimdall статус: curl localhost:26657/status — поле catching_up: false означает синхронизирована.

Что делается за 1–3 дня

Выбор типа ноды под ваши задачи, деплой Heimdall + Bor на вашем сервере, загрузка и применение snapshots для быстрой синхронизации, настройка systemd сервисов для автозапуска, nginx proxy с базовой защитой, настройка мониторинга (Grafana + Prometheus с метриками Bor/Heimdall), передача endpoint для интеграции в ваше приложение.