Розгортання ноди 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, мост між 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 для інтеграції в ваше додатків.