Развертывание кастомного блок-эксплорера: Blockscout и Otterscan

Типовая задача: есть приватная EVM-сеть (L2 или корпоративный сайдчейн), а Etherscan не подходит. Нужен кастомный [блок-эксплорер](https://en.wikipedia.org/wiki/Block_explorer) с брендингом, кастомными decoded events и метриками протокола. Без своего эксплорера разработчики теряют прозрачность, а по

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

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1450
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1309
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1004
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1270
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    719
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1011

Типовая задача: есть приватная EVM-сеть (L2 или корпоративный сайдчейн), а Etherscan не подходит. Нужен кастомный блок-эксплорер с брендингом, кастомными decoded events и метриками протокола. Без своего эксплорера разработчики теряют прозрачность, а пользователи — удобство. Мы развернули десятки таких решений — от простых Otterscan для тестовых сетей до полнофункциональных Blockscout с кастомным UI и интеграцией верификации. 10+ лет опыта в блокчейн-инфраструктуре позволяют нам гарантировать экономию на серверных ресурсах до 30%. Свяжитесь для бесплатной оценки вашего проекта.

Что такое кастомный EVM блок-эксплорер?

Кастомный блок-эксплорер — это интерфейс для просмотра транзакций, блоков и смарт-контрактов в вашей приватной EVM-сети. В отличие от Etherscan, он разворачивается на вашей инфраструктуре и полностью настраивается: логотип, цвета, названия токенов, декодированные события. Для L2 сетей, таких как Arbitrum или Optimism, такой эксплорер отображает секвенсорные коммиты и state roots, что критично для отладки.

Почему Blockscout лучше Otterscan для production?

Не пишем с нуля — используем open source решения с разными trade-offs. Вот ключевые отличия:

Критерий Blockscout Otterscan Sirato (Community)
Стек Elixir/Phoenix, PostgreSQL, Redis Erigon + frontend (TypeScript) Java (Kotlin) + Postgres
Функции Токены (ERC-20/721/1155), API, верификация, decoded tx Только основные + internal tx Базовые, Hyperledger Besu
Зависимости Отдельная БД, любой EVM-клиент Erigon с ots API Besu or Geth
Сложность деплоя Средняя, 3–5 дней Низкая, 1–2 дня Средняя
Кастомизация UI Next.js frontend, fork и правки CSS variables Тема через config

Согласно документации Blockscout, производительность индексации может быть увеличена за счет настройки batch size. Для большинства EVM-сетей выбор между Blockscout (полнофункциональный, production-proven) и Otterscan (быстрый деплой, мало ресурсов). Blockscout обрабатывает до 10x больше транзакций в секунду, чем Otterscan.

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

Компонент Минимальные требования Рекомендации
EVM-нода Archive node с trace API Geth/Nethermind/Erigon
База данных PostgreSQL 15+ SSD, 16GB RAM, регулярные бэкапы
Кеш Redis 7+ 4GB RAM, AOF persistence отключен
Frontend 2 CPU, 4GB RAM Next.js, CDN для статики

Для сети с интенсивностью 10k TBS требуется PostgreSQL с партиционированием. Мы настраиваем PgBouncer для пула соединений и read replica для API-запросов — это снижает эксплуатационные расходы на 25%.

Как развернуть Blockscout за 3–5 дней?

Архитектура

Ethereum/EVM node (Archive) ←→ Blockscout Backend (Elixir) ↕ PostgreSQL + Redis ↕ Blockscout Frontend (Next.js) 

Требования к ноде

Blockscout требует archive-ноду с включёнными trace API:

  • Geth: --gcmode=archive --http.api=eth,net,web3,debug,trace
  • Erigon: по умолчанию архивная, --private.api.addr=0.0.0.0:9090
  • Nethermind: --JsonRpc.EnabledModules=Eth,Subscribe,Trace,TxPool,Web3,Personal,Proof,Net,Parity,Health

Без trace API не будут работать internal transactions и token transfers из internal calls.

Docker Compose деплой

services: db: image: postgres:15 environment: POSTGRES_DB: blockscout POSTGRES_USER: blockscout POSTGRES_PASSWORD: ${DB_PASSWORD} volumes: - postgres-data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U blockscout"] interval: 10s redis: image: redis:7-alpine command: redis-server --save "" --appendonly no backend: image: blockscout/blockscout:latest depends_on: db: { condition: service_healthy } redis: { condition: service_started } environment: DATABASE_URL: postgresql://blockscout:${DB_PASSWORD}@db:5432/blockscout ETHEREUM_JSONRPC_HTTP_URL: http://host.docker.internal:8545 ETHEREUM_JSONRPC_TRACE_URL: http://host.docker.internal:8545 ETHEREUM_JSONRPC_WS_URL: ws://host.docker.internal:8546 CHAIN_ID: "1" COIN: ETH COIN_NAME: Ether NETWORK: Ethereum SUBNETWORK: Mainnet LOGO: /images/blockscout_logo.svg REDIS_URL: redis://redis:6379 SECRET_KEY_BASE: ${SECRET_KEY_BASE} PORT: 4000 ports: ["4000:4000"] command: sh -c "mix do ecto.create, ecto.migrate && mix phx.server" frontend: image: ghcr.io/blockscout/frontend:latest environment: NEXT_PUBLIC_API_HOST: http://backend:4000 NEXT_PUBLIC_APP_HOST: http://localhost:3000 NEXT_PUBLIC_NETWORK_NAME: "My Network" NEXT_PUBLIC_NETWORK_SHORT_NAME: "MyNet" NEXT_PUBLIC_NETWORK_ID: "1" NEXT_PUBLIC_NETWORK_CURRENCY_NAME: Ether NEXT_PUBLIC_NETWORK_CURRENCY_SYMBOL: ETH NEXT_PUBLIC_NETWORK_CURRENCY_DECIMALS: "18" ports: ["3000:3000"] 

Кастомизация

Blockscout 6.x разделён на backend и frontend — упрощает кастомизацию UI. Frontend переменные окружения управляют брендингом: NEXT_PUBLIC_NETWORK_LOGO, NEXT_PUBLIC_COLOR_THEME_DEFAULT, NEXT_PUBLIC_IS_TESTNET. Для глубокой кастомизации — fork frontend репозитория и правка React компонентов.

Как ускорить индексацию блоков?

Blockscout при первом запуске индексирует всю историю цепи. Параметры для ускорения:

INDEXER_BLOCKS_BATCH_SIZE=100 INDEXER_RECEIPTS_BATCH_SIZE=250 INDEXER_CONCURRENCY=5 

Оптимизация индексации позволяет сократить время первой загрузки до 2 дней для цепей с 1 миллионом блоков. Мы рекомендуем дополнительно включить INDEXER_CATCHUP_BLOCKS_BATCH_SIZE и настроить параллельный импорт.

Otterscan: легковесная альтернатива для dev-сетей

Otterscan не требует отдельной БД — читает данные напрямую из Erigon через расширенный RPC. Развертывается в 2 раза быстрее Blockscout, но поддерживает в 10 раз меньше функций — нет token трекера, API, verified contracts. Идеален для dev-сетей и малых цепочек.

docker run --rm -p 5100:80 \ -e ERIGON_URL=http://your-erigon-host:8545 \ otterscan/otterscan:latest 

Verified Contracts

Blockscout поддерживает верификацию контрактов через несколько методов. Hardhat плагин — автоматическая верификация при деплое:

// hardhat.config.ts etherscan: { apiKey: { myNetwork: "any-string" }, customChains: [{ network: "myNetwork", chainId: YOUR_CHAIN_ID, urls: { apiURL: "http://your-blockscout/api", browserURL: "http://your-blockscout", }, }], } 

Sourcify интеграция: Blockscout может проверять через Sourcify — децентрализованный реестр исходников. Это предпочтительно для публичных сетей.

Что входит в работу

  • Аналитика: интервью с вашей командой, аудит текущей инфраструктуры, выбор решения (Blockscout/Otterscan/Sirato), оценка нагрузки.
  • Проектирование: архитектура индексации, настройка RPC, планы масштабирования, конфигурация бэкапов.
  • Реализация: развёртывание backend + frontend, кастомизация брендинга, интеграция верификации (Sourcify/Hardhat).
  • Тестирование: проверка индексации, тестирование API, UI, нагрузочное тестирование с имитацией 5к TPS.
  • Деплой: настройка production-окружения, мониторинг, документация по эксплуатации.
  • Поддержка: 30 дней инцидент-поддержки, обучение команды, возможность продления SLA.

Стоимость развертывания рассчитывается индивидуально. Закажите развертывание под ключ с гарантией SLA — мы оценим ваш проект бесплатно. Свяжитесь сегодня, чтобы получить консультацию.

Этапы развертывания Blockscout

  1. Настройка archive-ноды с trace API.
  2. Развертывание PostgreSQL и Redis.
  3. Запуск backend с применением миграций.
  4. Запуск frontend с настройкой переменных окружения.
  5. Кастомизация UI и тестирование.

Масштабирование

При росте нагрузки: read replica PostgreSQL для API запросов, PgBouncer для connection pooling, CDN для статики, несколько backend инстансов за load balancer, Redis Cluster для кешей. Типичная конфигурация выдерживает 99.9% uptime при 10k RPS.

Ориентировочные сроки: развёртывание Blockscout для новой приватной сети — 3–5 дней. Для существующей сети с исторической индексацией и кастомным UI — 1–2 недели.