# 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 ```rust,ignore 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`