Розгортання Bitcoin Ord-індексатора

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

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

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

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

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1311
  • 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. Він робить три речі:

  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 індексу (растає з часом). Рекомендується 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 на місяць при активному використанні.