Развертывание Bitcoin Ord-индексатора

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

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

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

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

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

Развёртывание Bitcoin Ord-индексатора

Протокол Ordinals интерпретирует каждый сатоши как нумерованный объект (ordinal number) и позволяет прикреплять к нему данные (inscription) через OP_RETURN или witness данные транзакции. Чтобы работать с Ordinals — трекать NFT коллекции, BRC-20 токены, Runes — нужен собственный индексатор: нода ord, которая синхронизирует биткоин-блоки и строит локальную базу данных состояния сатоши-нумерации и inscriptions.

Что такое ord и что он делает

ord — это reference implementation от Casey Rodarmor ( Casey's repo). Он делает три вещи:

  1. Индексирует ординалы — отслеживает, через какие транзакции прошёл каждый пронумерованный сатоши, используя правила FIFO для inputs/outputs
  2. Индексирует inscriptions — сканирует witness данные транзакций на паттерн envelope (OP_FALSE OP_IF ... OP_ENDIF) и декодирует вложенный контент
  3. Предоставляет HTTP API — для запросов по inscription ID, сатоши, транзакциям, блокам

BRC-20 и Runes — это слои поверх Ordinals, ord их поддерживает начиная с определённых версий (Runes — с ord 0.18+).

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

Bitcoin Core нода — обязательна. ord не подключается к публичным RPC — он требует локальную ноду с txindex=1. Требования:

  • Диск: ~700GB для полной ноды + ~100-200GB для ord index (растёт со временем). Рекомендован NVMe SSD — HDD делает initial sync неприемлемо долгим
  • RAM: 16GB минимум, 32GB комфортно
  • CPU: 4+ ядер
  • Сеть: стабильный канал, initial sync — несколько дней

bitcoin.conf для работы с ord:

txindex=1
server=1
rpcuser=bitcoin
rpcpassword=your_secure_password
rpcallowip=127.0.0.1
zmqpubrawblock=tcp://127.0.0.1:28332
zmqpubrawtx=tcp://127.0.0.1:28333

Установка и синхронизация

# Установка ord (актуальная версия из GitHub releases)
curl -L https://github.com/ordinals/ord/releases/latest/download/ord-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv ord /usr/local/bin/

# Проверка
ord --version

# Запуск индексации (указываем RPC биткоин-ноды)
ord \
  --bitcoin-rpc-url http://127.0.0.1:8332 \
  --bitcoin-rpc-username bitcoin \
  --bitcoin-rpc-password your_secure_password \
  --data-dir /data/ord \
  index run

Первичная индексация занимает 1-7 дней в зависимости от железа (основная нагрузка — чтение всех биткоин-блоков с genesis). После синхронизации ord следит за новыми блоками через Bitcoin Core.

Запуск HTTP сервера:

ord \
  --bitcoin-rpc-url http://127.0.0.1:8332 \
  --bitcoin-rpc-username bitcoin \
  --bitcoin-rpc-password your_secure_password \
  --data-dir /data/ord \
  server \
  --http \
  --address 0.0.0.0:80

API доступен по адресам:

  • /inscription/{id} — данные об inscription
  • /sat/{ordinal} — история сатоши
  • /output/{txid}:{vout} — UTXO с ординалами
  • /inscriptions — последние inscriptions

Docker-развёртывание

# docker-compose.yml
services:
  bitcoind:
    image: lncm/bitcoind:v26.0
    volumes:
      - bitcoin_data:/data/.bitcoin
    command: >
      -txindex=1
      -server=1
      -rpcuser=bitcoin
      -rpcpassword=secret
      -rpcallowip=0.0.0.0/0
      -rpcbind=0.0.0.0

  ord:
    image: ghcr.io/ordinals/ord:latest
    depends_on:
      - bitcoind
    volumes:
      - ord_data:/data
    command: >
      --bitcoin-rpc-url http://bitcoind:8332
      --bitcoin-rpc-username bitcoin
      --bitcoin-rpc-password secret
      --data-dir /data
      server --http --address 0.0.0.0:80
    ports:
      - "8080:80"

volumes:
  bitcoin_data:
  ord_data:

Работа с BRC-20 и Runes

BRC-20 — стандарт токенов поверх Ordinals (JSON inscriptions с операциями deploy/mint/transfer). ord с поддержкой BRC-20 парсит эти JSON и строит state балансов. Для серьёзной работы с BRC-20 стоит рассмотреть OPI (Open Protocol Indexer) — отдельный индексатор с более богатым API для BRC-20.

Runes — более эффективный fungible token протокол от Rodarmor (запущен в halving блоке 840000, апрель 2024). Кодируется в OP_RETURN, меньше засоряет блокчейн. ord 0.18+ полностью поддерживает Runes.

Запрос балансов Rune через API:

# Все rune балансы в UTXO
curl http://localhost:8080/output/txid:vout | jq '.runes'

# Информация о конкретной Rune
curl http://localhost:8080/rune/UNCOMMON•GOODS

Мониторинг и операционка

Ключевая метрика — отставание индексатора от tip биткоин-чейна. При нормальной работе отставание должно быть 0-1 блок. Алерт при отставании > 3 блоков — что-то пошло не так.

Логи ord пишутся в stderr. Для production: systemd unit + journald, или Docker с log driver → Loki/ELK.

Дисковое пространство нужно мониторить: ord index stats показывает текущий размер индекса. Индекс Ordinals растёт ~5-10GB в месяц при активном использовании.