Розгортання ноди Ethereum

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

Розгортування ноди Ethereum

Запустити Ethereum ноду сьогодні простіше, ніж два роки назад, але є нюанси, які перетворюють "просту задачу" в потерпілий день. Головний з них — Ethereum після The Merge вимагає одночасної роботи двох клієнтів: Execution Layer (EL) і Consensus Layer (CL). Вони взаємодіють через Engine API (authenticated JWT), і без CL нода просто не синхронізується.

Вибір клієнтів

Execution Layer:

  • Geth — reference клієнт, Go, найбільша частка ринку. Перевірено часом, велика спільнота. Snap sync працює швидко.
  • Nethermind — .NET, хороша продуктивність на Windows-сервері, активно розробляється
  • Besu — Java, enterprise-friendly, підтримує приватні мережі
  • Erigon — Go, найменший розмір бази (~2TB проти ~1TB у Geth snap), але snapshot sync значно повільніше

Consensus Layer:

  • Prysm — Go, найпопулярніший, гарна документація
  • Lighthouse — Rust, відмінна продуктивність і споживання пам'яті
  • Teku — Java, від ConsenSys, хороший в enterprise

Рекомендована комбінація для початку: Geth + Lighthouse — обидва стабільні, хорошо задокументовані.

Вимоги до залізо

Тип ноди Диск RAM CPU
Full node (snap sync) 1.2 TB NVMe 16 GB 4 ядра
Archive node 14+ TB NVMe 32 GB 8 ядер
Validator 1.2 TB NVMe 16 GB 4 ядра

Критично важливо: тільки NVMe SSD. HDD і SATA SSD не забезпечать необхідний IOPS — нода буде постійно відставати від head ланцюга.

Розгортування через Docker Compose

# docker-compose.yml
version: "3.8"

services:
  geth:
    image: ethereum/client-go:latest
    restart: unless-stopped
    volumes:
      - ./data/geth:/data
      - ./jwt.hex:/jwt.hex:ro
    ports:
      - "30303:30303"      # P2P
      - "30303:30303/udp"
      - "8545:8545"        # HTTP RPC (тільки localhost!)
      - "8546:8546"        # WebSocket RPC
    command:
      - --datadir=/data
      - --http
      - --http.addr=0.0.0.0
      - --http.vhosts=*
      - --http.api=eth,net,web3,txpool
      - --ws
      - --ws.addr=0.0.0.0
      - --ws.api=eth,net,web3
      - --authrpc.addr=0.0.0.0
      - --authrpc.vhosts=*
      - --authrpc.jwtsecret=/jwt.hex
      - --authrpc.port=8551
      - --maxpeers=50
      - --cache=4096

  lighthouse:
    image: sigp/lighthouse:latest
    restart: unless-stopped
    volumes:
      - ./data/lighthouse:/data
      - ./jwt.hex:/jwt.hex:ro
    ports:
      - "9000:9000"        # P2P
      - "9000:9000/udp"
      - "5052:5052"        # Beacon API
    command:
      - lighthouse
      - bn
      - --network=mainnet
      - --datadir=/data
      - --http
      - --http-address=0.0.0.0
      - --execution-endpoint=http://geth:8551
      - --execution-jwt=/jwt.hex
      - --checkpoint-sync-url=https://mainnet.checkpoint.sigp.io
      - --disable-deposit-contract-sync

JWT secret: обов'язковий крок

# Генерація JWT secret для Engine API
openssl rand -hex 32 > jwt.hex
chmod 600 jwt.hex

Без цього файлу (і совпадення його змісту в обох клієнтах) вони не зможуть спілкуватися.

Checkpoint sync vs genesis sync

--checkpoint-sync-url в Lighthouse — це різниця між 15 хвилинами і тижнями синхронізації CL. Checkpoint sync завантажує фіналізований beacon state з довіреного джерела і синхронізує від нього, а не з genesis. Публічні checkpoint endpoints: https://mainnet.checkpoint.sigp.io, https://beaconstate.ethstaker.cc.

Geth при першому запуску автоматично використовує snap sync — завантажує лише "снимок" стану, а не усі історичні блоки. Займе 4–12 годин залежно від швидкості інтернету і диска.

Моніторинг

# Статус синхронізації Geth
curl -s -X POST http://localhost:8545 \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","method":"eth_syncing","params":[],"id":1}' | jq

# Статус Lighthouse
curl -s http://localhost:5052/eth/v1/node/syncing | jq

Додайте в Prometheus через ethereum_exporter (EL метрики) і lighthouse_beacon (CL метрики). Grafana dashboards для обох є в офіційних репозиторіях.

Безпека

  • HTTP RPC (8545, 8546) не повинен бути відкритий в інтернет без аутентифікації — будь-хто може дренувати unlocked акаунти або навантажити ноду запитами
  • Nginx reverse proxy з rate limiting і, якщо потрібен зовнішній доступ, — Bearer token аутентифікацією
  • Engine API (8551) — тільки localhost або внутрішня docker мережа, ззовні не потрібен нікому
  • Firewall: відкриті тільки P2P порти (30303, 9000)