Налаштування блокчейн-експлорера

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1306 послуг
Налаштування блокчейн-експлорера
Середній
~3-5 днів
Часті запитання

Напрямки блокчейн-розробки

Етапи блокчейн-розробки

Останні роботи

  • 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
    612
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    886

Настройка блокчейн-експлорера

Публічні експлорери типу Etherscan або Solscan — зручні, поки ваша сіть публічна і поки їх API достатні. Власний експлорер потрібен в трьох випадках: private/consortium blockchain (немає публічного експлорера), кастомна логіка відображення (branded UI, специфічні метрики протоколу), або вимоги до приватності (не хочете розкривати паттерни запитів сторонам).

Вибір платформи

Blockscout (найпоширеніший)

Open source, підтримує всі EVM-сумісні сіті. Написаний на Elixir/Phoenix. Активно розвивається, використовується як офіційний експлорер для Gnosis Chain, Optimism, Base та інших L2.

Плюси: багатий функціонал (верифікація контрактів, токени, NFT, DeFi метрики), REST API + GraphQL, активне сообщество, гарна документація.

Мінуси: важкий стек (Elixir + PostgreSQL + Redis + нода), потребує 32+ GB RAM для production, складна початкова настройка.

Otterscan

Легковесний експлорер на React, працює напрямку з Erigon нодою через розширений ots_ namespace API. Без окремої бази даних — вся історія зберігається в самій ноді.

Плюси: мінімальний footprint, немає окремого індексування, миттєвий старт.

Мінуси: потребує саме Erigon (не geth/nethermind), немає верифікації контрактів, базовий функціонал.

The Graph (для конкретних даних)

Не повноцінний експлорер, але якщо потрібні кастомні дані протоколу — subgraph + кастомний фронтенд швидше і дешевше ніж full explorer.

Розгортання Blockscout

Інфраструктура

# docker-compose.yml (спрощений)
version: '3.8'

services:
  db:
    image: postgres:15
    environment:
      POSTGRES_DB: blockscout
      POSTGRES_USER: blockscout
      POSTGRES_PASSWORD: ${DB_PASSWORD}
    volumes:
      - postgres_data:/var/lib/postgresql/data
    shm_size: '512mb'   # важливо для PG продуктивності

  redis:
    image: redis:7-alpine
    command: redis-server --maxmemory 4gb --maxmemory-policy allkeys-lru

  backend:
    image: blockscout/blockscout:latest
    depends_on: [db, redis]
    environment:
      DATABASE_URL: postgresql://blockscout:${DB_PASSWORD}@db:5432/blockscout
      ETHEREUM_JSONRPC_VARIANT: geth          # або parity, besu, erigon
      ETHEREUM_JSONRPC_HTTP_URL: http://node:8545
      ETHEREUM_JSONRPC_WS_URL: ws://node:8546
      ETHEREUM_JSONRPC_TRACE_URL: http://node:8545  # для trace_ методів
      SECRET_KEY_BASE: ${SECRET_KEY_BASE}
      CHAIN_ID: "1"
      COIN: ETH
      NETWORK: Mainnet
      SUBNETWORK: Ethereum Mainnet
      
      # Продуктивність
      POOL_SIZE: 80
      ECTO_USE_SSL: 'false'
      
      # Верифікація контрактів
      SOURCIFY_INTEGRATION_ENABLED: 'true'
      SOURCIFY_SERVER_URL: https://sourcify.dev/server
      
    ports:
      - "4000:4000"

  frontend:
    image: ghcr.io/blockscout/frontend:latest
    environment:
      NEXT_PUBLIC_API_HOST: http://backend:4000
      NEXT_PUBLIC_NETWORK_NAME: My Network
      NEXT_PUBLIC_NETWORK_SHORT_NAME: MyNet
      NEXT_PUBLIC_NETWORK_ID: "1"
    ports:
      - "3000:3000"

Вимоги до ноди

Blockscout використовує нестандартні RPC методи:

  • debug_traceTransaction — для внутрішніх транзакцій
  • trace_block, trace_transaction — для Parity-сумісних трейсів
  • eth_getBalance в архівному режимі — для історичних балансів

Звичайна повна нода не хватить. Потребує archive node з включеними debug/trace методами:

# Geth archive node
geth --mainnet \
  --syncmode full \
  --gcmode archive \
  --http \
  --http.api eth,net,web3,debug,txpool \
  --ws \
  --ws.api eth,net,web3,debug \
  --cache 32768

Archive node для Ethereum mainnet — ~17 TB (2025). Це основна частина вартості інфраструктури.

Індексування

При першому запуску Blockscout починає індексування з останнього блока назад. Для повної історії mainnet — процес займає тижні. Прискорення:

# Змінні для паралельного індексування
BLOCK_TRANSFORMER: base
INDEXER_BLOCK_REWARD_BATCH_SIZE: 10
INDEXER_COIN_BALANCES_BATCH_SIZE: 500
INDEXER_RECEIPTS_BATCH_SIZE: 250
INDEXER_INTERNAL_TRANSACTIONS_BATCH_SIZE: 20

Для приватних мереж з невеликою історією — повне індексування займає години.

Верифікація смарт-контрактів

Blockscout підтримує кілька методів верифікації:

Через Sourcify (рекомендується): децентралізований репозиторій верифікованих контрактів. Якщо контракт вже верифікований в Sourcify — Blockscout автоматично підтянуть дані.

Прямої верифікація через API:

curl -X POST https://your-blockscout.com/api \
  -H "Content-Type: application/json" \
  -d '{
    "module": "contract",
    "action": "verifysourcecode",
    "contractaddress": "0x...",
    "sourceCode": "pragma solidity...",
    "codeformat": "solidity-single-file",
    "contractname": "MyContract",
    "compilerversion": "v0.8.20+commit.a1b79de6",
    "optimizationUsed": 1,
    "runs": 200
  }'

Кастомні метрики і branded UI

Якщо потребує branded експлорера з логотипом проекту і кастомними метриками:

  • Blockscout підтримує кастомні токени і нативну монету через env змінні
  • Frontend (Next.js) можна форкнути і кастомізувати
  • Додаткові сторінки (наприклад, метрики протоколу) — додаються як окремі React компоненти

Що входить в роботу

  • Вибір платформи під конкретні вимоги
  • Розгортання archive node з необхідними debug методами
  • Розгортання Blockscout через Docker Compose або Kubernetes
  • Настройка початкового індексування
  • Конфігурація верифікації контрактів
  • Nginx reverse proxy з SSL, доменне ім'я
  • Моніторинг індексатора і алерти на відставання