Развертывание ноды 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, поддерживает private networks
  • 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 — нода будет постоянно отставать от головы цепи.

Развёртывание через 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)