brk_computer 0.1.0-alpha.4

A Bitcoin dataset computer built on top of brk_indexer
Documentation

brk_computer

Derived metrics computation engine for Bitcoin on-chain analytics.

What It Enables

Compute 1000+ on-chain metrics from indexed blockchain data: supply breakdowns, realized/unrealized P&L, SOPR, MVRV, cohort analysis (by age, amount, address type), cointime economics, mining pool attribution, and price-weighted valuations.

Key Features

  • Cohort metrics: Filter by UTXO age (STH/LTH, age bands), amount ranges, address types
  • Stateful computation: Track per-UTXO cost basis, realized/unrealized states
  • Multi-index support: Metrics available by height, date, week, month, year, decade
  • Price integration: USD-denominated metrics when price data available
  • Mining pool attribution: Tag blocks/rewards to known pools
  • Cointime economics: Liveliness, vaultedness, activity-weighted metrics
  • Incremental updates: Resume from checkpoints, compute only new blocks

Core API

let mut computer = Computer::forced_import(&outputs_path, &indexer, Some(fetcher))?;

// Compute all metrics for new blocks
computer.compute(&indexer, starting_indexes, &reader, &exit)?;

// Access computed data via traversable vecs
let supply = computer.distribution.utxo_cohorts.all.metrics.supply.total.sats.height;
let realized_cap = computer.distribution.utxo_cohorts.all.metrics.realized.unwrap().realized_cap.height;

Metric Categories

Module Examples
blocks Block count, interval, size, mining metrics, rewards
transactions Transaction count, fee, size, volume
scripts Output type counts
distribution Realized cap, MVRV, SOPR, unrealized P&L, supply
cointime Liveliness, vaultedness, true market mean
pools Per-pool block counts, rewards, fees
market Market cap, NVT, Puell multiple
price Height-to-price mapping from fetched data

Cohort System

UTXO and address cohorts support filtering by:

  • Age: STH (<150d), LTH (≥150d), 21 age bands (<1h, 1h-1d, 1d-1w, 1w-1m, 1m-2m, ..., 6m-1y, 1y-2y, ..., 12y-15y, 15y+)
  • Amount: 0-0.001 BTC, 0.001-0.01, ..., 10k+ BTC
  • Type: P2PK, P2PKH, P2MS, P2SH, P2WPKH, P2WSH, P2TR, P2A
  • Epoch: By halving epoch

Performance

End-to-End

Full pipeline benchmarks (indexer + computer):

Machine Time Disk Peak Disk Memory Peak Memory
MBP M3 Pro (36GB, internal SSD) 4.4h 345 GB 348 GB 3.3 GB 11 GB
Mac Mini M4 (16GB, external SSD) 7h 344 GB 346 GB 4 GB 10 GB

Full benchmark data: bitcoinresearchkit/benches

Recommended: mimalloc v3

Use mimalloc v3 as the global allocator to reduce memory usage.

Built On

  • brk_indexer for indexed blockchain data
  • brk_cohort for cohort filtering
  • brk_fetcher for price data
  • brk_reader for raw block access
  • brk_traversable for data export