Files
brk/crates/brk_fetcher
2026-03-16 11:12:59 +01:00
..
2026-01-17 22:35:13 +01:00
2026-03-16 11:12:59 +01:00
2026-03-16 11:12:59 +01:00
2026-01-17 22:35:13 +01:00

brk_fetcher

Bitcoin price data fetcher with multi-source fallback.

What It Enables

Fetch OHLC (Open/High/Low/Close) price data from Binance, Kraken, or BRK's own API. Automatically falls back between sources on failure, with 12-hour retry persistence for transient network issues.

Key Features

  • Multi-source fallback: Binance → Kraken → BRK API
  • Health tracking: Temporarily disables failing sources
  • Two resolution modes: Per-date (daily) or per-block (1-minute interpolated)
  • HAR file support: Import Binance 1mn data from browser network captures for historical fills
  • Permanent block detection: Stops retrying on DNS/TLS failures

Core API

let mut fetcher = Fetcher::import(Some(&hars_path))?;

// Daily price
let ohlc = fetcher.get_date(Date::new(2024, 4, 20))?;

// Block-level price (uses 1mn data when available)
let ohlc = fetcher.get_height(height, block_timestamp, prev_timestamp)?;

Sources

Source Resolution Lookback Notes
Binance 1mn ~16 hours Best for recent blocks
Kraken 1mn ~10 hours Fallback for recent
BRK API Daily Full history Fallback for older data

HAR Import

For historical 1-minute data beyond API limits, export network requests from Binance's web interface and place the HAR file in the imports directory.

Built On

  • brk_error for error handling
  • brk_logger for retry logging
  • brk_types for Date, Height, Timestamp, OHLCCents