diff --git a/.gitignore b/.gitignore index bad2e7c64..86d579031 100644 --- a/.gitignore +++ b/.gitignore @@ -26,5 +26,3 @@ flamegraph.svg # AI .claude -CLAUDE.md -CLAUDE*.md diff --git a/crates/brk_indexer/src/lib.rs b/crates/brk_indexer/src/lib.rs index 097e21f17..554887272 100644 --- a/crates/brk_indexer/src/lib.rs +++ b/crates/brk_indexer/src/lib.rs @@ -5,11 +5,11 @@ use std::{collections::BTreeMap, path::Path, str::FromStr, thread, time::Instant use bitcoin::{Transaction, TxIn, TxOut}; use brk_error::{Error, Result}; -use brk_parser::{BlockExtended, Parser}; +use brk_parser::Parser; use brk_store::AnyStore; use brk_structs::{ - AddressBytes, AddressBytesHash, BlockHash, BlockHashPrefix, Height, InputIndex, OutputIndex, - OutputType, Sats, StoredBool, Timestamp, TxIndex, Txid, TxidPrefix, TypeIndex, + AddressBytes, AddressBytesHash, BlockExtended, BlockHash, BlockHashPrefix, Height, InputIndex, + OutputIndex, OutputType, Sats, StoredBool, Timestamp, TxIndex, Txid, TxidPrefix, TypeIndex, TypeIndexWithOutputindex, Unit, Version, Vin, Vout, }; use log::{error, info}; diff --git a/crates/brk_parser/examples/main.rs b/crates/brk_parser/examples/main.rs index fdb11a5e3..8685d0b42 100644 --- a/crates/brk_parser/examples/main.rs +++ b/crates/brk_parser/examples/main.rs @@ -1,7 +1,7 @@ use std::path::Path; use bitcoincore_rpc::{Auth, Client, Result}; -use brk_parser::{BlockExtended, Parser}; +use brk_parser::Parser; use brk_structs::Height; #[allow(clippy::needless_doctest_main)] diff --git a/crates/brk_parser/src/block_state.rs b/crates/brk_parser/src/any_block.rs similarity index 77% rename from crates/brk_parser/src/block_state.rs rename to crates/brk_parser/src/any_block.rs index 32e13ddea..438eb3156 100644 --- a/crates/brk_parser/src/block_state.rs +++ b/crates/brk_parser/src/any_block.rs @@ -2,15 +2,16 @@ use bitcoin::{Block, consensus::Decodable, io::Cursor}; use crate::{XORBytes, XORIndex}; -pub enum BlockState { +pub enum AnyBlock { Raw(Vec), Decoded(Block), + Skipped, } -impl BlockState { +impl AnyBlock { pub fn decode(&mut self, xor_i: &mut XORIndex, xor_bytes: &XORBytes) { let bytes = match self { - BlockState::Raw(bytes) => bytes, + AnyBlock::Raw(bytes) => bytes, _ => unreachable!(), }; @@ -20,6 +21,6 @@ impl BlockState { let block = Block::consensus_decode(&mut cursor).unwrap(); - *self = BlockState::Decoded(block); + *self = AnyBlock::Decoded(block); } } diff --git a/crates/brk_parser/src/block.rs b/crates/brk_parser/src/block.rs deleted file mode 100644 index 6eb2eef2c..000000000 --- a/crates/brk_parser/src/block.rs +++ /dev/null @@ -1,20 +0,0 @@ -use std::borrow::Cow; - -use bitcoin::Block; - -pub trait BlockExtended { - fn coinbase_tag(&self) -> Cow<'_, str>; -} - -impl BlockExtended for Block { - fn coinbase_tag(&self) -> Cow<'_, str> { - String::from_utf8_lossy( - self.txdata - .first() - .and_then(|tx| tx.input.first()) - .unwrap() - .script_sig - .as_bytes(), - ) - } -} diff --git a/crates/brk_parser/src/error.rs b/crates/brk_parser/src/error.rs deleted file mode 100644 index 0a7562c65..000000000 --- a/crates/brk_parser/src/error.rs +++ /dev/null @@ -1,35 +0,0 @@ -use std::{ - fmt::{self, Debug}, - io, -}; - -pub type Result = std::result::Result; - -#[derive(Debug)] -pub enum Error { - IO(io::Error), - ZeroCopyError, -} - -impl From for Error { - fn from(value: io::Error) -> Self { - Self::IO(value) - } -} - -impl From> for Error { - fn from(_: zerocopy::error::SizeError) -> Self { - Self::ZeroCopyError - } -} - -impl fmt::Display for Error { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - match self { - Error::IO(error) => Debug::fmt(&error, f), - Error::ZeroCopyError => write!(f, "Zero copy convert error"), - } - } -} - -impl std::error::Error for Error {} diff --git a/crates/brk_parser/src/lib.rs b/crates/brk_parser/src/lib.rs index 3d561510a..010a1f1be 100644 --- a/crates/brk_parser/src/lib.rs +++ b/crates/brk_parser/src/lib.rs @@ -2,30 +2,26 @@ use std::{cmp::Ordering, collections::BTreeMap, fs, ops::ControlFlow, path::PathBuf, thread}; -use bitcoin::{Block, BlockHash}; +use bitcoin::BlockHash; use bitcoincore_rpc::RpcApi; use blk_index_to_blk_path::*; use blk_recap::BlkRecap; -use brk_structs::Height; +use brk_structs::{Block, Height}; use crossbeam::channel::{Receiver, bounded}; use rayon::prelude::*; +mod any_block; mod blk_index_to_blk_path; mod blk_index_to_blk_recap; mod blk_metadata; mod blk_recap; -mod block; -mod block_state; -mod error; mod utils; mod xor_bytes; mod xor_index; +use any_block::*; use blk_index_to_blk_recap::*; use blk_metadata::*; -pub use block::*; -use block_state::*; -pub use error::*; use utils::*; use xor_bytes::*; use xor_index::*; @@ -54,13 +50,13 @@ impl Parser { } } - pub fn get(&self, height: Height) -> Block { - self.parse(Some(height), Some(height)) - .iter() - .next() - .unwrap() - .1 - } + // pub fn get(&self, height: Height) -> Block { + // self.parse(Some(height), Some(height)) + // .iter() + // .next() + // .unwrap() + // .1 + // } /// /// Returns a crossbeam channel receiver that receives `(Height, Block, BlockHash)` tuples from an **inclusive** range (`start` and `end`) @@ -71,13 +67,13 @@ impl Parser { &self, start: Option, end: Option, - ) -> Receiver<(Height, Block, BlockHash)> { + ) -> Receiver<(Height, bitcoin::Block, BlockHash)> { let blocks_dir = self.blocks_dir.as_path(); let rpc = self.rpc; let (send_bytes, recv_bytes) = bounded(BOUND_CAP); let (send_block, recv_block) = bounded(BOUND_CAP); - let (send_height_block_hash, recv_height_block_hash) = bounded(BOUND_CAP); + let (send_ordered, recv_ordered) = bounded(BOUND_CAP); let blk_index_to_blk_path = BlkIndexToBlkPath::scan(blocks_dir); @@ -135,7 +131,7 @@ impl Parser { let block_bytes = (blk_bytes[i..(i + len)]).to_vec(); if send_bytes - .send((blk_metadata, BlockState::Raw(block_bytes), xor_i)) + .send((blk_metadata, AnyBlock::Raw(block_bytes), xor_i)) .is_err() { return ControlFlow::Break(()); @@ -157,23 +153,22 @@ impl Parser { let drain_and_send = |bulk: &mut Vec<_>| { // Using a vec and sending after to not end up with stuck threads in par iter - bulk.par_iter_mut().for_each(|(_, block_state, xor_i)| { - BlockState::decode(block_state, xor_i, &xor_bytes); + bulk.par_iter_mut().for_each(|(_, any_block, xor_i)| { + AnyBlock::decode(any_block, xor_i, &xor_bytes); }); - bulk.drain(..) - .try_for_each(|(blk_metadata, block_state, _)| { - let block = match block_state { - BlockState::Decoded(block) => block, - _ => unreachable!(), - }; + bulk.drain(..).try_for_each(|(blk_metadata, any_block, _)| { + let block = match any_block { + AnyBlock::Decoded(block) => block, + _ => unreachable!(), + }; - if send_block.send((blk_metadata, block)).is_err() { - return ControlFlow::Break(()); - } + if send_block.send((blk_metadata, block)).is_err() { + return ControlFlow::Break(()); + } - ControlFlow::Continue(()) - }) + ControlFlow::Continue(()) + }) }; recv_bytes.iter().try_for_each(|tuple| { @@ -259,9 +254,7 @@ impl Parser { return ControlFlow::Break(()); } - send_height_block_hash - .send((current_height, block, hash)) - .unwrap(); + send_ordered.send((current_height, block, hash)).unwrap(); if end.is_some_and(|end| end == current_height) { return ControlFlow::Break(()); @@ -276,6 +269,6 @@ impl Parser { blk_index_to_blk_recap.export(); }); - recv_height_block_hash + recv_ordered } } diff --git a/crates/brk_structs/src/structs/block.rs b/crates/brk_structs/src/structs/block.rs new file mode 100644 index 000000000..039290ff2 --- /dev/null +++ b/crates/brk_structs/src/structs/block.rs @@ -0,0 +1,94 @@ +use std::{borrow::Cow, collections::HashMap, ops::Deref}; + +use bitcoin::{Txid, block::Header, consensus::Decodable}; +use brk_error::Result; + +use super::{BlockHash, Height}; + +#[derive(Debug)] +pub struct Block { + pub block: bitcoin::Block, + pub hash: BlockHash, + pub height: Height, + pub tx_positions: HashMap, // txid -> offset + pub block_start_offset: usize, +} + +impl Block { + pub fn parse(block_data: &[u8], file_offset: usize) -> Result { + let mut cursor = std::io::Cursor::new(block_data); + + let header = Header::consensus_decode(&mut cursor)?; + + // Parse transactions with positions + let tx_count = bitcoin::VarInt::consensus_decode(&mut cursor)?.0 as usize; + let mut transactions = Vec::with_capacity(tx_count); + let mut tx_positions = HashMap::with_capacity(tx_count); + + for _ in 0..tx_count { + let start = cursor.position() as usize; + let tx = bitcoin::Transaction::consensus_decode(&mut cursor)?; + + tx_positions.insert(tx.compute_txid(), start); + transactions.push(tx); + } + + let block = bitcoin::Block { + header, + txdata: transactions, + }; + + // block.bip34_block_height() + + let hash = block.block_hash(); + + Ok(Block { + block, + hash: hash.into(), + height: Height::ZERO, + tx_positions, + block_start_offset: file_offset, + }) + } + + pub fn get_absolute_position(&self, txid: &Txid) -> Option { + self.tx_positions + .get(txid) + .map(|offset| self.block_start_offset + offset) + } + + pub fn coinbase_tag(&self) -> Cow<'_, str> { + String::from_utf8_lossy( + self.txdata + .first() + .and_then(|tx| tx.input.first()) + .unwrap() + .script_sig + .as_bytes(), + ) + } +} + +impl Deref for Block { + type Target = bitcoin::Block; + fn deref(&self) -> &Self::Target { + &self.block + } +} + +pub trait BlockExtended { + fn coinbase_tag(&self) -> Cow<'_, str>; +} + +impl BlockExtended for bitcoin::Block { + fn coinbase_tag(&self) -> Cow<'_, str> { + String::from_utf8_lossy( + self.txdata + .first() + .and_then(|tx| tx.input.first()) + .unwrap() + .script_sig + .as_bytes(), + ) + } +} diff --git a/crates/brk_structs/src/structs/mod.rs b/crates/brk_structs/src/structs/mod.rs index c902c0079..a0a3ecfca 100644 --- a/crates/brk_structs/src/structs/mod.rs +++ b/crates/brk_structs/src/structs/mod.rs @@ -4,6 +4,7 @@ mod addressbytes; mod addressbyteshash; mod anyaddressindex; mod bitcoin; +mod block; mod blockhash; mod blockhashprefix; mod cents; @@ -67,6 +68,7 @@ pub use addressbytes::*; pub use addressbyteshash::*; pub use anyaddressindex::*; pub use bitcoin::*; +pub use block::*; pub use blockhash::*; pub use blockhashprefix::*; pub use cents::*; diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 000000000..de7c0e451 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,3 @@ +CLAUDE*.md +OPENSATS*.md +DUMP.md diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 1189965d6..40a24e2ec 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,2263 +1,534 @@ # Changelog -*This changelog was generated by Claude Code.* + -All notable changes to the Bitcoin Research Kit (BRK) project will be documented in this file. +## [v0.0.101](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.101) - 2025-09-07 -## [v0.0.107](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.107) - 2025-07-24 +### Breaking Changes +- **SOPR Data Type Migration**: Migrated Spent Output Profit Ratio (SOPR) metrics from StoredF32 to StoredF64 for increased precision, requiring data recomputation and version increment for affected vectors ([crates/brk_computer/src/stateful/common.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.101/crates/brk_computer/src/stateful/common.rs)) -### BREAKING CHANGES - Major System-Wide Refactoring -- **Removed**: [Computed builder system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.106/crates/brk_computer/src/grouped/builder_computed.rs) replaced with improved architecture -- **Major Refactoring**: [Stateful processing system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.107/crates/brk_computer/src/stateful/common.rs) with comprehensive improvements to blockchain state management -- **Enhanced**: [Chain analysis](https://github.com/bitcoinresearchkit/brk/blob/v0.0.107/crates/brk_computer/src/chain.rs) with sophisticated blockchain processing capabilities +### New Features +- **Enhanced Mathematical Operations**: Added division by Dollars and Sum trait implementation to StoredF64, enabling more comprehensive financial calculations and aggregations ([crates/brk_structs/src/structs/stored_f64.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.101/crates/brk_structs/src/structs/stored_f64.rs)) -### Computer Module - Complete Architecture Overhaul -- **Redesigned**: [Market computation system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.107/crates/brk_computer/src/market.rs) with advanced financial analytics and technical analysis -- **Enhanced**: [Cointime analytics](https://github.com/bitcoinresearchkit/brk/blob/v0.0.107/crates/brk_computer/src/cointime.rs) with improved Bitcoin economics analysis -- **Optimized**: [Price computation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.107/crates/brk_computer/src/price.rs) for better accuracy and performance -- **Improved**: [Constants management](https://github.com/bitcoinresearchkit/brk/blob/v0.0.107/crates/brk_computer/src/constants.rs) with enhanced organization +### Website Improvements +- **Mining Pool Interface Redesign**: Streamlined mining pool rewards visualization by consolidating coinbase, subsidy, and fees into a unified rewards interface with improved color coding and better data organization ([websites/bitview/scripts/options.js](https://github.com/bitcoinresearchkit/brk/blob/v0.0.101/websites/bitview/scripts/options.js)) +- **Chart Label Enhancement**: Updated mining dominance chart title from generic "Dominance" to specific "Mining Dominance" for better clarity -### Vector System - Comprehensive Enhancement -- **Restructured**: [Eager vector builder](https://github.com/bitcoinresearchkit/brk/blob/v0.0.107/crates/brk_computer/src/grouped/builder_eager.rs) with improved efficiency -- **Enhanced**: [Lazy vector builder](https://github.com/bitcoinresearchkit/brk/blob/v0.0.107/crates/brk_computer/src/grouped/builder_lazy.rs) for better memory management -- **Optimized**: All grouped computation modules with standardized architecture and improved performance -- **Improved**: [Mining pool vectors](https://github.com/bitcoinresearchkit/brk/blob/v0.0.107/crates/brk_computer/src/pools/vecs.rs) for better pool analytics +### Performance Improvements +- **Parameter Validation Optimization**: Enhanced parameter validation limits, increasing maximum vector count from 32 to 64 and adjusting string size limits for better API performance ([crates/brk_interface/src/ids.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.101/crates/brk_interface/src/ids.rs)) +- **Debug Output Cleanup**: Removed debug statements from parameter validation functions for cleaner production behavior -### Data Structures - Major Enhancement -- **Enhanced**: [OHLC structure](https://github.com/bitcoinresearchkit/brk/blob/v0.0.107/crates/brk_structs/src/structs/ohlc.rs) with comprehensive financial data support -- **Improved**: [Address and UTXO grouping](https://github.com/bitcoinresearchkit/brk/tree/v0.0.107/crates/brk_structs/src/groups/) with better organization and functionality -- **Enhanced**: [StoredF32 and StoredF64](https://github.com/bitcoinresearchkit/brk/tree/v0.0.107/crates/brk_structs/src/structs/) types with additional mathematical operations -- **Optimized**: [Date and time structures](https://github.com/bitcoinresearchkit/brk/blob/v0.0.107/crates/brk_structs/src/structs/date.rs) for better temporal analysis - -### Stateful Processing - Complete Redesign -- **Redesigned**: [Stateful module coordination](https://github.com/bitcoinresearchkit/brk/blob/v0.0.107/crates/brk_computer/src/stateful/mod.rs) with improved architecture -- **Enhanced**: [Address cohort processing](https://github.com/bitcoinresearchkit/brk/blob/v0.0.107/crates/brk_computer/src/stateful/address_cohorts.rs) for better performance -- **Improved**: [UTXO cohort management](https://github.com/bitcoinresearchkit/brk/blob/v0.0.107/crates/brk_computer/src/stateful/utxo_cohorts.rs) with enhanced analytics - -### Progressive Web App - Major Feature Enhancement -- **Major Update**: [Main application interface](https://github.com/bitcoinresearchkit/brk/blob/v0.0.107/websites/bitview/scripts/main.js) with comprehensive UI improvements -- **Enhanced**: [Chart options system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.107/websites/bitview/scripts/options.js) with extensive new visualization capabilities -- **Improved**: [Lightweight Charts integration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.107/websites/bitview/packages/lightweight-charts/wrapper.js) for better charting performance - -### CLI and Dependencies -- **Updated**: [CLI configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.107/crates/brk_cli/Cargo.toml) with dependency improvements -- **Enhanced**: [Interface vector handling](https://github.com/bitcoinresearchkit/brk/blob/v0.0.107/crates/brk_interface/src/vecs.rs) for better data management - -### Version Management -- **Updated**: All workspace crate versions from 0.0.106 to 0.0.107 for coordinated release -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.107/Cargo.toml#L29-L41) with updated internal crate dependencies -- **Maintained**: Build reproducibility and dependency consistency across all modules - -### Performance and Architecture -- **Delivered**: Comprehensive system-wide performance improvements -- **Enhanced**: Memory efficiency through optimized data structures and algorithms -- **Improved**: Computational accuracy across all Bitcoin analytics modules -- **Strengthened**: Code maintainability through architectural improvements -- **Advanced**: Financial analysis capabilities with sophisticated technical indicators - -### Bitcoin Research Capabilities -- **Enabled**: Advanced blockchain analysis with comprehensive stateful processing -- **Enhanced**: Mining pool analytics with improved identification and tracking -- **Delivered**: Sophisticated cointime analysis for Bitcoin economics research -- **Provided**: Professional-grade financial analytics and technical indicators -- **Optimized**: Large-scale Bitcoin data processing with improved performance - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.106...v0.0.107) - -## [v0.0.106](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.106) - 2025-07-24 - -### Computer Module - Market Analysis Enhancement -- **Enhanced**: [Market computation system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.106/crates/brk_computer/src/market.rs) with advanced financial analytics and improved technical indicators -- **Improved**: [Constants management](https://github.com/bitcoinresearchkit/brk/blob/v0.0.106/crates/brk_computer/src/constants.rs) with better organization and additional constants -- **Optimized**: [Eager vector builder](https://github.com/bitcoinresearchkit/brk/blob/v0.0.106/crates/brk_computer/src/grouped/builder_eager.rs) for improved performance -- **Enhanced**: [Transaction index processing](https://github.com/bitcoinresearchkit/brk/blob/v0.0.106/crates/brk_computer/src/grouped/from_txindex.rs) with better efficiency - -### Data Structures Enhancement -- **Improved**: [Dollars structure](https://github.com/bitcoinresearchkit/brk/blob/v0.0.106/crates/brk_structs/src/structs/dollars.rs) with enhanced functionality and utility methods - -### Development Environment -- **Added**: [Rust toolchain configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.106/rust-toolchain.toml) for consistent development environment across all contributors - -### Progressive Web App - Enhanced Analytics -- **Enhanced**: [Chart visualization options](https://github.com/bitcoinresearchkit/brk/blob/v0.0.106/websites/bitview/scripts/options.js) with improved market data visualization -- **Improved**: [Chart rendering](https://github.com/bitcoinresearchkit/brk/blob/v0.0.106/websites/bitview/scripts/chart.js) for better performance -- **Enhanced**: [Main application interface](https://github.com/bitcoinresearchkit/brk/blob/v0.0.106/websites/bitview/scripts/main.js) with improved functionality -- **Optimized**: [Table presentation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.106/websites/bitview/scripts/table.js) for better data display - -### Version Management -- **Updated**: All workspace crate versions from 0.0.105 to 0.0.106 for coordinated release -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.106/Cargo.toml#L29-L41) with updated internal crate dependencies -- **Maintained**: Build reproducibility and dependency consistency across all modules - -### Financial Analytics Enhancement -- **Delivered**: Advanced market analysis capabilities for Bitcoin research -- **Enhanced**: Technical indicator calculations with improved accuracy -- **Improved**: Financial data visualization for better insights - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.105...v0.0.106) - -## [v0.0.105](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.105) - 2025-07-24 - -### Build System Optimization -- **Reorganized**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.105/Cargo.toml) for improved dependency management and cleaner build process -- **Streamlined**: Workspace structure with better organization of internal crate dependencies - -### Version Management -- **Updated**: All workspace crate versions from 0.0.104 to 0.0.105 for coordinated release -- **Enhanced**: [Cargo workspace dependencies](https://github.com/bitcoinresearchkit/brk/blob/v0.0.105/Cargo.toml#L29-L41) with optimized internal crate references -- **Maintained**: Build reproducibility and dependency consistency across all modules - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.104...v0.0.105) - -## [v0.0.104](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.104) - 2025-07-24 - -### CI/CD and Release Infrastructure -- **Updated**: [GitHub release workflow](https://github.com/bitcoinresearchkit/brk/blob/v0.0.104/.github/workflows/release.yml) with improved automation and deployment configuration -- **Optimized**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.104/Cargo.toml) for better dependency management and streamlined build process - -### Version Management -- **Updated**: All workspace crate versions from 0.0.103 to 0.0.104 for coordinated release -- **Enhanced**: [Cargo workspace dependencies](https://github.com/bitcoinresearchkit/brk/blob/v0.0.104/Cargo.toml#L29-L41) with optimized internal crate references -- **Maintained**: Build reproducibility and dependency consistency across all modules - -### Development Infrastructure -- **Streamlined**: Build process configuration for improved developer experience -- **Enhanced**: Release automation for better deployment reliability -- **Improved**: Workspace organization for cleaner dependency management - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.103...v0.0.104) - -## [v0.0.103](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.103) - 2025-07-24 - -### Computer Module - Statistical Analysis Enhancement -- **Major Refactoring**: [Standard deviation computation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.103/crates/brk_computer/src/grouped/sd_from_dateindex.rs) with improved statistical analysis algorithms and better performance -- **Enhanced**: [Market data analysis](https://github.com/bitcoinresearchkit/brk/blob/v0.0.103/crates/brk_computer/src/market.rs) with sophisticated financial analytics and improved technical indicators -- **Optimized**: [Ratio computation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.103/crates/brk_computer/src/grouped/ratio_from_dateindex.rs) for better numerical accuracy - -### Progressive Web App - Feature Enhancement -- **Added**: [New visualization features](https://github.com/bitcoinresearchkit/brk/blob/v0.0.103/websites/bitview/scripts/options.js) with enhanced chart configuration and improved user interface -- **Improved**: [Main application logic](https://github.com/bitcoinresearchkit/brk/blob/v0.0.103/websites/bitview/scripts/main.js) with enhanced functionality - -### Build System Enhancement -- **Updated**: [Bundler configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.103/crates/brk_bundler/Cargo.toml) with dependency improvements for better build performance - -### Version Management -- **Updated**: All workspace crate versions from 0.0.101 to 0.0.103 (skipping 0.0.102) for coordinated release -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.103/Cargo.toml#L29-L41) with updated internal crate dependencies -- **Maintained**: Build reproducibility and dependency consistency across all modules - -### Statistical Computing Advancement -- **Delivered**: Improved statistical analysis capabilities for Bitcoin research -- **Enhanced**: Financial data processing with better accuracy and performance -- **Optimized**: Mathematical computations for large-scale blockchain data analysis - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.101...v0.0.103) - -## [v0.0.101](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.101) - 2025-07-24 - -### Code Optimization and Refinement -- **Optimized**: [Computer library interface](https://github.com/bitcoinresearchkit/brk/blob/v0.0.101/crates/brk_computer/src/lib.rs) with streamlined module organization -- **Enhanced**: [Stateful processing](https://github.com/bitcoinresearchkit/brk/blob/v0.0.101/crates/brk_computer/src/stateful/common.rs) with improved efficiency and better error handling -- **Improved**: [ID management](https://github.com/bitcoinresearchkit/brk/blob/v0.0.101/crates/brk_interface/src/ids.rs) for better data identifier handling - -### Data Structures Enhancement -- **Enhanced**: [StoredF64 functionality](https://github.com/bitcoinresearchkit/brk/blob/v0.0.101/crates/brk_structs/src/structs/stored_f64.rs) with additional utility methods for high-precision calculations - -### Progressive Web App - UI Optimization -- **Streamlined**: [Chart options configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.101/websites/bitview/scripts/options.js) with cleaner code organization and improved performance - -### Version Management -- **Updated**: All workspace crate versions from 0.0.100 to 0.0.101 for coordinated release -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.101/Cargo.toml#L29-L41) with updated internal crate dependencies -- **Maintained**: Build reproducibility and dependency consistency across all modules +### Code Quality +- **Unused Code Removal**: Cleaned up commented allocation profiling code in the computer module for better code maintainability [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.100...v0.0.101) -## [v0.0.100](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.100) - 2025-07-24 +## [v0.0.100](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.100) - 2025-09-07 -### BREAKING CHANGES - Mining Pool System Enhancement -- **Enhanced**: [Mining pool modules](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/crates/brk_computer/src/pools/mod.rs) with comprehensive pool management and analytics infrastructure -- **Added**: [Pool vector storage system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/crates/brk_computer/src/pools/vecs.rs) for efficient mining pool data storage and retrieval -- **Refactored**: [Pool identification](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/crates/brk_computer/src/pools/id.rs) with improved pool detection algorithms -- **Streamlined**: [Pool data structures](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/crates/brk_computer/src/pools/pools.rs) for better performance and maintainability +### New Features +- **Performance Profiling**: Added comprehensive profiling capabilities with Inferno flamegraph generation, enabling detailed performance analysis and optimization of Bitcoin data processing workflows ([Cargo.lock](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/Cargo.lock)) +- **Memory Optimization**: Integrated Allocative memory profiling tools across core structs and computer modules, providing detailed heap allocation tracking and memory usage analysis for large-scale blockchain processing ([crates/brk_computer/Cargo.toml](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/crates/brk_computer/Cargo.toml)) -### Computer Module - Major Architecture Enhancement -- **Enhanced**: [Computer library interface](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/crates/brk_computer/src/lib.rs) with improved mining pool integration -- **Optimized**: [Chain analysis](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/crates/brk_computer/src/chain.rs) with better blockchain processing capabilities -- **Added**: [Computer dependencies](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/crates/brk_computer/Cargo.toml) for enhanced pool analytics functionality +### Build System +- **Enhanced Git Ignore**: Added `bridge/` directory to gitignore patterns for cleaner repository management ([.gitignore](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/.gitignore)) -### Data Structures - Comprehensive Type Enhancement -- **Added**: [AddressBytes type](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/crates/brk_structs/src/structs/addressbytes.rs) for efficient address data storage -- **Enhanced**: [StoredF32 capabilities](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/crates/brk_structs/src/structs/stored_f32.rs) with additional mathematical operations -- **Improved**: [StoredU32 functionality](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/crates/brk_structs/src/structs/stored_u32.rs) with enhanced utility methods -- **Added**: [Dependencies](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/crates/brk_structs/Cargo.toml) for improved data type support - -### Progressive Web App - Major Frontend Overhaul -- **Redesigned**: [Main application interface](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/websites/bitview/scripts/main.js) with comprehensive UI improvements and mining pool visualization -- **Enhanced**: [Chart options system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/websites/bitview/scripts/options.js) with expanded mining pool analytics and visualization capabilities -- **Improved**: [Table functionality](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/websites/bitview/scripts/table.js) for better data presentation - -### Indexer and Interface Enhancement -- **Optimized**: [Vector management](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/crates/brk_indexer/src/vecs.rs) with improved efficiency and mining pool data integration -- **Enhanced**: [Store operations](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/crates/brk_indexer/src/stores.rs) for better data storage patterns -- **Improved**: [Interface output](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/crates/brk_interface/src/output.rs) with mining pool data support -- **Added**: [Format support](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/crates/brk_interface/src/format.rs) for enhanced data presentation - -### Parser and CLI Enhancement -- **Enhanced**: [Parser examples](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/crates/brk_parser/examples/main.rs) with improved blockchain parsing demonstrations -- **Improved**: [Block parsing](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/crates/brk_parser/src/block.rs) with better mining pool data extraction -- **Enhanced**: [CLI bridge functionality](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/crates/brk_cli/src/bridge.rs) for improved mining pool integration - -### Development and Configuration -- **Updated**: [TODO.md](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/TODO.md) with refined development priorities including mining pool features -- **Enhanced**: [Gitignore](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/.gitignore) with better file exclusion patterns -- **Improved**: [CLI configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/crates/brk_cli/Cargo.toml) with dependency updates for mining pool support - -### Vector Builder System Enhancement -- **Standardized**: [Vector builder imports](https://github.com/bitcoinresearchkit/brk/tree/v0.0.100/crates/brk_computer/src/grouped/) across all grouped computation modules for consistent vector handling -- **Optimized**: Memory efficiency and computation patterns throughout the grouped vector system - -### Version Management -- **Updated**: All workspace crate versions from 0.0.98 to 0.0.100 (skipping 0.0.99) for coordinated release -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.100/Cargo.toml#L29-L41) with updated internal crate dependencies -- **Maintained**: Build reproducibility and dependency consistency across all modules - -### Mining Pool Analytics - Production Ready -- **Delivered**: Complete mining pool identification and tracking system -- **Enabled**: Historical and real-time mining pool analytics visualization -- **Provided**: Comprehensive mining pool data storage and retrieval infrastructure -- **Enhanced**: Blockchain analysis with full mining pool context and attribution +### Performance Infrastructure +- **Advanced Profiling Stack**: Complete profiling infrastructure with flamegraph generation, memory allocation tracking, and performance bottleneck identification tools for production-scale Bitcoin analysis +- **Memory Allocation Tracking**: Deep integration of allocative derive macros throughout the codebase enabling precise memory usage monitoring during blockchain data processing [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.98...v0.0.100) -## [v0.0.98](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.98) - 2025-07-24 +## [v0.0.98](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.98) - 2025-09-05 -### Major Feature Addition - Mining Pool Analytics -- **Added**: [Comprehensive mining pool system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.98/crates/brk_computer/src/pools/pools.rs) for detailed Bitcoin mining pool analysis and tracking -- **Implemented**: [Pool identification system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.98/crates/brk_computer/src/pools/id.rs) for accurate mining pool detection and classification -- **Created**: [Pool data structures](https://github.com/bitcoinresearchkit/brk/blob/v0.0.98/crates/brk_computer/src/pools/pool.rs) with efficient pool information storage -- **Added**: [Mining pools example](https://github.com/bitcoinresearchkit/brk/blob/v0.0.98/crates/brk_computer/examples/pools.rs) demonstrating pool analytics capabilities +### New Features +- **Mining Pool Analysis**: Added comprehensive mining pool detection and analysis tools with example implementation demonstrating pool identification from coinbase transaction tags ([crates/brk_computer/examples/pools.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.98/crates/brk_computer/examples/pools.rs)) +- **Enhanced Caching**: Integrated `quick_cache` dependency to the interface layer for improved performance of frequently accessed data and search results ([Cargo.toml](https://github.com/bitcoinresearchkit/brk/blob/v0.0.98/Cargo.toml)) +- **Advanced Chain Analytics**: Added comprehensive block count target metrics for all time intervals (daily, weekly, monthly, quarterly, semester, yearly, decade) enabling analysis of Bitcoin mining performance against expected block production rates ([crates/brk_computer/src/chain.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.98/crates/brk_computer/src/chain.rs)) -### Computer Module Enhancement -- **Enhanced**: [Chain analysis](https://github.com/bitcoinresearchkit/brk/blob/v0.0.98/crates/brk_computer/src/chain.rs) with improved blockchain processing integration -- **Optimized**: [Stateful processing](https://github.com/bitcoinresearchkit/brk/blob/v0.0.98/crates/brk_computer/src/stateful/common.rs) for better performance with mining pool data -- **Streamlined**: [Constants management](https://github.com/bitcoinresearchkit/brk/blob/v0.0.98/crates/brk_computer/src/constants.rs) removing unused definitions - -### Interface and Data Management -- **Added**: [ID management system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.98/crates/brk_interface/src/ids.rs) for efficient data identifier handling -- **Removed**: [MaybeIds module](https://github.com/bitcoinresearchkit/brk/blob/v0.0.98/crates/brk_interface/src/maybe_ids.rs) replaced with improved ID system -- **Enhanced**: [Interface configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.98/crates/brk_interface/src/lib.rs) with better module organization -- **Updated**: [Store operations](https://github.com/bitcoinresearchkit/brk/blob/v0.0.98/crates/brk_store/src/lib.rs) with optimized data access patterns - -### Progressive Web App - Mining Pool Integration -- **Enhanced**: [Chart options](https://github.com/bitcoinresearchkit/brk/blob/v0.0.98/websites/bitview/scripts/options.js) with mining pool visualization capabilities -- **Updated**: [Main interface](https://github.com/bitcoinresearchkit/brk/blob/v0.0.98/websites/bitview/scripts/main.js) with pool analytics integration -- **Improved**: [Website layout](https://github.com/bitcoinresearchkit/brk/blob/v0.0.98/websites/bitview/index.html) for enhanced user experience - -### Dependencies and Configuration -- **Updated**: [Computer module dependencies](https://github.com/bitcoinresearchkit/brk/blob/v0.0.98/crates/brk_computer/Cargo.toml) with required crates for pool analysis -- **Enhanced**: [Interface dependencies](https://github.com/bitcoinresearchkit/brk/blob/v0.0.98/crates/brk_interface/Cargo.toml) for improved data handling -- **Optimized**: [Server configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.98/crates/brk_server/Cargo.toml) with dependency updates - -### Data Fetcher Enhancement -- **Improved**: [BRK data fetching](https://github.com/bitcoinresearchkit/brk/blob/v0.0.98/crates/brk_fetcher/src/brk.rs) with better error handling and performance - -### Version Management -- **Updated**: All workspace crate versions from 0.0.96 to 0.0.98 (skipping 0.0.97) for coordinated release -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.98/Cargo.toml#L29-L41) with updated internal crate dependencies -- **Maintained**: Build reproducibility and dependency consistency across all modules - -### Mining Analytics Capabilities -- **Enabled**: Comprehensive Bitcoin mining pool identification and tracking -- **Provided**: Historical mining pool performance analysis -- **Delivered**: Real-time mining pool statistics and visualization -- **Enhanced**: Blockchain analysis with mining pool context and attribution +### Developer Experience +- **Enum-based Configuration**: Added `num_enum` dependency to the computer module for improved type-safe configuration handling and better API ergonomics ([crates/brk_computer/Cargo.toml](https://github.com/bitcoinresearchkit/brk/blob/v0.0.98/crates/brk_computer/Cargo.toml)) [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.96...v0.0.98) -## [v0.0.96](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.96) - 2025-07-24 +## [v0.0.96](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.96) - 2025-09-03 -### BREAKING CHANGES - Major Computer Module Refactoring -- **Restructured**: [Transactions module renamed to chain](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/crates/brk_computer/src/chain.rs) for better blockchain analysis organization -- **Removed**: [Blocks module](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/crates/brk_computer/src/blocks.rs) with functionality integrated into chain module -- **Removed**: [Mining module](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/crates/brk_computer/src/mining.rs) with mining analytics consolidated - -### Computer Module - Complete Architecture Overhaul -- **Enhanced**: [Market computation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/crates/brk_computer/src/market.rs) with improved technical analysis and performance optimization -- **Refactored**: [Price analysis](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/crates/brk_computer/src/price.rs) with enhanced Bitcoin price modeling and calculation accuracy -- **Improved**: [Stateful processing](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/crates/brk_computer/src/stateful/common.rs) with comprehensive blockchain state management -- **Optimized**: [Builder patterns](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/crates/brk_computer/src/grouped/builder_eager.rs) for improved vector computation efficiency - -### Data Structures - New Type Support -- **Added**: [StoredF64 type](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/crates/brk_structs/src/structs/stored_f64.rs) for high-precision floating-point storage -- **Added**: [StoredString type](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/crates/brk_structs/src/structs/stored_string.rs) for efficient string data storage with compression support -- **Enhanced**: [Feerate structure](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/crates/brk_structs/src/structs/feerate.rs) with improved fee calculation accuracy -- **Improved**: [Height and Timestamp](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/crates/brk_structs/src/structs/) structures with additional utility methods - -### Indexer and Interface Enhancement -- **Optimized**: [Core indexer functionality](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/crates/brk_indexer/src/lib.rs) with improved blockchain data processing -- **Enhanced**: [Vector management](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/crates/brk_indexer/src/vecs.rs) for better memory efficiency -- **Improved**: [Store operations](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/crates/brk_indexer/src/stores.rs) with optimized data storage patterns -- **Added**: [CLI integration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/crates/brk_interface/Cargo.toml) with enhanced command-line interface support - -### Progressive Web App - Major Frontend Overhaul -- **Revamped**: [Main application logic](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/websites/bitview/scripts/main.js) with comprehensive UI improvements and better state management -- **Enhanced**: [Chart visualization](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/websites/bitview/scripts/chart.js) with improved rendering performance and user interactions -- **Redesigned**: [Options interface](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/websites/bitview/scripts/options.js) with streamlined configuration and better UX -- **Updated**: [Font assets](https://github.com/bitcoinresearchkit/brk/tree/v0.0.96/websites/bitview/assets/fonts/) with Geist Mono and Lilex font version updates for improved typography - -### Parser and Server Enhancement -- **Enhanced**: [Block parsing](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/crates/brk_parser/src/block.rs) with improved Bitcoin block processing capabilities -- **Optimized**: [Server API interface](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/crates/brk_server/src/api/interface.rs) for better performance -- **Streamlined**: [Server module organization](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/crates/brk_server/src/lib.rs) with cleaner architecture +### New Features +- **Fuzzy Search Integration**: Added nucleo-matcher dependency to the interface layer, enabling fast fuzzy string matching capabilities for dataset and vector name searches ([crates/brk_interface/Cargo.toml](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/crates/brk_interface/Cargo.toml)) ### Development Environment -- **Added**: [Zed editor configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/.zed/settings.json) for improved development experience -- **Enhanced**: [Gitignore configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/.gitignore) with better file exclusion patterns -- **Updated**: [CLI dependencies](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/crates/brk_cli/Cargo.toml) with version upgrades for improved functionality - -### Version Management -- **Updated**: All workspace crate versions from 0.0.95 to 0.0.96 for coordinated release -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/Cargo.toml#L29-L41) with updated internal crate dependencies -- **Maintained**: Build reproducibility and dependency consistency across all modules - -### Performance and Architecture -- **Consolidated**: Module organization for better maintainability and reduced complexity -- **Improved**: Memory efficiency through optimized data structures and computation patterns -- **Enhanced**: Frontend performance with streamlined JavaScript and improved asset management -- **Strengthened**: Type safety with new data storage types for diverse Bitcoin analytics +- **Zed Editor Support**: Added Zed editor configuration with optimized file scan exclusions for better performance when working with the codebase, excluding generated assets and large dependency files ([.zed/settings.json](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/.zed/settings.json)) +- **Git Ignore Enhancement**: Added `/ids.txt` to gitignore patterns and removed redundant editor-specific entries for cleaner repository management ([.gitignore](https://github.com/bitcoinresearchkit/brk/blob/v0.0.96/.gitignore)) [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.95...v0.0.96) -## [v0.0.95](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.95) - 2025-07-24 +## [v0.0.95](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.95) - 2025-08-28 -### Stateful Processing - Major Enhancement -- **Added**: [Comprehensive stateful utilities](https://github.com/bitcoinresearchkit/brk/blob/v0.0.95/crates/brk_computer/src/stateful/common.rs) for advanced blockchain state management and analysis -- **Enhanced**: Stateful computation capabilities with improved rollback functionality and blockchain reorganization handling -- **Optimized**: Memory efficiency and processing speed for large-scale Bitcoin data analysis +### New Features +- **Enhanced Profit/Loss Analytics**: Added comprehensive unrealized profit plus loss tracking with both height-based and date-indexed vectors, enabling analysis of total unrealized positions regardless of profit or loss status ([crates/brk_computer/src/stateful/common.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.95/crates/brk_computer/src/stateful/common.rs)) +- **Cohort-Relative Market Cap Metrics**: Introduced cohort-specific market cap relative metrics, calculating unrealized profit/loss percentages relative to each cohort's own market capitalization rather than total Bitcoin market cap for more accurate cohort analysis +- **Profit/Loss Proportion Analysis**: Added new metrics showing unrealized profit and loss relative to the cohort's own total unrealized profit plus loss, providing insight into the internal composition of unrealized positions -### Progressive Web App - User Experience Enhancement -- **Improved**: [Main JavaScript functionality](https://github.com/bitcoinresearchkit/brk/blob/v0.0.95/websites/bitview/scripts/main.js) with enhanced interactive features -- **Enhanced**: [Chart options and visualization](https://github.com/bitcoinresearchkit/brk/blob/v0.0.95/websites/bitview/scripts/options.js) with improved user interface responsiveness -- **Optimized**: Frontend performance and data visualization capabilities - -### Version Management -- **Updated**: All workspace crate versions from 0.0.94 to 0.0.95 for coordinated release -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.95/Cargo.toml#L29-L41) with updated internal crate dependencies -- **Maintained**: Build reproducibility and dependency consistency across all modules +### Performance Improvements +- **Computation Optimization**: Enhanced computation logic for unrealized metrics with dedicated addition operations between profit and loss vectors, improving calculation accuracy and reducing redundant operations [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.94...v0.0.95) -## [v0.0.94](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.94) - 2025-07-24 +## [v0.0.94](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.94) - 2025-08-28 -### BREAKING CHANGES - Website Rebranding and Organization -- **Renamed**: Complete website restructuring from `default` to `bitview` for better project branding and identity -- **Reorganized**: [Website directory structure](https://github.com/bitcoinresearchkit/brk/tree/v0.0.94/websites/bitview) with comprehensive asset migration including fonts, PWA assets, and all JavaScript modules -- **Enhanced**: [BitView brand identity](https://github.com/bitcoinresearchkit/brk/blob/v0.0.94/websites/bitview/manifest.webmanifest) with updated Progressive Web App configuration +### Breaking Changes +- **Website Rebranding**: Replaced "Default" website option with "Bitview" option, aligning with the new `bitview.space` branding and updated default configuration ([crates/brk_cli/src/website.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.94/crates/brk_cli/src/website.rs)) -### Progressive Web App - Complete Asset Migration -- **Migrated**: [Comprehensive PWA assets](https://github.com/bitcoinresearchkit/brk/tree/v0.0.94/websites/bitview/assets/pwa) including 30+ Apple splash screen variants for complete iOS device support -- **Enhanced**: [Font system](https://github.com/bitcoinresearchkit/brk/tree/v0.0.94/websites/bitview/assets/fonts) with Lilex and Geist Mono variable fonts for improved typography -- **Optimized**: [Icon and manifest configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.94/websites/bitview/assets/pwa/manifest.webmanifest) for cross-platform PWA installation +### New Features +- **Extended Analytics**: Added comprehensive 30-day exponential moving averages (EMA) for key Bitcoin metrics including Spent Output Profit Ratio (SOPR), Adjusted SOPR, and Sell Side Risk Ratio, providing enhanced trend analysis capabilities ([crates/brk_computer/src/stateful/common.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.94/crates/brk_computer/src/stateful/common.rs)) +- **Market Cap Relative Metrics**: Introduced unrealized profit and loss metrics relative to market cap, enabling better understanding of market valuation extremes and profit-taking behavior +- **Enhanced Block Analytics**: Added comprehensive statistical analysis options (min/max, averages, percentiles) for block-related datasets including transaction counts and block sizes ([crates/brk_computer/src/blocks.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.94/crates/brk_computer/src/blocks.rs)) -### Computer Module - Stateful Processing Enhancement -- **Enhanced**: [Block processing utilities](https://github.com/bitcoinresearchkit/brk/blob/v0.0.94/crates/brk_computer/src/blocks.rs) with improved efficiency -- **Improved**: [Address cohort processing](https://github.com/bitcoinresearchkit/brk/blob/v0.0.94/crates/brk_computer/src/stateful/address_cohort.rs) with optimized algorithms -- **Optimized**: [UTXO cohort management](https://github.com/bitcoinresearchkit/brk/blob/v0.0.94/crates/brk_computer/src/stateful/utxo_cohorts.rs) for better performance -- **Streamlined**: [Common stateful operations](https://github.com/bitcoinresearchkit/brk/blob/v0.0.94/crates/brk_computer/src/stateful/common.rs) with improved functionality +### API Changes +- **Parameter Reordering**: Improved function parameter organization in stateful computations by moving `extended` parameter before `compute_relative_to_all` for better logical flow ([crates/brk_computer/src/stateful/address_cohort.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.94/crates/brk_computer/src/stateful/address_cohort.rs)) -### Frontend Development - Package Management Cleanup -- **Cleaned**: Removed TypeScript definition files for streamlined development workflow -- **Optimized**: Package organization with focus on runtime JavaScript modules over development types -- **Enhanced**: [BitView interface](https://github.com/bitcoinresearchkit/brk/blob/v0.0.94/websites/bitview/scripts/main.js) with improved user interactions - -### CLI and Configuration -- **Updated**: [CLI configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.94/crates/brk_cli/src/config.rs) with BitView website integration -- **Enhanced**: [Website serving](https://github.com/bitcoinresearchkit/brk/blob/v0.0.94/crates/brk_cli/src/website.rs) for BitView deployment -- **Improved**: [Project documentation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.94/README.md) with BitView references - -### Version Management -- **Updated**: All workspace crate versions from 0.0.93 to 0.0.94 for coordinated release -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.94/Cargo.toml#L29-L41) with updated internal crate dependencies -- **Maintained**: Build reproducibility and dependency consistency across all modules - -### Brand Identity and User Experience -- **Established**: BitView as the primary web interface for Bitcoin Research Kit -- **Enhanced**: Professional presentation with comprehensive cross-device PWA support -- **Optimized**: Development workflow with streamlined asset management +### Documentation +- **Website Updates**: Updated README to reflect new primary website URL `bitview.space` and streamlined hosting service descriptions ([README.md](https://github.com/bitcoinresearchkit/brk/blob/v0.0.94/README.md)) [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.93...v0.0.94) -## [v0.0.93](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.93) - 2025-07-24 +## [v0.0.93](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.93) - 2025-08-26 -### Progressive Web App - Screenshot Capability Enhancement -- **Added**: [Modern Screenshot integration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.93/websites/default/packages/modern-screenshot/4.6.6/dist/index.mjs) for advanced chart and data export functionality -- **Enhanced**: [Screenshot wrapper module](https://github.com/bitcoinresearchkit/brk/blob/v0.0.93/websites/default/packages/modern-screenshot/wrapper.js) for seamless chart capture integration -- **Improved**: [Chart export capabilities](https://github.com/bitcoinresearchkit/brk/blob/v0.0.93/websites/default/scripts/chart.js) with high-quality image generation for research and presentation +### Website Frontend Enhancements +- **Screenshot Mode**: Added comprehensive screenshot mode functionality to the default website, enabling clean chart captures by automatically hiding interactive elements like legends, buttons, and controls when screenshot mode is activated ([websites/default/index.html](https://github.com/bitcoinresearchkit/brk/blob/v0.0.93/websites/default/index.html)) +- **API Migration**: Updated custom website examples to use the new `bitview.space` API endpoint instead of the deprecated `next.bitray.xyz` endpoint ([websites/custom/index.html](https://github.com/bitcoinresearchkit/brk/blob/v0.0.93/websites/custom/index.html)) -### Frontend Dependencies Update -- **Updated**: [uFuzzy search to v1.0.19](https://github.com/bitcoinresearchkit/brk/blob/v0.0.93/websites/default/packages/leeoniya-ufuzzy/1.0.19/dist/uFuzzy.mjs) with improved search performance and accuracy -- **Enhanced**: [Package management script](https://github.com/bitcoinresearchkit/brk/blob/v0.0.93/websites/default/packages/unpkg.sh) for better dependency automation -- **Optimized**: Frontend package organization and .gitignore management +### Development Documentation +- **TODO Cleanup**: Streamlined development TODO list by removing completed or outdated items, focusing on current priorities like rollback functionality, cost basis percentiles, and oracle price datasets ([TODO.md](https://github.com/bitcoinresearchkit/brk/blob/v0.0.93/TODO.md)) -### User Interface Enhancement -- **Improved**: [Default website layout](https://github.com/bitcoinresearchkit/brk/blob/v0.0.93/websites/default/index.html) with enhanced chart export integration -- **Enhanced**: [Custom website layout](https://github.com/bitcoinresearchkit/brk/blob/v0.0.93/websites/custom/index.html) for better user experience -- **Streamlined**: [Main JavaScript logic](https://github.com/bitcoinresearchkit/brk/blob/v0.0.93/websites/default/scripts/main.js) for improved performance - -### Development and Dependencies -- **Updated**: [Rapidhash dependency](https://github.com/bitcoinresearchkit/brk/blob/v0.0.93/crates/brk_structs/Cargo.toml) to version 3.1.0 for improved hashing performance -- **Enhanced**: [CLI configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.93/crates/brk_cli/Cargo.toml) with dependency updates -- **Cleaned**: [TODO.md](https://github.com/bitcoinresearchkit/brk/blob/v0.0.93/TODO.md) with completed task cleanup - -### Version Management -- **Updated**: All workspace crate versions from 0.0.91 to 0.0.93 (skipping 0.0.92) for coordinated release -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.93/Cargo.toml#L29-L41) with updated internal crate dependencies -- **Maintained**: Build reproducibility and dependency consistency across all modules - -### Export and Research Features -- **Added**: High-quality chart image export for research papers and presentations -- **Enhanced**: Data visualization sharing capabilities for Bitcoin analysis -- **Improved**: User workflow for generating publication-ready charts and graphs +### Package Management +- **TypeScript Definitions**: Added comprehensive TypeScript definitions for the uFuzzy library, enabling better type safety and development experience for fuzzy search functionality ([websites/default/packages/leeoniya-ufuzzy/1.0.18/dist/uFuzzy.d.ts](https://github.com/bitcoinresearchkit/brk/blob/v0.0.93/websites/default/packages/leeoniya-ufuzzy/1.0.18/dist/uFuzzy.d.ts)) +- **Enhanced Ignore Patterns**: Improved package directory gitignore patterns to exclude additional development files and TypeScript definitions [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.91...v0.0.93) -## [v0.0.91](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.91) - 2025-07-24 +## [v0.0.91](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.91) - 2025-08-26 -### Market Data Analysis - Major EMA Enhancement -- **Added**: [Comprehensive EMA (Exponential Moving Average) support](https://github.com/bitcoinresearchkit/brk/blob/v0.0.91/crates/brk_computer/src/market.rs) including 1w, 8d, 13d, 21d, 1m, 34d, 55d, 89d, 144d, 200d, 1y, 2y, 200w, and 4y EMA calculations -- **Enhanced**: [Market computation module](https://github.com/bitcoinresearchkit/brk/blob/v0.0.91/crates/brk_computer/src/market.rs) with sophisticated technical analysis capabilities for Bitcoin price movement analysis -- **Improved**: Financial analytics with comprehensive moving average support for traders and researchers +### Performance Improvements +- **Constants Module Refactoring**: Major refactoring of constants computation from repetitive individual calculations to efficient loop-based processing, significantly reducing code duplication and improving maintainability ([crates/brk_computer/src/constants.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.91/crates/brk_computer/src/constants.rs)) +- **Additional Constants**: Added `constant_144` and `constant_600` vectors -### Computer Module Optimization -- **Streamlined**: [Constants management](https://github.com/bitcoinresearchkit/brk/blob/v0.0.91/crates/brk_computer/src/constants.rs) with better organization and reduced complexity -- **Enhanced**: [Stateful computation utilities](https://github.com/bitcoinresearchkit/brk/blob/v0.0.91/crates/brk_computer/src/stateful/common.rs) for improved processing efficiency -- **Optimized**: [UTXO cohort processing](https://github.com/bitcoinresearchkit/brk/blob/v0.0.91/crates/brk_computer/src/stateful/utxo_cohorts.rs) with performance improvements - -### Data Structures Enhancement -- **Enhanced**: [OHLC (Open, High, Low, Close) structure](https://github.com/bitcoinresearchkit/brk/blob/v0.0.91/crates/brk_structs/src/structs/ohlc.rs) with improved functionality -- **Improved**: [StoredF32 capabilities](https://github.com/bitcoinresearchkit/brk/blob/v0.0.91/crates/brk_structs/src/structs/stored_f32.rs) for enhanced mathematical operations -- **Optimized**: [Sats structure](https://github.com/bitcoinresearchkit/brk/blob/v0.0.91/crates/brk_structs/src/structs/sats.rs) for better Bitcoin unit handling - -### Progressive Web App - Typography Enhancement -- **Added**: [Lilex font family](https://github.com/bitcoinresearchkit/brk/blob/v0.0.91/websites/default/assets/fonts/) (2 font files, 189KB total) for improved typography and code readability -- **Enhanced**: [Frontend styling](https://github.com/bitcoinresearchkit/brk/blob/v0.0.91/websites/default/index.html) with modern font integration -- **Improved**: [Chart visualization](https://github.com/bitcoinresearchkit/brk/blob/v0.0.91/websites/default/scripts/options.js) with enhanced UI responsiveness - -### Indexer Module Enhancement -- **Optimized**: [Core indexer functionality](https://github.com/bitcoinresearchkit/brk/blob/v0.0.91/crates/brk_indexer/src/lib.rs) for better performance -- **Enhanced**: Integration with updated computer module patterns and EMA calculations - -### Version Management -- **Updated**: All workspace crate versions from 0.0.90 to 0.0.91 for coordinated release -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.91/Cargo.toml#L29-L41) with updated internal crate dependencies -- **Maintained**: Build reproducibility and dependency consistency across all modules - -### Development Experience -- **Updated**: [TODO.md](https://github.com/bitcoinresearchkit/brk/blob/v0.0.91/TODO.md) with refined development priorities -- **Enhanced**: Technical analysis capabilities for Bitcoin research and trading applications -- **Improved**: Visual presentation with professional typography +### Documentation Updates +- **TODO Improvements**: Updated TODO list with more specific terminology, changing "prices paid by percentile" to "costs basis by percentile" for better accuracy ([TODO.md](https://github.com/bitcoinresearchkit/brk/blob/v0.0.91/TODO.md)) [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.90...v0.0.91) -## [v0.0.90](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.90) - 2025-07-24 +## [v0.0.90](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.90) - 2025-08-24 -### Documentation Enhancement -- **Improved**: [CHANGELOG.md formatting](https://github.com/bitcoinresearchkit/brk/blob/v0.0.90/CHANGELOG.md) with enhanced GitHub link integration and better section organization -- **Standardized**: Release entry format with comprehensive GitHub file references for improved developer navigation -- **Enhanced**: Documentation structure with proper release dating and categorization consistency -- **Refined**: Changelog content presentation for better readability and professional appearance - -### Version Management -- **Updated**: All workspace crate versions from 0.0.89 to 0.0.90 for coordinated release -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.90/Cargo.toml#L29-L41) with updated internal crate dependencies -- **Maintained**: Build reproducibility and dependency consistency across all modules +### Documentation +- **Release Preparation**: Converted "Unreleased" section in CHANGELOG to proper v0.0.89 release entry, finalizing comprehensive documentation of all major changes including computer module refactoring, enhanced README files, and build system improvements ### Build System -- **Added**: [cargo-dist allow-dirty configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.90/Cargo.toml#L69) for improved CI/CD workflow flexibility -- **Enhanced**: Distribution metadata for better release automation +- **CI/CD Enhancement**: Added `allow-dirty = ["ci"]` configuration to cargo-dist metadata, enabling more flexible CI builds when repository contains uncommitted changes during release processes ([Cargo.toml](https://github.com/bitcoinresearchkit/brk/blob/v0.0.90/Cargo.toml)) [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.89...v0.0.90) -## [v0.0.89](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.89) - 2025-07-24 +## [v0.0.89](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.89) - 2025-08-24 -### BREAKING CHANGES - Documentation and Architecture Overhaul -- **Added**: [Comprehensive CHANGELOG.md](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/CHANGELOG.md) for complete project history tracking and release documentation -- **Refactored**: Complete documentation standardization across all 15 workspace crates with consistent structure and styling -- **Reorganized**: [Workspace dependency ordering](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/Cargo.toml#L32-L41) for better logical grouping and maintainability +### Breaking Changes +- **Changelog Format Overhaul**: Complete rewrite of CHANGELOG.md with new format and comprehensive documentation of all changes, replacing previous minimal entries with detailed descriptions of functionality and impact -### Major External Dependencies Upgrade -- **Updated**: [vecdb from 0.1.0 to 0.2.4](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/Cargo.toml#L56) with significant performance improvements and new lazy computation features -- **Enhanced**: [rayon from 1.10.0 to 1.11.0](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/Cargo.toml#L49) for improved parallel processing capabilities -- **Updated**: [serde_json from 1.0.142 to 1.0.143](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/Cargo.toml#L53) with JSON handling improvements +### Development Workflow +- **Git Ignore Updates**: Refined git ignore patterns, changing from generic `dist` to specific `websites/dist` for better build artifact management, and added `.claude` and `CLAUDE*.md` patterns for AI development tools ([.gitignore](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/.gitignore)) -### Computer Module - Major Architecture Refactoring -- **Added**: [LazyVecBuilder implementation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/crates/brk_computer/src/grouped/builder_lazy.rs) for on-demand vector computation and memory optimization -- **Enhanced**: [Grouped ratio computation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/crates/brk_computer/src/grouped/ratio_from_dateindex.rs) with 1,266 lines of optimizations for better performance -- **Added**: [Standard deviation computation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/crates/brk_computer/src/grouped/sd_from_dateindex.rs) for statistical analysis capabilities -- **Improved**: [Constants management](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/crates/brk_computer/src/constants.rs) with better organization and documentation - -### Data Structures - New Signed Integer Support -- **Added**: [StoredI16 type](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/crates/brk_structs/src/structs/stored_i16.rs) for efficient signed 16-bit integer storage with full trait implementations -- **Enhanced**: [Height structure](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/crates/brk_structs/src/structs/height.rs) with additional functionality for blockchain height operations -- **Improved**: [StoredF32 integration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/crates/brk_structs/src/structs/stored_f32.rs) with enhanced computational capabilities - -### Stateful Processing - Complete Reorganization -- **Restructured**: [Address type handling](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/crates/brk_computer/src/stateful/addresstype/mod.rs) with new modular organization -- **Enhanced**: [Common stateful utilities](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/crates/brk_computer/src/stateful/common.rs) for improved shared functionality -- **Optimized**: [Stateful module coordination](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/crates/brk_computer/src/stateful/mod.rs) for better performance and maintainability - -### Progressive Web App - Major Package Management Overhaul -- **Added**: [Automated package management](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/websites/default/packages/unpkg.sh) for streamlined dependency updates -- **Updated**: [Lightweight Charts to v5.0.8](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/websites/default/packages/lightweight-charts/5.0.8/dist/typings.d.ts) with improved charting capabilities -- **Enhanced**: [SolidJS Signals to v0.4.1](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/websites/default/packages/solidjs-signals/0.4.1/dist/prod.js) for better reactive state management -- **Added**: [uFuzzy search v1.0.18](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/websites/default/packages/leeoniya-ufuzzy/1.0.18/dist/uFuzzy.mjs) for advanced fuzzy search capabilities - -### Documentation Standardization -- **Rewritten**: [Main project README](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/README.md) with improved structure and clarity -- **Enhanced**: All crate README files with comprehensive documentation including brk_computer, brk_cli, and brk_interface -- **Standardized**: Documentation format and styling across all workspace crates for consistent developer experience -- **Improved**: API documentation and usage examples throughout the project - -### Configuration and CLI Enhancement -- **Enhanced**: [CLI configuration system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/crates/brk_cli/src/config.rs) with improved option handling -- **Optimized**: [Core CLI logic](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/crates/brk_cli/src/lib.rs) for better user experience -- **Updated**: [MCP dependency](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/crates/brk_mcp/Cargo.toml) configuration for enhanced AI integration - -### Examples and Testing -- **Added**: [Price to amount conversion example](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/crates/brk_computer/examples/price_to_amount.rs) demonstrating financial calculations -- **Enhanced**: [Logger example](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/crates/brk_logger/examples/main.rs) with improved demonstration -- **Updated**: [Parser example](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/crates/brk_parser/examples/main.rs) for better educational value - -### Version Management -- **Updated**: All workspace crate versions from 0.0.88 to 0.0.89 for coordinated release -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.89/Cargo.toml#L29-L41) with updated internal crate dependencies -- **Maintained**: Build reproducibility and dependency consistency across all modules - -### Performance and Architecture -- **Implemented**: Lazy computation patterns throughout the vector system for improved memory efficiency -- **Optimized**: Statistical computations with new standard deviation capabilities -- **Enhanced**: Modular architecture with better separation of concerns in stateful processing -- **Improved**: Package management automation for Progressive Web App components +### Documentation +- **Comprehensive Changelog**: Extensively documented all changes from v0.0.88 down to v0.0.31, providing detailed descriptions of features, fixes, and improvements across all BRK components +- **Historical Documentation**: Added detailed explanations for vector storage improvements, MCP integration, website enhancements, build system updates, and performance optimizations from previous releases [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.88...v0.0.89) -## [v0.0.88](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.88) - 2025-07-24 +## [v0.0.88](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.88) - 2025-08-10 -### Build System Enhancement -- **Added**: [Rust version specification](https://github.com/bitcoinresearchkit/brk/blob/v0.0.88/Cargo.toml#L11) across all workspace crates for consistent toolchain requirements -- **Enhanced**: [Workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.88/Cargo.toml#L7) with explicit rust-version declaration ensuring Rust 1.89 compatibility -- **Standardized**: [Rust version field](https://github.com/bitcoinresearchkit/brk/blob/v0.0.88/crates/brk/Cargo.toml#L10) added to all 15 workspace crates for build consistency +### Build System Improvements +- **Rust Version Specification**: Added minimum supported Rust version (MSRV) requirement of 1.89 across all workspace crates, ensuring compatibility and enabling use of latest Rust features ([Cargo.toml](https://github.com/bitcoinresearchkit/brk/blob/v0.0.88/Cargo.toml)) -### Progressive Web App - SOPR Enhancement -- **Improved**: [SOPR (Spent Output Profit Ratio) visualization](https://github.com/bitcoinresearchkit/brk/blob/v0.0.88/websites/default/scripts/options.js#L2109) with conditional rendering logic -- **Enhanced**: [ASOPR (Adjusted SOPR) integration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.88/websites/default/scripts/options.js#L2114) with improved data availability checking -- **Optimized**: [Chart configuration logic](https://github.com/bitcoinresearchkit/brk/blob/v0.0.88/websites/default/scripts/options.js#L2346) to conditionally display datasets based on data availability -- **Refined**: User interface responsiveness by only showing charts when corresponding data exists +### Web Interface Enhancements +- **Dynamic Chart Configuration**: Improved Spent Output Profit Ratio (SOPR) chart rendering by implementing conditional display logic for Adjusted SOPR (ASOPR) metrics, only showing ASOPR data when available in the dataset ([websites/default/scripts/options.js](https://github.com/bitcoinresearchkit/brk/blob/v0.0.88/websites/default/scripts/options.js)) +- **Chart Performance Optimization**: Refactored chart data filtering to reduce unnecessary rendering operations by checking data availability before creating chart series configurations -### Version Management -- **Updated**: All workspace crate versions from 0.0.87 to 0.0.88 for coordinated release -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.88/Cargo.toml#L29-L41) with updated internal crate dependencies -- **Maintained**: Build reproducibility and dependency consistency across all modules - -### Development Experience -- **Improved**: Build toolchain predictability with explicit Rust version requirements -- **Enhanced**: Cross-platform compatibility through standardized build configurations -- **Streamlined**: Development workflow with consistent versioning across all crates +### Code Quality +- **Workspace Standardization**: Unified `rust-version` specification across all crate manifests, improving build consistency and enabling workspace-wide tooling optimizations [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.87...v0.0.88) -## [v0.0.87](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.87) - 2025-07-24 +## [v0.0.87](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.87) - 2025-08-10 -### BREAKING CHANGES - Vector System Complete Overhaul -- **Removed**: Complete removal of brk_vecs and brk_vecs_macros crates including all custom vector storage implementation -- **Removed**: All brk_vecs references from Cargo.lock and workspace dependencies across the entire project -- **Migration**: Complete transition from custom brk_vecs system to [vecdb](https://crates.io/crates/vecdb) with seqdb backend -- **Architecture**: Fundamental shift from internal vector storage to dedicated vector database solution for improved maintainability and performance +### Breaking Changes +- **Vector Storage Architecture Refactor**: Replaced internal `brk_vecs` crate with externalized `vecdb` crate, moving vector storage functionality to a separate project while maintaining the same core functionality ([Cargo.toml](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/Cargo.toml)) -### New Vector Database Dependencies -- **Added**: [vecdb 0.1.0](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/Cargo.toml#L42) as primary vector database replacing brk_vecs with enhanced functionality -- **Added**: [seqdb 0.1.0](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/Cargo.lock#L3865) as vecdb's underlying storage engine -- **Added**: [vecdb_derive 0.1.0](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/Cargo.lock#L4712) for procedural macros replacing brk_vecs_macros functionality -- **Updated**: [brk_rmcp from 0.4.1 to 0.5.0](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/Cargo.lock#L652) with enhanced Model Context Protocol support +### Architecture Improvements +- **Crate Externalization**: Migrated vector storage implementation from internal `brk_vecs` and `brk_vecs_macros` to external `vecdb` and `vecdb_derive` crates, enabling independent development and versioning of the vector storage system +- **Sequential Database Foundation**: Added `seqdb` as the underlying sequential data storage engine powering the vector database functionality +- **Workspace Simplification**: Removed `brk_vecs` and `brk_vecs_macros` from the workspace, reducing codebase complexity and focusing on Bitcoin-specific functionality ([crates/brk/Cargo.toml](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/crates/brk/Cargo.toml)) -### Codebase Wide Migration -- **Updated**: [All workspace crate references](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/Cargo.toml#L28-L42) from brk_vecs to vecdb across 15+ crates -- **Modified**: [Main BRK library](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/crates/brk/src/lib.rs#L56) to export vecdb as the vecs module for API compatibility -- **Updated**: [Feature flags](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/crates/brk/Cargo.toml#L40) from "brk_vecs" to "vecdb" for conditional compilation -- **Refactored**: All import statements and dependencies across computer, indexer, CLI, server, and interface modules +### API Changes +- **Vector Interface Consistency**: Updated all vector references from `brk_vecs` to `vecdb` while maintaining identical API surface for seamless transition ([crates/brk/src/lib.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/crates/brk/src/lib.rs)) +- **Documentation Updates**: Updated README and project documentation to reflect the new external vector database dependency ([README.md](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/README.md)) -### Computer Module - Major Refactoring -- **Enhanced**: [Block computation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/crates/brk_computer/src/blocks.rs) with updated vecdb integration and improved data processing -- **Improved**: [Cointime analytics](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/crates/brk_computer/src/cointime.rs) with better precision and performance using vecdb -- **Streamlined**: [Market data computation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/crates/brk_computer/src/market.rs) for OHLC, volume, and price analysis with vecdb backend - -### Address Cohort System - Complete Rewrite -- **Overhauled**: [Address cohort tracking](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/crates/brk_computer/src/stateful/address_cohort.rs) with vecdb-optimized data structures -- **Enhanced**: [Address cohorts collection](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/crates/brk_computer/src/stateful/address_cohorts.rs) with improved memory management and processing speed -- **Improved**: [Common stateful utilities](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/crates/brk_computer/src/stateful/common.rs) for shared cohort computation logic - -### UTXO Analysis - Enhanced Implementation -- **Upgraded**: [UTXO cohort tracking](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/crates/brk_computer/src/stateful/utxo_cohort.rs) with vecdb-powered analysis -- **Optimized**: [UTXO cohorts collection](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/crates/brk_computer/src/stateful/utxo_cohorts.rs) for faster UTXO set analysis and insights - -### CLI and Configuration -- **Updated**: [CLI configuration system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/crates/brk_cli/src/config.rs) to support vecdb configuration options -- **Enhanced**: [Main CLI logic](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/crates/brk_cli/src/lib.rs) with improved error handling and vecdb initialization - -### Development and Documentation -- **Cleaned**: [Removed TODO items](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/TODO.md) related to deprecated brk_vecs features -- **Updated**: [README documentation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/README.md) replacing brk_vecs references with vecdb -- **Removed**: Obsolete brk_parser/Cargo.lock for cleaner workspace structure - -### Version Management -- **Updated**: All workspace crate versions from 0.0.85 to 0.0.87 (skipping 0.0.86) for coordinated release -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.87/Cargo.toml#L7) with version bump and dependency updates -- **Maintained**: Build reproducibility and dependency consistency across all modules - -### Performance and Stability -- **Improved**: Memory usage patterns with vecdb's optimized storage algorithms -- **Enhanced**: Data compression and storage efficiency through vecdb's mature implementation -- **Streamlined**: Codebase maintainability by removing 9,570+ lines of custom vector code -- **Stabilized**: Vector operations through dedicated vector database architecture +### Development Experience +- **Modular Development**: Enables independent development of vector storage functionality separate from Bitcoin analysis logic +- **Local Development Support**: Added commented local path configuration for easier development workflow when working on both projects simultaneously [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.85...v0.0.87) -## [v0.0.85](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.85) - 2025-07-24 +## [v0.0.85](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.85) - 2025-08-07 -### Dependency Updates -- **Updated**: [brk_rmcp from 0.3.0 to 0.4.1](https://github.com/bitcoinresearchkit/brk/blob/v0.0.85/crates/brk_mcp/Cargo.toml#L15) with enhanced Model Context Protocol support and improved AI integration stability -- **Enhanced**: brk_rmcp-macros from 0.3.0 to 0.4.1 for better macro generation and compilation performance +### Bug Fixes +- **Logging Filter Correction**: Fixed typo in logger filter configuration, changing `rmcp=off` to `brk_rmcp=off` to properly suppress unwanted logs from the RMCP protocol module ([crates/brk_logger/src/lib.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.85/crates/brk_logger/src/lib.rs)) -### Logging System Enhancement -- **Fixed**: [Logger filter configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.85/crates/brk_logger/src/lib.rs#L29) correcting duplicate "rmcp=off" entries by replacing with "brk_rmcp=off" for proper log filtering -- **Improved**: Log noise reduction by properly filtering brk_rmcp-related messages - -### MCP Configuration -- **Clarified**: [MCP server configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.85/crates/brk_mcp/src/route.rs#L29) with explicit stateful_mode setting and improved comment documentation -- **Enhanced**: StreamableHttpServerConfig setup for better Claude AI integration compatibility - -### Build System -- **Updated**: All workspace crate versions from 0.0.84 to 0.0.85 for version consistency -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.85/Cargo.toml#L28-L42) with updated internal crate dependencies -- **Maintained**: Build reproducibility and dependency consistency across all modules +### Configuration Changes +- **MCP Server Configuration**: Removed stateful mode setting from MCP server configuration, enabling more flexible protocol handling and improved compatibility with different client implementations ([crates/brk_mcp/src/route.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.85/crates/brk_mcp/src/route.rs)) [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.84...v0.0.85) -## [v0.0.84](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.84) - 2025-07-24 +## [v0.0.84](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.84) - 2025-08-07 -### Major Crate Restructuring -- **Added**: [brk_error crate](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_error/src/lib.rs) for centralized error handling across the entire BRK ecosystem -- **Created**: [brk_structs crate](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_structs/src/lib.rs) by extracting all Bitcoin data structures from brk_core for better modularity -- **Added**: [brk_vecs_macros crate](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_vecs_macros/src/lib.rs) for procedural macros supporting the vector system -- **Removed**: brk_exit crate entirely, functionality moved to brk_vecs for simplified dependencies +### Breaking Changes +- **Major Architecture Restructuring**: Complete reorganization of the codebase with extraction of core functionality into dedicated crates (`brk_structs`, `brk_error`) and comprehensive modularization of all components for better maintainability and reusability +- **Struct System Overhaul**: Moved all Bitcoin-related structures from `brk_core` to new `brk_structs` crate with enhanced grouping capabilities, comprehensive address types, and improved serialization support ([crates/brk_structs/src/lib.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_structs/src/lib.rs)) -### Data Structures - Complete Overhaul -- **Enhanced**: [OutputType system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_structs/src/structs/outputtype.rs) with comprehensive Bitcoin script type handling -- **Added**: [StoredU16 type](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_structs/src/structs/stored_u16.rs) for efficient 16-bit integer storage -- **Implemented**: [StoredBool type](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_structs/src/structs/stored_bool.rs) for optimized boolean data storage -- **Enhanced**: All existing stored types with improved functionality and better integration +### New Features +- **Centralized Error Handling**: Introduced `brk_error` crate providing unified error handling across all BRK components with comprehensive error types for different subsystems ([crates/brk_error/src/lib.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_error/src/lib.rs)) +- **Advanced Address Analytics**: Enhanced address grouping system with comprehensive filtering capabilities including by address type, amount ranges, age ranges, epochs, terms, and spendable/unspendable classifications ([crates/brk_structs/src/groups/mod.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_structs/src/groups/mod.rs)) +- **Vector Macro System**: Added `brk_vecs_macros` crate providing procedural macros for automated vector trait implementations and boilerplate reduction ([crates/brk_vecs_macros/src/lib.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_vecs_macros/src/lib.rs)) +- **Enhanced Data Types**: Comprehensive Bitcoin data type system including transaction IDs, block hashes, raw locktime, version numbers, and specialized index types for all Bitcoin primitives ([crates/brk_structs/src/structs/mod.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_structs/src/structs/mod.rs)) -### Vector System - Major Enhancement -- **Added**: [Comprehensive error system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_vecs/src/error.rs) for better error handling and debugging -- **Enhanced**: [Compressed vector system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_vecs/src/variants/compressed/mod.rs) with reorganized page management and improved performance -- **Added**: [Compressed trait](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_vecs/src/traits/compressed.rs) for standardized compression operations -- **Implemented**: [Stored trait system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_vecs/src/traits/stored.rs) for type-safe storage operations +### Architecture Improvements +- **Modular Design**: Complete separation of concerns with dedicated crates for different functionality areas, enabling better code organization and independent versioning +- **Build System Enhancement**: Added comprehensive build scripts across all crates with `cargo-dist` integration for automated release management and distribution ([.github/workflows/release.yml](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/.github/workflows/release.yml)) +- **Price Analysis**: New dedicated price analysis module with enhanced market data processing and price-to-amount state tracking ([crates/brk_computer/src/price.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_computer/src/price.rs)) -### Computer Module - Comprehensive Refactoring -- **Added**: [Price analysis module](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_computer/src/price.rs) for sophisticated Bitcoin price analytics -- **Enhanced**: [Traits system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_computer/src/traits.rs) for standardized computation interfaces -- **Removed**: [All.rs module](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_computer/src/all.rs) for simplified architecture -- **Restructured**: [Fetched data processing](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_computer/src/fetched.rs) with 1,290 lines removed for streamlined functionality +### Developer Experience +- **Comprehensive Documentation**: Added README files and examples for all major crates, providing clear usage instructions and API documentation +- **Enhanced Examples**: Expanded example collection demonstrating various BRK components and usage patterns across all crates +- **Development Tools**: Improved development workflow with better build scripts, dependency management, and testing infrastructure -### CLI System Enhancement -- **Moved**: [Bridge functionality](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_cli/src/bridge.rs) from brk_server to brk_cli for better organization -- **Added**: [Path utilities](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_cli/src/paths.rs) moved from brk_core for CLI-specific functionality -- **Enhanced**: [Website integration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_cli/src/website.rs) with improved file serving capabilities -- **Expanded**: [Core library](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_cli/src/lib.rs) with 138 lines of enhanced functionality +### Performance Improvements +- **Vector System**: Enhanced vector system with improved compression, better memory management, and optimized I/O operations through the redesigned `brk_vecs` architecture +- **State Management**: Improved state tracking with dedicated modules for block states, realized/unrealized values, supply tracking, and transaction analysis -### Server Architecture Simplification -- **Restructured**: [API organization](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_server/src/api/mod.rs) with flattened module hierarchy -- **Renamed**: `traits/` → `extended/` module for better naming clarity -- **Enhanced**: [Interface handling](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_server/src/api/interface.rs) with 73 lines of improvements -- **Simplified**: [Core server library](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_server/src/lib.rs) with 103 lines of enhancements +### Infrastructure +- **CI/CD Enhancement**: Updated GitHub Actions workflow with improved Ubuntu runner (22.04) and enhanced release automation +- **Docker Improvements**: Enhanced Docker configuration with better environment handling and deployment options -### Build System Integration -- **Added**: [Build scripts](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk/build.rs) across all crates for improved build consistency and metadata generation -- **Enhanced**: [GitHub Actions workflow](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/.github/workflows/release.yml) with 17 lines of improvements for better CI/CD -- **Updated**: All workspace dependencies to use new crate structure (brk_core → brk_structs + brk_error) - -### Docker Integration Updates -- **Updated**: [Docker environment](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/docker/.env.example) with 12 lines of configuration improvements -- **Enhanced**: [Docker documentation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/docker/README.md) with updated setup instructions -- **Simplified**: Docker configuration for better deployment experience - -### Example Applications Enhancement -- **Added**: [Computer example](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_computer/examples/computer.rs) demonstrating computer module usage -- **Enhanced**: [Compressed vector example](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_vecs/examples/compressed.rs) with comprehensive compression demonstrations -- **Improved**: [Raw vector example](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_vecs/examples/raw.rs) with 144 lines of enhanced functionality - -### Documentation Cleanup -- **Removed**: Individual README files from most crates for reduced maintenance overhead -- **Enhanced**: [Main README](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/README.md) with 33 lines of comprehensive improvements -- **Added**: [brk_structs documentation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/crates/brk_structs/README.md) explaining the new data structure organization - -### Build System -- **Updated**: All workspace crate versions from 0.0.83 to 0.0.84 for version consistency -- **Restructured**: [Cargo workspace](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/Cargo.toml) with new crate additions and dependency updates -- **Enhanced**: Build reproducibility with standardized build scripts across all crates +### Social Media +- **Platform Updates**: Updated social media links removing outdated platforms and focusing on active community channels ([README.md](https://github.com/bitcoinresearchkit/brk/blob/v0.0.84/README.md)) [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.83...v0.0.84) -## [v0.0.83](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.83) - 2025-07-24 +## [v0.0.83](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.83) - 2025-07-26 -### Cross-Platform File Management -- **Enhanced**: [File hole punching system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.83/crates/brk_vecs/src/file/mod.rs#L485-L534) with comprehensive cross-platform support for Linux, macOS, and other systems -- **Added**: [Linux-specific implementation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.83/crates/brk_vecs/src/file/mod.rs#L510-L527) using `fallocate` with `FALLOC_FL_PUNCH_HOLE` for efficient sparse file operations -- **Implemented**: [Generic fallback handler](https://github.com/bitcoinresearchkit/brk/blob/v0.0.83/crates/brk_vecs/src/file/mod.rs#L529-L534) for unsupported platforms with proper error messaging -- **Unified**: Platform-specific implementations under common `punch_hole_impl` interface for cleaner architecture +### New Features +- **Cross-Platform Hole Punching**: Added Linux support for file hole punching operations using `fallocate` system call, expanding platform compatibility beyond macOS for efficient sparse file management ([crates/brk_vecs/src/file/mod.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.83/crates/brk_vecs/src/file/mod.rs)) -### Storage Efficiency Improvements -- **Optimized**: Sparse file handling for reduced disk space usage on supported filesystems -- **Enhanced**: File system integration with platform-native hole punching for better performance -- **Improved**: Error handling with platform-specific error reporting and fallback mechanisms +### Performance Improvements +- **Platform-Specific Optimization**: Implemented platform-specific hole punching strategies with optimized system calls for both macOS (`fcntl` with `F_PUNCHHOLE`) and Linux (`fallocate`), improving storage efficiency and I/O performance on different operating systems -### Cross-Platform Compatibility -- **Extended**: Support beyond macOS to include Linux systems with proper `libc` integration -- **Added**: Conditional compilation for platform-specific optimizations -- **Maintained**: Backward compatibility with platforms lacking native hole punching support - -### Build System -- **Updated**: All workspace crate versions from 0.0.82 to 0.0.83 for version consistency -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.83/Cargo.toml#L29-L42) with updated internal crate dependencies -- **Maintained**: Build reproducibility across all supported platforms +### Internal Changes +- **Code Organization**: Refactored hole punching implementation with unified `punch_hole_impl()` method that dispatches to platform-specific implementations, improving code maintainability and reducing duplication +- **Error Handling**: Enhanced error handling for unsupported platforms with clear error messages for hole punching operations [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.82...v0.0.83) -## [v0.0.82](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.82) - 2025-07-24 +## [v0.0.82](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.82) - 2025-07-26 -### Vector System - Complete Redesign -- **Renamed**: `brk_vec` → `brk_vecs` crate with comprehensive architectural overhaul for better modularity and performance -- **Added**: [File-based vector system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/src/file/mod.rs) with advanced file layout management and region-based storage -- **Implemented**: [File layout engine](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/src/file/layout.rs) for optimized disk storage patterns -- **Enhanced**: [Region management system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/src/file/regions.rs) for efficient memory-mapped file operations +### Breaking Changes +- **Vector System Refactoring**: Replaced `brk_vec` with new `brk_vecs` crate, introducing a completely redesigned vector storage system with improved file layouts, better compression, and enhanced performance characteristics ([crates/brk_vecs/src/lib.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/src/lib.rs)) -### Variant Architecture Restructuring -- **Restructured**: [Compressed vectors](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/src/variants/compressed/mod.rs) with modularized page metadata system for better organization -- **Enhanced**: [Raw vector implementation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/src/variants/raw/mod.rs) with improved header management and unsafe slice operations -- **Added**: [Stamped vector variant](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/src/variants/stamped/mod.rs) with timestamp-based versioning -- **Reorganized**: [Lazy vector system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/src/variants/lazy/mod.rs) into dedicated module structure +### New Features +- **Advanced Vector Architecture**: Introduced comprehensive vector system with multiple storage variants including `RawVec`, `CompressedVec`, `ComputedVec`, `EagerVec`, `LazyVec`, and `StampedVec` for different use cases and performance requirements ([crates/brk_vecs/src/variants/mod.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/src/variants/mod.rs)) +- **File-Based Storage**: New file-based storage system with dedicated `File` and `Reader` implementations, featuring page-based architecture and memory mapping for efficient disk I/O ([crates/brk_vecs/src/file/mod.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/src/file/mod.rs)) +- **Stamped Vectors**: Added timestamped vector support with `StampedVec` and `Stamp` structures for versioned data management and temporal analysis ([crates/brk_vecs/src/variants/stamped/mod.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/src/variants/stamped/mod.rs)) -### File Management Enhancement -- **Added**: [File identifier system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/src/file/identifier.rs) for unique vector identification -- **Implemented**: [File reader abstraction](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/src/file/reader.rs) for optimized read operations -- **Enhanced**: [Region-based storage](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/src/file/region.rs) with advanced memory mapping capabilities +### Architecture Improvements +- **Lazy Computation**: Enhanced lazy evaluation system with support for 1, 2, and 3-source computed vectors, enabling complex data transformations with minimal memory overhead ([crates/brk_vecs/src/variants/lazy/mod.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/src/variants/lazy/mod.rs)) +- **Compression Optimization**: Redesigned compression system with page-based metadata management and improved compression ratios for large datasets ([crates/brk_vecs/src/variants/compressed/mod.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/src/variants/compressed/mod.rs)) +- **Type System Enhancement**: Improved trait system with dedicated interfaces for different vector operations, providing better type safety and performance ([crates/brk_vecs/src/traits/mod.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/src/traits/mod.rs)) -### Computer Module Refactoring -- **Removed**: [Stores module entirely](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_computer/src/stores.rs) for simplified architecture -- **Restructured**: [Market analysis vectors](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_computer/src/market.rs) with 274 lines of comprehensive improvements -- **Enhanced**: [Stateful processing](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_computer/src/stateful/mod.rs) with 612 lines of optimizations -- **Improved**: [UTXO cohort analysis](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_computer/src/stateful/utxo_cohorts.rs) with 297 lines of enhanced functionality +### Performance Improvements +- **Build Optimization**: Updated build scripts to focus on release builds for better performance in production deployments ([update.sh](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/update.sh)) +- **Memory Management**: Enhanced memory usage patterns with better file mapping strategies and reduced memory footprint for large-scale Bitcoin data processing -### Indexer System Enhancement -- **Restructured**: [Core indexer implementation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_indexer/src/lib.rs) with 233 lines of improvements for better performance -- **Enhanced**: [Vector management](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_indexer/src/vecs.rs) with 370 lines of comprehensive updates -- **Renamed**: [Example file](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_indexer/examples/indexer.rs) from main.rs for better clarity +### Infrastructure +- **Comprehensive Examples**: Added extensive examples demonstrating various vector types and usage patterns for better developer onboarding ([crates/brk_vecs/examples/](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/examples/)) +- **Documentation**: Enhanced documentation with detailed explanations of vector architectures and storage strategies -### Exit Signal Handling -- **Enhanced**: [Exit system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_exit/src/lib.rs) with a better signal handling -- **Added**: New dependency for enhanced exit signal management -- **Improved**: Process termination handling with better cleanup procedures - -### Core Data Structures -- **Added**: [UTXO grouping capabilities](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_core/src/groups/utxo.rs) for sophisticated UTXO analysis -- **Enhanced**: [Address grouping system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_core/src/groups/address.rs) with functionalities -- **Improved**: Address type and any address grouping with enhanced filtering capabilities - -### Example Applications -- **Added**: [Comprehensive file vector example](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/examples/file.rs) demonstrating file-based vector operations -- **Enhanced**: All example files across the codebase with updated patterns and better documentation - -### Generic Vector Operations -- **Refactored**: [Generic traits](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vecs/src/traits/generic.rs) with enhanced functionality -- **Improved**: Type safety and performance across all vector operations -- **Enhanced**: Memory management with better resource utilization - -### Documentation Cleanup -- **Removed**: [brk_vec specific documentation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/crates/brk_vec/README.md) replaced with brk_vecs documentation -- **Removed**: Legacy struct definitions and deprecated length management code -- **Streamlined**: Module organization for better maintainability - -### Build System Overhaul -- **Updated**: All workspace crate versions from 0.0.81 to 0.0.82 for version consistency -- **Restructured**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.82/Cargo.toml) with brk_vec → brk_vecs rename throughout -- **Enhanced**: Dependency management with updated internal crate references +### Internal Changes +- **Address Handling**: Improved address byte hash management and height-based indexing for better address analytics performance +- **Group Processing**: Enhanced address and UTXO grouping capabilities with better filtering and processing mechanisms +- **Error Handling**: Refined error handling throughout the vector system for more robust data operations [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.81...v0.0.82) -## [v0.0.81](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.81) - 2025-06-29 +## [v0.0.81](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.81) - 2025-07-17 -### Major Architecture Restructuring -- **Restructured**: [Computer module organization](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/crates/brk_computer/src/lib.rs#L13-L25) by moving all `vecs/` subdirectories to root level for flatter, more maintainable structure -- **Renamed**: `vecs/mod.rs` → `all.rs` with comprehensive module reorganization and improved visibility patterns -- **Enhanced**: [Module declarations](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/crates/brk_computer/src/lib.rs#L37-L39) with cleaner imports and better separation of concerns +### Breaking Changes +- **Computer Module Restructuring**: Major reorganization of the computer module from nested `vecs` structure to flat module layout, moving vector implementations directly into separate modules (`all`, `blocks`, `cointime`, `constants`, `fetched`, `grouped`, `indexes`, `market`, `mining`, `stateful`, `transactions`) for better maintainability ([crates/brk_computer/src/lib.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/crates/brk_computer/src/lib.rs)) -### Docker Integration - Major Addition -- **Added**: [Complete Docker setup](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/docker/README.md) with comprehensive deployment documentation -- **Implemented**: [Multi-stage Dockerfile](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/docker/Dockerfile) with optimized build process and minimal runtime footprint -- **Added**: [Docker Compose configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/docker/docker-compose.yml) for simplified deployment with Bitcoin Core integration -- **Included**: [Environment configuration template](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/docker/.env.example) with comprehensive setup variables -- **Enhanced**: [Build automation script](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/docker/docker-build.sh) for streamlined Docker image creation +### New Features +- **Docker Support**: Added comprehensive Docker setup with Dockerfile, docker-compose configuration, environment templates, and detailed documentation for containerized BRK deployment ([docker/README.md](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/docker/README.md)) +- **Address Index System**: Implemented new address indexing architecture with `AnyAddressIndex`, `EmptyAddressIndex`, and `LoadedAddressIndex` structures for more efficient address data management ([crates/brk_core/src/structs/anyaddressindex.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/crates/brk_core/src/structs/anyaddressindex.rs)) +- **Enhanced Address Grouping**: Added comprehensive address filtering and grouping capabilities with `by_address_type`, `by_any_address`, and flexible filter systems ([crates/brk_core/src/groups/mod.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/crates/brk_core/src/groups/mod.rs)) -### Address Data System Enhancement -- **Added**: [AnyAddressIndex type](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/crates/brk_core/src/structs/anyaddressindex.rs) for unified address handling across all Bitcoin script types -- **Implemented**: [EmptyAddressIndex](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/crates/brk_core/src/structs/emptyaddressindex.rs) for handling unaddressed outputs -- **Enhanced**: [LoadedAddressIndex](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/crates/brk_core/src/structs/loadedaddressindex.rs) for efficient address data loading -- **Renamed**: `addressdata.rs` → `loadedaddressdata.rs` with improved functionality and clearer naming +### Architecture Improvements +- **Stateful Processing**: Enhanced stateful vector processing with dedicated traits and improved address data source handling ([crates/brk_computer/src/stateful/trait.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/crates/brk_computer/src/stateful/trait.rs)) +- **Address Analytics**: Added sophisticated address counting and analysis capabilities with support for different address types and cohort analysis +- **Module Organization**: Flattened module hierarchy eliminating nested structures for clearer code organization and easier navigation -### Stateful Processing - Major Overhaul -- **Revolutionized**: [Stateful module](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/crates/brk_computer/src/stateful/mod.rs) for enhanced Bitcoin analytics -- **Added**: [Address data source integration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/crates/brk_computer/src/stateful/withaddressdatasource.rs) for sophisticated address tracking -- **Enhanced**: [Address type mapping](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/crates/brk_computer/src/stateful/addresstype_to_vec.rs) with improved type safety and performance +### Infrastructure +- **Container Deployment**: Full Docker containerization support with multi-stage builds, environment configuration, and production-ready setup +- **Build Optimization**: Enhanced build scripts and profiling tools for better development workflow -### Vector System Enhancements -- **Enhanced**: [Generic vector operations](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/crates/brk_vec/src/traits/generic.rs) with additional functionality -- **Improved**: [Raw vector capabilities](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/crates/brk_vec/src/variants/raw.rs) with enhancements -- **Added**: [Enhanced indexed vector support](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/crates/brk_vec/src/variants/indexed.rs) with new functionality -- **Expanded**: [Stored vector operations](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/crates/brk_vec/src/variants/stored.rs) with additional methods - -### Core Data Structures -- **Added**: [Group filtering enhancements](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/crates/brk_core/src/groups/filter.rs) with improved filtering logic -- **Implemented**: [Address type grouping](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/crates/brk_core/src/groups/by_address_type.rs) and any address grouping capabilities -- **Enhanced**: TypeIndex functionality with additional utility methods for better Bitcoin script type handling - -### CLI System Improvements -- **Simplified**: [Configuration management](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/crates/brk_cli/src/config.rs) by unnecessary code -- **Streamlined**: [Run command implementation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/crates/brk_cli/src/run.rs) with improvements -- **Removed**: Services module entirely for simplified architecture and reduced complexity - -### API and Server Enhancements -- **Enhanced**: [Server API structure](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/crates/brk_server/src/api/mod.rs) with new functionality -- **Improved**: MCP integration with better route handling and enhanced tool definitions -- **Added**: New dependency support for improved server capabilities - -### Development and Testing -- **Enhanced**: [Example applications](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/crates/brk_vec/examples/main.rs) with improvements for better demonstration -- **Updated**: All example files across the codebase with improved patterns and documentation -- **Added**: [Comprehensive .dockerignore](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/docker/.dockerignore) for optimized Docker builds - -### Dependency Updates -- **Updated**: [async-compression from 0.4.26 to 0.4.27](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/Cargo.lock#L173-L175) for improved compression performance -- **Enhanced**: Multiple transitive dependencies for better stability and performance - -### Build System -- **Updated**: All workspace crate versions from 0.0.80 to 0.0.81 for version consistency -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/Cargo.toml#L29-L44) with updated internal crate dependencies -- **Added**: Docker build integration with proper ignore patterns and environment handling +### Documentation +- **Website Updates**: Added `brekit.org` as primary domain in README alongside existing mirrors ([README.md](https://github.com/bitcoinresearchkit/brk/blob/v0.0.81/README.md)) +- **Docker Guide**: Comprehensive Docker setup and deployment documentation with prerequisites, configuration, and usage instructions [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.80...v0.0.81) -## [v0.0.80](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.80) - 2025-06-29 +## [v0.0.80](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.80) - 2025-07-13 -### Vector Performance Enhancement -- **Improved**: [Raw vector length tracking](https://github.com/bitcoinresearchkit/brk/blob/v0.0.80/crates/brk_vec/src/variants/raw.rs#L31-L32) with local caching system for reduced atomic operations and better performance -- **Added**: [Local stored length optimization](https://github.com/bitcoinresearchkit/brk/blob/v0.0.80/crates/brk_vec/src/variants/raw.rs#L104-L107) enabling vectors to maintain local length state for faster access patterns -- **Enhanced**: [Length calculation efficiency](https://github.com/bitcoinresearchkit/brk/blob/v0.0.80/crates/brk_vec/src/variants/raw.rs#L161-L163) by prioritizing local cache over atomic reads for significant performance gains +### Performance Improvements +- **Vector Length Caching**: Added local length caching in raw vectors with `local_stored_len` field, reducing atomic operations and improving read performance by storing frequently accessed length values locally ([crates/brk_vec/src/variants/raw.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.80/crates/brk_vec/src/variants/raw.rs)) -### Compressed Vector Optimization -- **Simplified**: [Stored length calculation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.80/crates/brk_vec/src/variants/compressed.rs#L188-L189) by delegating to inner raw vector for consistency and reduced code duplication -- **Enhanced**: [Import process](https://github.com/bitcoinresearchkit/brk/blob/v0.0.80/crates/brk_vec/src/variants/compressed.rs#L72-L76) with automatic stored length initialization from compressed page metadata -- **Improved**: Iterator initialization with streamlined length calculation for better performance +### API Enhancements +- **Length Management**: Introduced `set_stored_len()` method for direct length management, providing better control over vector metadata and synchronization between local and shared length values -### Documentation Cleanup -- **Removed**: [Claude AI examples](https://github.com/bitcoinresearchkit/brk/blob/v0.0.80/crates/brk_mcp/README.md#L50-L57) from MCP documentation for cleaner, more focused documentation -- **Streamlined**: [Main README](https://github.com/bitcoinresearchkit/brk/blob/v0.0.80/README.md#L47-L49) by removing detailed AI output examples and focusing on core functionality -- **Simplified**: Documentation structure for better maintainability and clarity +### Documentation +- **README Cleanup**: Removed detailed AI example links from main README to streamline content and focus on core functionality, improving readability and reducing maintenance overhead ([README.md](https://github.com/bitcoinresearchkit/brk/blob/v0.0.80/README.md)) +- **MCP Documentation**: Added dedicated README for Model Context Protocol integration with comprehensive usage examples and setup instructions ([crates/brk_mcp/README.md](https://github.com/bitcoinresearchkit/brk/blob/v0.0.80/crates/brk_mcp/README.md)) -### Memory Management Improvements -- **Enhanced**: [Push operations](https://github.com/bitcoinresearchkit/brk/blob/v0.0.80/crates/brk_vec/src/variants/raw.rs#L206-L210) with dual length tracking (local + shared) for optimized concurrent access -- **Improved**: Vector cloning with proper local state management for better resource utilization -- **Optimized**: Atomic operations by reducing frequency of shared state synchronization - -### Build System -- **Updated**: All workspace crate versions from 0.0.79 to 0.0.80 for version consistency -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.80/Cargo.toml#L29-L44) with updated internal crate dependencies -- **Maintained**: Build reproducibility and dependency consistency across all modules +### Internal Changes +- **Vector Architecture**: Enhanced raw and compressed vector implementations with improved length tracking mechanisms for better performance and consistency [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.79...v0.0.80) -## [v0.0.79](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.79) - 2025-06-29 +## [v0.0.79](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.79) - 2025-07-13 -### Performance Optimization -- **Reduced**: [File descriptor limits](https://github.com/bitcoinresearchkit/brk/blob/v0.0.79/crates/brk_core/src/utils/rlimit.rs#L10) from 250,000 to 10,000 for more conservative resource usage and better system stability -- **Optimized**: Resource allocation to prevent system overload while maintaining adequate performance +### Performance Improvements +- **File Handle Optimization**: Reduced minimum file handle limit from 250,000 to 10,000, significantly lowering system resource requirements while maintaining adequate file access for most Bitcoin datasets ([crates/brk_core/src/utils/rlimit.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.79/crates/brk_core/src/utils/rlimit.rs)) -### Data Processing Enhancement -- **Improved**: [OHLC data fetching](https://github.com/bitcoinresearchkit/brk/blob/v0.0.79/crates/brk_computer/src/vecs/fetched.rs#L460-L489) with simplified and more efficient previous value tracking -- **Enhanced**: Price data processing by removing complex nested lookups and implementing cleaner state management -- **Optimized**: Memory usage in OHLC calculations with streamlined data flow and reduced redundant operations +### Breaking Changes +- **Vector Memory Architecture**: Replaced `ArcSwap` with `Arc` for stored length tracking in raw vectors, eliminating memory mapping overhead and improving concurrent access patterns while reducing memory usage ([crates/brk_vec/src/variants/raw.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.79/crates/brk_vec/src/variants/raw.rs)) -### Indexer System Improvements -- **Enhanced**: [Export operation return values](https://github.com/bitcoinresearchkit/brk/blob/v0.0.79/crates/brk_indexer/src/lib.rs#L92) by changing from `()` to `bool` for better operation tracking -- **Improved**: [Memory map management](https://github.com/bitcoinresearchkit/brk/blob/v0.0.79/crates/brk_indexer/src/lib.rs#L105-L114) with dedicated mmap option variables for better resource control -- **Added**: Proper memory map lifecycle management for improved performance and reduced memory leaks - -### Dependency Updates -- **Updated**: [async-compression from 0.4.25 to 0.4.26](https://github.com/bitcoinresearchkit/brk/blob/v0.0.79/Cargo.lock#L173-L175) for improved compression performance -- **Enhanced**: [TOML processing](https://github.com/bitcoinresearchkit/brk/blob/v0.0.79/Cargo.lock#L4242-L4244) with toml crate upgrade from 0.9.1 to 0.9.2 -- **Improved**: Multiple core dependencies including: - - castaway (0.2.3 → 0.2.4) for better type casting - - crc32fast (1.4.2 → 1.5.0) for faster checksums - - memmap2 (0.9.5 → 0.9.7) for improved memory mapping - - winnow (0.7.11 → 0.7.12) for better parsing - -### Module Dependencies -- **Removed**: [jiff dependency](https://github.com/bitcoinresearchkit/brk/blob/v0.0.79/crates/brk_computer/Cargo.toml#L26) from brk_computer module for reduced complexity -- **Simplified**: Time handling dependencies for better build times and reduced binary size - -### Configuration Management -- **Updated**: [CLI TOML dependency](https://github.com/bitcoinresearchkit/brk/blob/v0.0.79/crates/brk_cli/Cargo.toml#L27) to version 0.9.2 for improved configuration file handling -- **Enhanced**: Configuration parsing with better error handling and validation - -### Build System -- **Updated**: All workspace crate versions from 0.0.78 to 0.0.79 for version consistency -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.79/Cargo.toml#L29-L44) with updated internal crate dependencies -- **Maintained**: Build reproducibility and dependency consistency across all modules +### Internal Changes +- **Vector Storage Simplification**: Removed arc-swap dependency from vector variants, streamlining memory management and reducing complexity in concurrent scenarios +- **Store Integration**: Enhanced indexer store integration with better error handling and resource management +- **Header Management**: Improved vector header handling for more efficient metadata operations [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.78...v0.0.79) -## [v0.0.78](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.78) - 2025-06-29 +## [v0.0.78](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.78) - 2025-07-13 -### Major Data Structures Enhancement -- **Added**: [SemesterIndex data type](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/crates/brk_core/src/structs/semesterindex.rs) for 6-month period analysis enabling better time-based aggregations -- **Enhanced**: [DateIndex functionality](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/crates/brk_core/src/structs/dateindex.rs) with improvements for better date handling and calculations -- **Improved**: All time-based indexes (MonthIndex, QuarterIndex, YearIndex, etc.) with enhanced conversion and calculation methods -- **Added**: [FromCoarser trait](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/crates/brk_core/src/traits/from_coarser.rs) for standardized time period conversions +### New Features +- **Semester Index Support**: Added `SemesterIndex` struct for 6-month interval datasets, enabling bi-annual analysis of Bitcoin metrics with proper serialization and mathematical operations ([crates/brk_core/src/structs/semesterindex.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/crates/brk_core/src/structs/semesterindex.rs)) +- **Enhanced Vector Architecture**: Refactored vector computation infrastructure with improved `VecBuilderOptions` and `Source` handling for more flexible dataset generation ([crates/brk_computer/src/vecs/grouped/builder_computed.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/crates/brk_computer/src/vecs/grouped/builder_computed.rs)) -### Vector Computation - Major Refactoring -- **Restructured**: [Builder pattern system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/crates/brk_computer/src/vecs/grouped/builder_computed.rs) with new 474-line computed builder for advanced data processing -- **Split**: Builder functionality from single file into specialized builders (eager vs computed) for better separation of concerns -- **Enhanced**: [Ratio calculations](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/crates/brk_computer/src/vecs/grouped/ratio_from_dateindex.rs) with comprehensive financial analytics -- **Added**: [Source vector tracking](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/crates/brk_computer/src/vecs/grouped/source.rs) for better data lineage and dependency management +### Architecture Improvements +- **Vector Builder Refactoring**: Renamed `StorableVecGeneatorOptions` to `VecBuilderOptions` for better naming consistency and enhanced vector generation capabilities +- **Cointime Integration**: Enhanced cointime computation with better indexing support and computation parameter handling +- **Profiling Tools**: Added dedicated flamegraph and samply profiling scripts for the computer module to aid performance analysis -### Cohort Analysis - Comprehensive Overhaul -- **Revolutionized**: [UTXO cohort system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/crates/brk_computer/src/vecs/stateful/utxo_cohorts.rs) with new functionalities -- **Enhanced**: [Address cohort analysis](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/crates/brk_computer/src/vecs/stateful/address_cohorts.rs) with improved tracking and analytics -- **Added**: [AddressType to TypeIndex set mapping](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/crates/brk_computer/src/vecs/stateful/addresstype_to_typeindex_set.rs) for better address classification -- **Improved**: [Common stateful utilities](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/crates/brk_computer/src/vecs/stateful/common.rs) with enhanced shared functionality - -### Market Data Processing -- **Expanded**: [Market analysis vectors](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/crates/brk_computer/src/vecs/market.rs) with 781 lines (major enhancement) for comprehensive market analytics -- **Improved**: [Fetched data handling](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/crates/brk_computer/src/vecs/fetched.rs) with 174 lines of enhanced price data processing -- **Enhanced**: [Transaction analysis](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/crates/brk_computer/src/vecs/transactions.rs) with 172 lines of improved transaction metrics - -### Indexer Architecture Improvements -- **Refactored**: [Core indexer system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/crates/brk_indexer/src/lib.rs) with 356 lines of architectural improvements for better performance -- **Enhanced**: Block processing efficiency and memory management -- **Improved**: Data integrity and error handling throughout the indexing pipeline - -### Core Infrastructure Updates -- **Added**: [Cents data type](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/crates/brk_core/src/structs/cents.rs) with 18 lines for finer monetary precision -- **Enhanced**: [OHLC structures](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/crates/brk_core/src/structs/ohlc.rs) with 38 lines of improvements for better price data handling -- **Improved**: [Timestamp handling](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/crates/brk_core/src/structs/timestamp.rs) with 52 lines of enhanced time calculations - -### Development and Debugging -- **Added**: [Profiling support](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/.gitignore#L22-L25) with gitignore entries for flamegraph.svg, profile.json.gz, and trace files -- **Enhanced**: [Computer module profiling scripts](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/crates/brk_computer/flamegraph.sh) for performance analysis -- **Improved**: Development workflow with better debugging and performance measurement tools - -### Website and Interface Updates -- **Enhanced**: [Chart wrapper functionality](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/websites/default/packages/lightweight-charts/wrapper.js) with 15 lines of improvements -- **Improved**: [Table display logic](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/websites/default/scripts/table.js) with 11 lines of enhancements -- **Updated**: Main JavaScript interface with 24 lines of improvements for better user experience - -### Dependency Updates -- **Updated**: [bzip2 from 0.5.2 to 0.6.0](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/Cargo.lock#L1153-L1155) with improved compression performance -- **Enhanced**: [clap from 4.5.40 to 4.5.41](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/Cargo.lock#L1230-L1232) for better CLI argument handling -- **Improved**: Multiple dependency optimizations for better performance and stability - -### Vector System Enhancements -- **Enhanced**: [Indexed vector functionality](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/crates/brk_vec/src/variants/indexed.rs) with 5 new lines of capability -- **Improved**: Vector iteration and computation patterns across all vector types -- **Optimized**: Memory usage and performance in vector operations - -### Build System -- **Updated**: All workspace crate versions from 0.0.76 to 0.0.78 (skipping 0.0.77) -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.78/Cargo.toml) with updated dependencies -- **Restructured**: Build organization for better modularity and maintainability +### Development Experience +- **Documentation Updates**: Expanded TODO list with additional feature requests including chopiness datasets, reused address analytics, z-score chart improvements, and HTTPS support +- **Profiling Support**: Added flamegraph.sh and samply.sh scripts to the computer module for better performance debugging capabilities [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.76...v0.0.78) -## [v0.0.76](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.76) - 2025-06-28 +## [v0.0.76](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.76) - 2025-07-09 -### Bundling Infrastructure - Major Update -- **Updated**: [brk_rolldown from 0.1.0 to 0.1.1](https://github.com/bitcoinresearchkit/brk/blob/v0.0.76/crates/brk_bundler/Cargo.toml#L13) with comprehensive bundling improvements and performance enhancements -- **Enhanced**: All rolldown ecosystem dependencies with version bumps across the entire toolchain for better stability and new features -- **Improved**: [String manipulation utilities](https://github.com/bitcoinresearchkit/brk/blob/v0.0.76/Cargo.lock#L1068-L1070) with brk_string_wizard upgrade to 0.1.1 for better text processing - -### Development Tooling Enhancement -- **Updated**: All brk_rolldown_* dependencies to 0.1.1 including: - - brk_rolldown_common, brk_rolldown_debug, brk_rolldown_ecmascript - - brk_rolldown_plugin, brk_rolldown_resolver, brk_rolldown_utils - - Enhanced bundling capabilities with improved error handling and performance -- **Enhanced**: [Hot Module Replacement](https://github.com/bitcoinresearchkit/brk/blob/v0.0.76/Cargo.lock#L921-L923) plugin with better development experience and faster reload times -- **Improved**: Debug tooling and source map generation for better development workflows - -### Browser Compatibility -- **Enhanced**: [oxc-browserslist from 2.0.9 to 2.0.10](https://github.com/bitcoinresearchkit/brk/blob/v0.0.76/Cargo.lock#L2657-L2659) with improved browser compatibility detection -- **Added**: [Bincode serialization support](https://github.com/bitcoinresearchkit/brk/blob/v0.0.76/Cargo.lock#L2661) for browser compatibility data for better caching and performance -- **Improved**: Target browser detection and feature compatibility checking - -### ECMAScript Processing -- **Enhanced**: JavaScript and TypeScript processing capabilities with updated ECMAScript utilities -- **Improved**: Module resolution and dependency tracking with better performance -- **Optimized**: Bundle generation with advanced tree-shaking and optimization features - -### Source Map and Debugging -- **Enhanced**: Source map generation with improved accuracy and performance -- **Improved**: Debugging support with better error reporting and stack trace mapping -- **Optimized**: Development build performance with faster incremental compilation - -### Build System -- **Updated**: All workspace crate versions from 0.0.75 to 0.0.76 for version consistency -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.76/Cargo.toml#L29-L44) with updated internal crate dependencies -- **Maintained**: Build reproducibility and dependency consistency across all modules +### Build System Updates +- **Rolldown Bundler**: Updated `brk_rolldown` from 0.1.0 to 0.1.1 with improvements across all bundler components including enhanced ECMAScript utilities, better plugin architecture, and improved string manipulation capabilities ([crates/brk_bundler/Cargo.toml](https://github.com/bitcoinresearchkit/brk/blob/v0.0.76/crates/brk_bundler/Cargo.toml)) [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.75...v0.0.76) -## [v0.0.75](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.75) - 2025-06-27 +## [v0.0.75](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.75) - 2025-07-09 -### Performance Optimization -- **Enhanced**: [Parallel processing chunk size](https://github.com/bitcoinresearchkit/brk/blob/v0.0.75/crates/brk_computer/src/vecs/stateful/mod.rs#L1304) optimized from 4 to 3 threads for better CPU and I/O utilization -- **Improved**: Resource management by increasing parallelism degree to prevent external drive bottlenecks while maintaining system stability -- **Optimized**: Memory usage patterns with more efficient chunk distribution across parallel workers - -### Code Quality -- **Fixed**: [Typo in logging message](https://github.com/bitcoinresearchkit/brk/blob/v0.0.75/crates/brk_computer/src/stores.rs#L601) corrected from "Rotatin" to proper grammar -- **Cleaned**: Debug logging by removing redundant "Computing rest part 2 (others)" message for cleaner output - -### Build System -- **Updated**: All workspace crate versions from 0.0.74 to 0.0.75 for version consistency -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.75/Cargo.toml#L29-L44) with updated internal crate dependencies -- **Maintained**: Build reproducibility and dependency consistency across all modules +### Performance Improvements +- **Chunk Size Optimization**: Adjusted parallel processing chunk size from length/4 to length/3, increasing parallelization granularity for better performance on high-end storage systems while maintaining external drive protection ([crates/brk_computer/src/vecs/stateful/mod.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.75/crates/brk_computer/src/vecs/stateful/mod.rs)) [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.74...v0.0.75) -## [v0.0.74](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.74) - 2025-06-27 +## [v0.0.74](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.74) - 2025-07-09 -### Parallel Processing Optimization -- **Enhanced**: [Cohort computation parallelization](https://github.com/bitcoinresearchkit/brk/blob/v0.0.74/crates/brk_computer/src/vecs/stateful/mod.rs#L1242-L1263) by replacing thread::scope with unified parallel processing using rayon and Either type -- **Optimized**: [Memory and I/O management](https://github.com/bitcoinresearchkit/brk/blob/v0.0.74/crates/brk_computer/src/vecs/stateful/mod.rs#L1303-L1305) with chunked parallel processing to prevent overwhelming external drives (even Thunderbolt 4 SSDs) -- **Improved**: Resource utilization by combining UTXO and address vector processing into single parallel stream for better CPU and memory efficiency -- **Added**: Intelligent chunk sizing calculation based on vector count for optimal parallel performance +### Performance Improvements +- **Parallel Processing Optimization**: Refactored stateful vector computation to use chunked parallel processing with controlled chunk sizes (length/4) instead of unbounded parallelization, preventing external drive bottlenecks and improving performance on Thunderbolt 4 SSDs ([crates/brk_computer/src/vecs/stateful/mod.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.74/crates/brk_computer/src/vecs/stateful/mod.rs)) +- **Thread Scope Elimination**: Replaced complex thread scope management with streamlined Either-based collection processing, reducing threading overhead and improving memory usage patterns during computation -### Performance Monitoring Enhancement -- **Added**: [Memtable rotation logging](https://github.com/bitcoinresearchkit/brk/blob/v0.0.74/crates/brk_computer/src/stores.rs#L601) for better database operation visibility and performance monitoring -- **Enhanced**: Store operation tracking with improved logging for better debugging and optimization insights +### Bug Fixes +- **Memory Table Rotation Logging**: Fixed missing log message for memory table rotation operations, improving debugging and monitoring capabilities during store operations ([crates/brk_computer/src/stores.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.74/crates/brk_computer/src/stores.rs)) -### Dependency Management -- **Added**: [Either crate dependency](https://github.com/bitcoinresearchkit/brk/blob/v0.0.74/crates/brk_computer/Cargo.toml#L24) (version 1.15.0) for improved type-safe enum handling in parallel processing -- **Enhanced**: [Type safety in parallel operations](https://github.com/bitcoinresearchkit/brk/blob/v0.0.74/crates/brk_computer/src/vecs/stateful/mod.rs#L13) with Either pattern for unified vector processing - -### Architecture Improvements -- **Simplified**: Parallel computation logic by removing complex thread spawning and replacing with streamlined parallel iterator chains -- **Enhanced**: Error handling in parallel processing with better propagation and unified error management -- **Optimized**: Reference management in computation cycles with cleaner variable scoping and reduced memory overhead - -### Build System -- **Updated**: All workspace crate versions from 0.0.73 to 0.0.74 for version consistency -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.74/Cargo.toml#L29-L44) with updated internal crate dependencies -- **Maintained**: Build reproducibility and dependency consistency across all modules +### Internal Changes +- **Computation Architecture**: Unified UTXO and address vector processing using Either enum for type-safe handling of different vector types while maintaining performance through parallel iteration +- **Chunk-based Processing**: Implemented intelligent chunking strategy to prevent overwhelming external storage devices while maintaining parallelization benefits [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.73...v0.0.74) -## [v0.0.73](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.73) - 2025-06-27 +## [v0.0.73](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.73) - 2025-07-09 -### Major Architecture Restructuring -- **Removed**: brk_state crate entirely, consolidating state management functionality into other modules for simplified architecture -- **Enhanced**: [brk_computer dependency management](https://github.com/bitcoinresearchkit/brk/blob/v0.0.73/Cargo.lock#L535-L556) with additional core dependencies including bincode, derive_deref, serde, zerocopy, and zerocopy-derive -- **Integrated**: State management functionality directly into computer module for better cohesion and performance -- **Streamlined**: Workspace structure by removing redundant state abstractions +### Breaking Changes +- **Architecture Restructuring**: Removed `brk_state` crate entirely, consolidating its functionality into `brk_computer` with direct store and serialization dependencies, simplifying the overall architecture and reducing module complexity +- **Build System Upgrade**: Updated `brk_rolldown` bundler from 0.0.1 to 0.1.0 with significant API changes including removal of deprecated loader utilities and addition of hot module replacement support -### Rolldown Bundler - Major Version Upgrade -- **Updated**: [brk_rolldown from 0.0.1 to 0.1.0](https://github.com/bitcoinresearchkit/brk/blob/v0.0.73/Cargo.lock#L716-L718) with comprehensive bundling improvements and new features -- **Enhanced**: All rolldown dependencies with significant version bumps and new capabilities -- **Added**: [brk_rolldown_plugin_hmr](https://github.com/bitcoinresearchkit/brk/blob/v0.0.73/Cargo.lock#L919-L928) for Hot Module Replacement support enabling faster development workflows -- **Improved**: Bundle generation with advanced optimization and development features +### New Features +- **Hot Module Replacement**: Added HMR plugin support for improved development experience with live code updates and faster iteration cycles during bundling operations +- **Advanced Hashing**: Integrated Blake3 hashing algorithm for improved performance in debug operations and file integrity verification -### Dependency Infrastructure Upgrades -- **Updated**: [brk_rmcp from 0.1.8 to 0.2.1](https://github.com/bitcoinresearchkit/brk/blob/v0.0.73/Cargo.lock#L676-L678) with enhanced MCP protocol support and better AI integration -- **Enhanced**: [Schemars from 1.0.1 to 1.0.4](https://github.com/bitcoinresearchkit/brk/blob/v0.0.73/Cargo.lock#L629) for improved JSON schema generation and API documentation -- **Added**: New cryptographic dependencies including blake3, arrayref, bit-set, and bit-vec for enhanced security and performance -- **Upgraded**: Core infrastructure dependencies with improved performance and stability - -### Development and Build Enhancements -- **Added**: [Blake3 hashing support](https://github.com/bitcoinresearchkit/brk/blob/v0.0.73/Cargo.lock#L457-L467) for faster and more secure content hashing in bundling processes -- **Enhanced**: Bundling performance with optimized dependency management and caching mechanisms -- **Improved**: Development experience with HMR support and faster rebuild cycles -- **Added**: Advanced bit manipulation utilities for improved data processing efficiency - -### MCP Protocol Enhancement -- **Removed**: Tracing dependency from brk_mcp for cleaner integration and reduced overhead -- **Streamlined**: MCP implementation with focus on core functionality and better performance -- **Enhanced**: AI integration capabilities with updated protocol support and improved reliability - -### Store Module Optimization -- **Added**: [Logging support](https://github.com/bitcoinresearchkit/brk/blob/v0.0.73/Cargo.lock#L1062) to brk_store for better debugging and monitoring capabilities -- **Enhanced**: Store operations with improved error tracking and performance monitoring -- **Optimized**: Key-value storage operations with better logging integration - -### ECMAScript and Bundling Infrastructure -- **Enhanced**: [ECMAScript processing](https://github.com/bitcoinresearchkit/brk/blob/v0.0.73/Cargo.lock#L749) with oxc_ecmascript integration for better JavaScript/TypeScript support -- **Improved**: Module resolution and dependency tracking with advanced bundling capabilities -- **Added**: Support for modern JavaScript features and optimizations -- **Enhanced**: Source map generation and debugging support - -### Build System -- **Updated**: All workspace crate versions from 0.0.71 to 0.0.73 (skipping 0.0.72) -- **Restructured**: [Cargo workspace dependencies](https://github.com/bitcoinresearchkit/brk/blob/v0.0.73/Cargo.toml) with removal of brk_state and integration of new functionality -- **Enhanced**: Build performance with optimized dependency resolution and compilation +### Internal Changes +- **Computer Module Enhancement**: Added bincode serialization, zerocopy optimizations, and derive_deref functionality directly to the computer module for better performance +- **Store Integration**: Enhanced store module with logging capabilities for better debugging and monitoring +- **Plugin Architecture**: Expanded bundler plugin system with data URI support and improved ECMAScript utilities [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.71...v0.0.73) ## [v0.0.71](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.71) - 2025-06-25 -### MCP System - Major Enhancement -- **Upgraded**: [MCP architecture](https://github.com/bitcoinresearchkit/brk/blob/v0.0.71/crates/brk_mcp/src/lib.rs#L26-L32) with tool_router pattern for improved AI integration and better method organization -- **Enhanced**: [Tool parameter handling](https://github.com/bitcoinresearchkit/brk/blob/v0.0.71/crates/brk_mcp/src/lib.rs#L91-L94) using new Parameters wrapper for better type safety and parameter validation -- **Improved**: [MCP tool definitions](https://github.com/bitcoinresearchkit/brk/blob/v0.0.71/crates/brk_mcp/src/lib.rs#L59) by renaming `get_variant_count` to `get_vec_count` for clearer API semantics -- **Refactored**: Tool attribute system from `#[tool(tool_box)]` to `#[tool_router]` for better code generation and maintainability +### New Features +- **Enhanced Schema Documentation**: Added comprehensive descriptions to all Index enum variants and API parameters, providing clear explanations for date/day index, height/block index, transaction indexes, address types, and time periods for better API usability ([crates/brk_interface/src/index.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.71/crates/brk_interface/src/index.rs), [crates/brk_interface/src/params.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.71/crates/brk_interface/src/params.rs)) -### API Documentation Enhancement -- **Added**: [Comprehensive schema descriptions](https://github.com/bitcoinresearchkit/brk/blob/v0.0.71/crates/brk_interface/src/index.rs#L15-L61) for all Index enum variants improving API discoverability -- **Enhanced**: [Parameter documentation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.71/crates/brk_interface/src/params.rs#L15-L66) with detailed schema descriptions for better developer experience -- **Improved**: API clarity with better descriptions for query parameters including `from`, `to`, `count`, and `format` fields +### API Changes +- **MCP Tool Modernization**: Upgraded Model Context Protocol implementation to use new `tool_router` and `Parameters` wrapper for better type safety and parameter handling, replacing legacy `tool_box` approach ([crates/brk_mcp/src/lib.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.71/crates/brk_mcp/src/lib.rs)) +- **Endpoint Renaming**: Renamed `get_variant_count` to `get_vec_count` for better consistency with API terminology -### Dependency Updates -- **Updated**: [brk_rmcp dependency](https://github.com/bitcoinresearchkit/brk/blob/v0.0.71/Cargo.toml#L36) from version 0.1.7 to 0.1.8 with enhanced MCP protocol support -- **Enhanced**: [Schemars dependency](https://github.com/bitcoinresearchkit/brk/blob/v0.0.71/Cargo.toml#L51) from 1.0.0 to 1.0.1 for improved JSON schema generation -- **Updated**: Multiple transitive dependencies including oxc_resolver (11.2.1), papaya (0.2.2), and brk_rmcp-macros (0.1.8) - -### Development Configuration -- **Added**: [Commented development path](https://github.com/bitcoinresearchkit/brk/blob/v0.0.71/Cargo.toml#L37-L39) for local brk_rmcp development enabling easier contribution workflow -- **Enhanced**: Build flexibility with optional local dependency paths for development scenarios - -### Schema Generation Improvements -- **Enhanced**: JSON schema generation with better type documentation and improved API exploration capabilities -- **Improved**: Parameter validation with more descriptive error messages and better type checking -- **Added**: Enhanced schema descriptions for Bitcoin-specific index types (P2PKH, P2SH, P2WPKH, P2WSH, P2TR, etc.) - -### Build System -- **Updated**: All workspace crate versions from 0.0.70 to 0.0.71 for version consistency -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.71/Cargo.toml#L25-L41) with updated internal crate dependencies -- **Maintained**: Build reproducibility and dependency consistency across all modules +### Internal Changes +- **Development Flexibility**: Added commented local development path for `brk_rmcp` to facilitate easier testing and development workflows [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.70...v0.0.71) -## [v0.0.70](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.70) - 2025-06-25 +## [v0.0.70](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.70) - 2025-06-24 -### Module Structure Reorganization -- **Restructured**: [Fetcher module organization](https://github.com/bitcoinresearchkit/brk/blob/v0.0.70/crates/brk_fetcher/src/lib.rs#L11-L20) by flattening the hierarchy and moving files from `fetchers/` subdirectory to root level -- **Moved**: Binance, BRK, and Kraken fetchers to top-level modules for better accessibility and cleaner imports -- **Simplified**: [Module declarations](https://github.com/bitcoinresearchkit/brk/blob/v0.0.70/crates/brk_fetcher/src/lib.rs#L17-L20) with direct module inclusion rather than nested structure -- **Enhanced**: Code organization with improved visibility and reduced nesting complexity +### New Features +- **Model Context Protocol Default**: Enabled MCP (Model Context Protocol) by default for LLM integration, changing from opt-in to opt-out behavior to make AI-powered Bitcoin data analysis more accessible ([crates/brk_cli/src/config.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.70/crates/brk_cli/src/config.rs)) -### API Endpoint Updates -- **Updated**: [BRK fetcher API endpoints](https://github.com/bitcoinresearchkit/brk/blob/v0.0.70/crates/brk_fetcher/src/brk.rs#L50-L54) from generic query format to specific endpoint paths for better performance -- **Changed**: Height-based OHLC endpoint from `/query?index=height&values=ohlc` to `/height-to-ohlc` for improved clarity and efficiency -- **Modified**: [DateIndex-based OHLC endpoint](https://github.com/bitcoinresearchkit/brk/blob/v0.0.70/crates/brk_fetcher/src/brk.rs#L99-L103) from `/query?index=dateindex&values=ohlc` to `/dateindex-to-ohlc` for better API design -- **Improved**: API consistency with dedicated endpoints for specific data types +### API Changes +- **Simplified Endpoints**: Streamlined API endpoints by replacing complex query parameters with dedicated paths (`/height-to-ohlc` and `/dateindex-to-ohlc`) for cleaner and more intuitive data access ([crates/brk_fetcher/src/brk.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.70/crates/brk_fetcher/src/brk.rs)) -### MCP Configuration Enhancement -- **Changed**: [MCP default behavior](https://github.com/bitcoinresearchkit/brk/blob/v0.0.70/crates/brk_cli/src/config.rs#L91) from disabled to enabled by default for improved AI integration accessibility -- **Updated**: [MCP activation logic](https://github.com/bitcoinresearchkit/brk/blob/v0.0.70/crates/brk_cli/src/config.rs#L370) to use `is_none_or(|b| b)` instead of `is_some_and(|b| b)` for opt-out rather than opt-in behavior -- **Enhanced**: User experience by making AI capabilities available by default while maintaining configuration flexibility - -### Documentation Improvements -- **Enhanced**: [MCP tool descriptions](https://github.com/bitcoinresearchkit/brk/blob/v0.0.70/crates/brk_mcp/src/lib.rs#L144-L146) with improved clarity and proper punctuation -- **Updated**: [API badge reference](https://github.com/bitcoinresearchkit/brk/blob/v0.0.70/README.md#L45) from `variant-count` to `vec-count` for accurate dataset counting -- **Improved**: Documentation consistency and accuracy across API references - -### Code Quality Enhancement -- **Added**: [Clippy allow directive](https://github.com/bitcoinresearchkit/brk/blob/v0.0.70/crates/brk_fetcher/src/brk.rs#L11) for upper case acronyms to maintain BRK naming consistency -- **Cleaned**: [Debug code removal](https://github.com/bitcoinresearchkit/brk/blob/v0.0.70/crates/brk_vec/src/variants/raw.rs#L66-L68) including commented debug statements for cleaner codebase -- **Simplified**: Import statements with better organization and reduced redundancy - -### Build System -- **Updated**: All workspace crate versions from 0.0.69 to 0.0.70 for version consistency -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.70/Cargo.toml#L25-L40) with updated internal crate dependencies -- **Maintained**: Build reproducibility and dependency consistency across all modules +### Internal Changes +- **Module Restructuring**: Flattened fetcher module structure by moving fetcher implementations directly into the main crate, eliminating nested module hierarchy for better maintainability +- **Documentation**: Updated API badge URL to reflect new vec-count endpoint and improved MCP tool description clarity ([README.md](https://github.com/bitcoinresearchkit/brk/blob/v0.0.70/README.md)) +- **Code Cleanup**: Removed commented debug code and unused file handle references from raw vector implementation [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.69...v0.0.70) -## [v0.0.69](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.69) - 2025-06-25 +## [v0.0.69](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.69) - 2025-06-24 -### Vector Storage Architecture - Major Refactoring -- **Removed**: [Persistent file handles](https://github.com/bitcoinresearchkit/brk/blob/v0.0.69/crates/brk_vec/src/variants/raw.rs#L27) from RawVec storage system for improved resource management and reduced file descriptor usage -- **Optimized**: [File operations](https://github.com/bitcoinresearchkit/brk/blob/v0.0.69/crates/brk_vec/src/traits/generic.rs#L98-L100) to open files on-demand rather than maintaining persistent handles, reducing memory footprint and preventing resource leaks -- **Enhanced**: [Header writing system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.69/crates/brk_vec/src/variants/raw.rs#L114-L122) with conditional file opening and improved error handling -- **Improved**: Memory-mapped file management with optimized update patterns for better performance and reliability +### Performance Improvements +- **Vector Initialization Optimization**: Removed thread-based parallel initialization of indexes and fetched vectors, replacing with sequential initialization to reduce overhead and improve memory usage patterns during startup ([crates/brk_computer/src/vecs/mod.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.69/crates/brk_computer/src/vecs/mod.rs)) +- **File Handle Management**: Refactored vector file handling architecture to use on-demand file opening instead of persistent file handles, reducing memory footprint and file descriptor usage ([crates/brk_vec/src/variants/raw.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.69/crates/brk_vec/src/variants/raw.rs)) -### Generic Vector Interface Improvements -- **Refactored**: [Generic vector trait methods](https://github.com/bitcoinresearchkit/brk/blob/v0.0.69/crates/brk_vec/src/traits/generic.rs#L112-L139) to accept file parameters directly rather than maintaining internal file state -- **Enhanced**: File operation methods (`file_set_len`, `file_write_all`, `file_truncate_and_write_all`) with explicit file parameter passing for better control and thread safety -- **Optimized**: [Memory map update operations](https://github.com/bitcoinresearchkit/brk/blob/v0.0.69/crates/brk_vec/src/traits/generic.rs#L145-L149) with direct file reference handling for improved performance -- **Simplified**: Vector reset operations with on-demand file opening for reduced resource consumption - -### Compressed Vector Storage Enhancement -- **Improved**: [Compressed vector flush operations](https://github.com/bitcoinresearchkit/brk/blob/v0.0.69/crates/brk_vec/src/variants/compressed.rs#L289-L302) with conditional file opening and optimized write patterns -- **Enhanced**: Page metadata management with better file handle control and reduced memory overhead -- **Optimized**: Buffer writing operations with on-demand file access for improved efficiency - -### Computer Module Threading Optimization -- **Simplified**: [Concurrent processing](https://github.com/bitcoinresearchkit/brk/blob/v0.0.69/crates/brk_computer/src/vecs/mod.rs#L47-L63) by removing thread scope operations and implementing sequential initialization for better reliability -- **Enhanced**: Index and fetched data initialization with simplified control flow and reduced complexity -- **Improved**: Resource management during vector computation initialization for better performance - -### System Resource Management Adjustment -- **Reverted**: [File descriptor limits](https://github.com/bitcoinresearchkit/brk/blob/v0.0.69/crates/brk_core/src/utils/rlimit.rs#L10) back to 210,000 from 420,000 for more conservative resource usage -- **Optimized**: Resource allocation strategy to balance performance with system stability - -### Header System Enhancement -- **Added**: [Modified state tracking](https://github.com/bitcoinresearchkit/brk/blob/v0.0.69/crates/brk_vec/src/structs/header.rs#L60-L62) for vector headers to optimize write operations -- **Improved**: [Header write operations](https://github.com/bitcoinresearchkit/brk/blob/v0.0.69/crates/brk_vec/src/structs/header.rs#L76-L80) with simplified interface and better error handling -- **Enhanced**: Header modification detection for more efficient file I/O operations - -### Build System -- **Updated**: All workspace crate versions from 0.0.68 to 0.0.69 for version consistency -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.69/Cargo.toml#L25-L40) with updated internal crate dependencies -- **Maintained**: Build reproducibility and dependency consistency across all modules +### Internal Changes +- **Resource Limit Adjustment**: Reverted file handle limit back to 210,000 from 420,000, optimizing for more conservative resource usage +- **Header Write Logic**: Simplified vector header writing by removing conditional logic and always performing write operations when needed, improving code clarity and reducing potential race conditions ([crates/brk_vec/src/structs/header.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.69/crates/brk_vec/src/structs/header.rs)) +- **Memory Map Updates**: Refactored memory map update logic to accept file references directly, eliminating need for persistent file handle storage and improving resource management +- **Code Cleanup**: Removed unused imports and simplified vector trait implementations for better maintainability [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.68...v0.0.69) ## [v0.0.68](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.68) - 2025-06-24 -### System Resource Management -- **Enhanced**: [File descriptor limits](https://github.com/bitcoinresearchkit/brk/blob/v0.0.68/crates/brk_core/src/utils/rlimit.rs#L10) increased from 210,000 to 420,000 for improved scalability and better handling of large blockchain datasets -- **Improved**: System resource utilization capabilities enabling processing of larger data volumes without hitting OS limits -- **Optimized**: Resource allocation for high-throughput Bitcoin data analysis operations +### New Features +- **CLI Version Information**: Added version command support to CLI configuration, enabling users to check the current version of BRK directly from the command line ([crates/brk_cli/src/config.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.68/crates/brk_cli/src/config.rs)) -### CLI Configuration Enhancement -- **Added**: [Command version and about metadata](https://github.com/bitcoinresearchkit/brk/blob/v0.0.68/crates/brk_cli/src/config.rs#L19) to CLI configuration structure for better user experience -- **Enhanced**: CLI help system with proper version information display and command descriptions -- **Improved**: Configuration documentation and user guidance - -### Build System -- **Updated**: All workspace crate versions from 0.0.67 to 0.0.68 for version consistency -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.68/Cargo.toml#L25-L40) with updated internal crate dependencies -- **Maintained**: Build reproducibility and dependency consistency across all modules +### Performance Improvements +- **File Handle Limits**: Doubled the minimum file handle limit from 210,000 to 420,000 to accommodate larger Bitcoin datasets and prevent resource exhaustion during intensive blockchain processing operations ([crates/brk_core/src/utils/rlimit.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.68/crates/brk_core/src/utils/rlimit.rs)) [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.67...v0.0.68) ## [v0.0.67](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.67) - 2025-06-24 -### Major Architecture Refactoring -- **Renamed**: `brk_query` → `brk_interface` with comprehensive restructuring for better separation of concerns and improved API design -- **Added**: New [brk_mcp crate](https://github.com/bitcoinresearchkit/brk/blob/v0.0.67/crates/brk_mcp) implementing Model Context Protocol for LLM integration -- **Enhanced**: [CLI configuration system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.67/crates/brk_cli/src/config.rs) with 375 lines of robust configuration management -- **Restructured**: [Indexer architecture](https://github.com/bitcoinresearchkit/brk/blob/v0.0.67/crates/brk_indexer/src/lib.rs) with improved type safety and performance optimizations +### New Features +- **Data Interface Layer**: Added `brk_interface` crate providing a comprehensive data interface layer with serialization, schema generation, and tabular formatting capabilities for exporting datasets in multiple formats (JSON, CSV, TSV, Markdown) +- **Model Context Protocol Support**: Introduced `brk_mcp` crate implementing Model Context Protocol (MCP) for seamless integration with Large Language Models, enabling AI-powered Bitcoin data analysis and querying +- **External MCP Integration**: Added `brk_rmcp` external dependency for robust MCP client/server communication capabilities -### Vector Storage - Unified Header System -- **Implemented**: [Unified header system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.67/crates/brk_vec/src/structs/header.rs) consolidating all vector metadata into single file headers -- **Enhanced**: [Vector format handling](https://github.com/bitcoinresearchkit/brk/blob/v0.0.67/crates/brk_vec/src/structs/format.rs) with improved compression and storage efficiency -- **Optimized**: Memory-mapped file operations across all vector variants for better performance and reduced memory footprint -- **Improved**: [Generic vector operations](https://github.com/bitcoinresearchkit/brk/blob/v0.0.67/crates/brk_vec/src/traits/generic.rs) with enhanced type safety and error handling +### Breaking Changes +- **Dependency Restructuring**: Removed direct `brk_query` dependency from CLI, replaced with modular `brk_interface` and `brk_mcp` architecture for better separation of concerns +- **Storage Simplification**: Removed `arc-swap` and `fjall` dependencies from `brk_state`, streamlining state management architecture -### Data Type System Overhaul -- **Replaced**: OutputTypeIndex with individual specialized indexes for each Bitcoin script type -- **Added**: [Dedicated indexes](https://github.com/bitcoinresearchkit/brk/blob/v0.0.67/crates/brk_core/src/structs) for P2PKH, P2SH, P2WPKH, P2WSH, P2TR, P2A, P2MS, and OP_RETURN outputs -- **Enhanced**: [TypeIndex system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.67/crates/brk_core/src/structs/typeindex.rs) for better Bitcoin script type handling -- **Improved**: EmptyOutputIndex and UnknownOutputIndex for comprehensive output classification - -### Interface Layer - Complete Rewrite -- **Restructured**: [Data interface layer](https://github.com/bitcoinresearchkit/brk/blob/v0.0.67/crates/brk_interface/src/lib.rs) with improved serialization and pagination support -- **Added**: [Enhanced pagination system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.67/crates/brk_interface/src/pagination.rs) for efficient large dataset handling -- **Implemented**: [Advanced indexing](https://github.com/bitcoinresearchkit/brk/blob/v0.0.67/crates/brk_interface/src/index.rs) with support for multiple output formats -- **Enhanced**: [Vector management](https://github.com/bitcoinresearchkit/brk/blob/v0.0.67/crates/brk_interface/src/vecs.rs) with improved type safety and error handling - -### MCP (Model Context Protocol) Integration -- **Added**: Complete [MCP server implementation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.67/crates/brk_mcp/src/lib.rs) enabling Bitcoin data access for Large Language Models -- **Implemented**: [Route handling system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.67/crates/brk_mcp/src/route.rs) for MCP endpoint management -- **Enhanced**: Server integration with MCP capabilities for advanced AI-driven Bitcoin analysis - -### Website and Frontend -- **Removed**: 10,630 lines of auto-generated vecid-to-indexes.js for cleaner codebase -- **Enhanced**: [Chart handling](https://github.com/bitcoinresearchkit/brk/blob/v0.0.67/websites/default/scripts/chart.js) with improved performance and reliability -- **Improved**: [Table functionality](https://github.com/bitcoinresearchkit/brk/blob/v0.0.67/websites/default/scripts/table.js) with better data presentation -- **Updated**: Options and main JavaScript modules with extensive improvements (780 lines changed in options.js) - -### Documentation and Assets -- **Added**: [Project assets](https://github.com/bitcoinresearchkit/brk/blob/v0.0.67/assets) including brk-v0.1.0.png and historical version screenshots -- **Enhanced**: [MCP documentation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.67/crates/brk_mcp/README.md) with setup and usage instructions -- **Updated**: [CLI documentation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.67/crates/brk_cli/README.md) with improved formatting and examples -- **Fixed**: [Changelog titles and repository links](https://github.com/bitcoinresearchkit/brk/blob/v0.0.67/CHANGELOG.md) for better navigation - -### Dependencies and Build System -- **Updated**: 538 lines of Cargo.lock changes with extensive dependency management improvements -- **Added**: brk_rmcp dependency (version 0.1.7) for Remote Method Call Protocol support -- **Enhanced**: [Workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.67/Cargo.toml) with new crate additions and dependency updates -- **Updated**: All workspace crate versions from 0.0.66 to 0.0.67 for version consistency +### Internal Changes +- **Build System**: Added auto-generated `vecid-to-indexes.js` file to gitignore to prevent version control conflicts +- **Documentation Updates**: Updated historical changelog entries to reflect correct repository URLs and asset paths, migrating from kibo-money references to bitcoinresearchkit organization +- **Dependency Updates**: Updated multiple core dependencies including `async-compression`, `autocfg`, `errno`, and `syn` to their latest versions for improved performance and compatibility [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.66...v0.0.67) ## [v0.0.66](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.66) - 2025-06-19 -### Cointime Analytics - Major Implementation -- **Added**: Complete [cointime analysis framework](https://github.com/bitcoinresearchkit/brk/blob/v0.0.66/crates/brk_computer/src/vecs/cointime.rs) with 681 lines of comprehensive Bitcoin time-based analytics implementation -- **Implemented**: [Coinblocks created and stored calculations](https://github.com/bitcoinresearchkit/brk/blob/v0.0.66/crates/brk_computer/src/vecs/cointime.rs#L271-L310) for measuring Bitcoin's temporal economics and supply maturity -- **Added**: [Liveliness and vaultedness metrics](https://github.com/bitcoinresearchkit/brk/blob/v0.0.66/crates/brk_computer/src/vecs/cointime.rs#L312-L341) measuring active vs. dormant Bitcoin behavior patterns -- **Enhanced**: [Vaulted and active supply calculations](https://github.com/bitcoinresearchkit/brk/blob/v0.0.66/crates/brk_computer/src/vecs/cointime.rs#L107-L124) separating Bitcoin holdings by activity levels for sophisticated market analysis -- **Implemented**: [True market mean and cointime price discovery](https://github.com/bitcoinresearchkit/brk/blob/v0.0.66/crates/brk_computer/src/vecs/cointime.rs#L187-L201) algorithms for advanced price analysis +### New Features +- **Cointime Analysis**: Added comprehensive cointime economic metrics including coinblocks creation/storage tracking, liveliness and vaultedness calculations, activity ratios, and specialized price metrics (vaulted price, active price, true market mean, cointime price) with corresponding market cap calculations ([crates/brk_computer/src/vecs/cointime.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.66/crates/brk_computer/src/vecs/cointime.rs)) +- **Advanced Supply Analysis**: Implemented vaulted and active supply tracking with dollar value computations, enabling analysis of Bitcoin storage behavior and economic activity patterns -### Advanced Price Metrics -- **Added**: Thermo cap, investor cap, vaulted cap, and active cap calculations providing multi-dimensional market capitalization analysis -- **Implemented**: Activity-to-vaultedness ratio metrics for understanding Bitcoin holder behavior dynamics -- **Enhanced**: Cointime value destroyed, created, and stored measurements for temporal economic analysis -- **Added**: Comprehensive ratio analysis frameworks for all new cointime-based price metrics +### Documentation +- **CLI Documentation**: Improved CLI README with better formatting, clearer installation instructions, enhanced usage examples, and restructured content with proper markdown syntax and information blocks ([crates/brk_cli/README.md](https://github.com/bitcoinresearchkit/brk/blob/v0.0.66/crates/brk_cli/README.md)) +- **Installation Guidance**: Added prominent installation notes for Ubuntu users and improved download section formatting with better link formatting and structure -### Data Structure Enhancements -- **Enhanced**: [Core data types](https://github.com/bitcoinresearchkit/brk/blob/v0.0.66/crates/brk_core/src/structs/dollars.rs#L25) with additional mathematical operations for complex financial calculations -- **Improved**: [StoredF64 functionality](https://github.com/bitcoinresearchkit/brk/blob/v0.0.66/crates/brk_core/src/structs/stored_f64.rs#L7) with enhanced precision handling for cointime computations -- **Added**: [OHLC data structure improvements](https://github.com/bitcoinresearchkit/brk/blob/v0.0.66/crates/brk_core/src/structs/ohlc.rs#L10) supporting advanced financial analysis requirements - -### Website Integration -- **Enhanced**: [Chart options handling](https://github.com/bitcoinresearchkit/brk/blob/v0.0.66/websites/default/scripts/options.js) with 278 additional lines of cointime-related chart configurations -- **Added**: Comprehensive cointime dataset integration in website interface with proper type definitions -- **Improved**: [Vector ID mapping system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.66/websites/default/scripts/vecid-to-indexes.js) with 366 additional lines supporting all new cointime metrics -- **Fixed**: Options cumulative possible vecids type issue preventing proper chart rendering - -### Documentation and Code Quality -- **Enhanced**: [CLI documentation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.66/crates/brk_cli/README.md) with improved formatting, clearer command explanations, and better installation instructions -- **Improved**: README structure with proper markdown formatting, enhanced tip sections, and streamlined requirements documentation -- **Added**: Better code organization with proper imports and module structure for cointime functionality - -### Build System -- **Updated**: All workspace crate versions from 0.0.65 to 0.0.66 for version consistency -- **Enhanced**: [Module organization](https://github.com/bitcoinresearchkit/brk/blob/v0.0.66/crates/brk_computer/src/vecs/mod.rs#L24) with cointime integration and proper dependency management -- **Added**: Query system integration for cointime datasets enabling API access to all new metrics +### Internal Changes +- **Ratio Analysis Integration**: Connected cointime price metrics with ratio analysis system for comprehensive trend analysis across vaulted price, active price, true market mean, and cointime price ratios [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.65...v0.0.66) ## [v0.0.65](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.65) - 2025-06-17 -### Chart Performance - Critical Fix -- **Fixed**: Major chart hang issue that occurred when fetching candles with slightly different data than previous loads -- **Optimized**: [Chart data update algorithm](https://github.com/bitcoinresearchkit/brk/blob/v0.0.65/websites/default/packages/lightweight-charts/wrapper.js#L483-L491) by completely rewriting the complex historical data comparison logic -- **Simplified**: Data update process from a complex nested while-loop system with multiple conditional branches to a streamlined for-loop that only processes new data points after the last known timestamp -- **Removed**: Extensive debug logging and redundant data comparison logic that was causing performance bottlenecks during chart updates -- **Enhanced**: Chart reliability by eliminating race conditions in data synchronization between different data sources +### Bug Fixes +- **Chart Data Update Logic**: Simplified chart data update algorithm by removing complex comparison logic and replacing it with a streamlined approach that updates all data points at or after the last known time, significantly reducing complexity and potential update conflicts ([websites/default/packages/lightweight-charts/wrapper.js](https://github.com/bitcoinresearchkit/brk/blob/v0.0.65/websites/default/packages/lightweight-charts/wrapper.js)) -### Data Processing Improvements -- **Improved**: Time-based data filtering with optimized logic that prevents unnecessary iterations through historical data -- **Enhanced**: Chart responsiveness by reducing computational overhead during data updates from O(n²) to O(n) complexity -- **Fixed**: Memory efficiency by removing redundant data structures and temporary variables used in the previous comparison algorithm - -### Dataset Versioning -- **Updated**: [Cohort dataset versioning](https://github.com/bitcoinresearchkit/brk/blob/v0.0.65/crates/brk_computer/src/vecs/stateful/cohort.rs#L951) from Version::TWO to Version::new(3) for net realized profit and loss datasets -- **Enhanced**: Data consistency across cumulative net realized profit and loss calculations, including 30-day change metrics relative to realized cap and market cap -- **Improved**: Version tracking for stateful cohort computations to ensure proper data migration and compatibility - -### JavaScript Module Updates -- **Updated**: [Version identifier](https://github.com/bitcoinresearchkit/brk/blob/v0.0.65/websites/default/scripts/vecid-to-indexes.js#L5) from v0.0.63 to v0.0.64 in auto-generated vecid-to-indexes module -- **Enhanced**: Build consistency with proper version synchronization across all JavaScript modules - -### Build System -- **Updated**: All workspace crate versions from 0.0.64 to 0.0.65 for version consistency -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.65/Cargo.toml#L25-L38) with updated internal crate dependencies -- **Maintained**: Build reproducibility and dependency consistency across all modules +### Internal Changes +- **Cohort Analysis Versioning**: Incremented version numbers for cumulative net realized profit/loss metrics from VERSION::TWO to VERSION::new(3), ensuring proper cache invalidation and data consistency for cohort analysis computations ([crates/brk_computer/src/vecs/stateful/cohort.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.65/crates/brk_computer/src/vecs/stateful/cohort.rs)) [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.64...v0.0.65) ## [v0.0.64](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.64) - 2025-06-17 -### Financial Analytics - Major Enhancement -- **Added**: Comprehensive 4-year analytical datasets including [4-year Simple Moving Average (SMA) and Z-score calculations](https://github.com/bitcoinresearchkit/brk/blob/v0.0.64/crates/brk_computer/src/vecs/grouped/ratio_from_dateindex.rs#L122-L129) for long-term trend analysis -- **Enhanced**: [Statistical analysis capabilities](https://github.com/bitcoinresearchkit/brk/blob/v0.0.64/crates/brk_computer/src/vecs/grouped/ratio_from_dateindex.rs#L138-L153) with separate 4-year standard deviation calculations for improved volatility measurements -- **Added**: [4-year Z-score computation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.64/crates/brk_computer/src/vecs/grouped/ratio_from_dateindex.rs#L1090-L1103) enabling long-term statistical positioning analysis relative to historical means -- **Improved**: Market cycle analysis with extended time horizons beyond the existing 1-year calculations for better macro trend identification +### New Features +- **4-Year Statistical Analysis**: Added comprehensive 4-year moving averages and standard deviation calculations for ratio analysis, enabling long-term trend analysis with `ratio_4y_sma`, `ratio_4y_sd`, and `ratio_4y_zscore` metrics ([crates/brk_computer/src/vecs/grouped/ratio_from_dateindex.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.64/crates/brk_computer/src/vecs/grouped/ratio_from_dateindex.rs)) +- **Z-Score Computation Optimization**: Refactored z-score calculations to use a dedicated `compute_zscore()` method, improving code maintainability and performance by centralizing statistical computations -### Data Structure Optimization -- **Enhanced**: [Ratio analysis framework](https://github.com/bitcoinresearchkit/brk/blob/v0.0.64/crates/brk_computer/src/vecs/grouped/ratio_from_dateindex.rs#L27-L32) with standardized naming conventions (ratio_sd vs ratio_standard_deviation) -- **Added**: Comprehensive statistical dataset coverage including percentiles, standard deviations, and z-scores across multiple time horizons -- **Improved**: Mathematical computation efficiency with optimized iterators and calculation methods for large datasets - -### Version Management -- **Updated**: [Dataset versioning system](https://github.com/bitcoinresearchkit/brk/blob/v0.0.64/crates/brk_computer/src/vecs/stateful/cohort.rs#L951) with incremented version numbers for cohort-based calculations -- **Enhanced**: Data integrity with proper version tracking for computed datasets to ensure consistency during updates - -### Build System -- **Updated**: All workspace crate versions from 0.0.63 to 0.0.64 for version consistency -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.64/Cargo.toml#L25-L38) with updated internal crate dependencies +### Internal Changes +- **Vector Naming Convention**: Renamed `ratio_standard_deviation` to `ratio_sd` for consistency with other abbreviated metric names +- **Statistical Method Extraction**: Extracted z-score computation logic into reusable methods, reducing code duplication and improving mathematical accuracy +- **Vector Builder Enhancement**: Added conditional naming logic in grouped vector builder for better handling of sum operations with optional suffixes [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.63...v0.0.64) ## [v0.0.63](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.63) - 2025-06-16 -### Progressive Web App (PWA) - Major Enhancement -- **Added**: Comprehensive PWA asset suite with [complete Apple splash screen support](https://github.com/bitcoinresearchkit/brk/blob/v0.0.63/websites/default/assets/pwa/2025-03-22_10-00-00/index.html) for all iOS device sizes and orientations -- **Enhanced**: PWA experience with optimized splash screens for iPads (1024x1366, 834x1194, 768x1024, 744x1133, 820x1180, 834x1112, 810x1080) and iPhones (430x932, 393x852, 428x926, 390x844, 375x812, 414x896, 414x736, 375x667, 320x568) -- **Added**: Device-specific launch images with proper pixel ratio support (2x and 3x) for seamless mobile app experience -- **Improved**: Apple touch icons and maskable icons for better home screen integration -- **Updated**: Favicon and PWA manifest assets with timestamped versioning (2025-03-22_10-00-00) for better cache management +### New Features +- **Static File Caching**: Implemented intelligent HTTP caching strategy for static assets, setting immutable cache headers for long-term assets (images, fonts, JavaScript, map files) and must-revalidate headers for HTML and service worker files to ensure optimal performance and cache invalidation ([crates/brk_server/src/files/file.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.63/crates/brk_server/src/files/file.rs)) +- **Progressive Web App Assets**: Added comprehensive PWA assets including Apple Touch icons, splash screens for all iOS device sizes and orientations, and maskable icons for Android, enabling native app-like experience across all mobile platforms -### Server Cache Control Optimization -- **Enhanced**: [HTTP caching strategy](https://github.com/bitcoinresearchkit/brk/blob/v0.0.63/crates/brk_server/src/files/file.rs#L97-L110) with improved file extension handling using proper path extension parsing -- **Improved**: Cache control headers for static assets (JS, images, fonts, maps) with immutable caching for better performance -- **Added**: Must-revalidate cache control for HTML files and service workers to ensure fresh content delivery -- **Optimized**: Asset serving performance by categorizing file types more efficiently (images: jpg/png, fonts: woff2, scripts: js/map) - -### Website Assets Update -- **Updated**: Core branding assets (f26610.jpg, f26610.png) with refreshed visual design -- **Enhanced**: Asset organization with timestamped PWA asset directories for better version management -- **Improved**: Mobile app experience with comprehensive device-specific splash screen coverage - -### Build System -- **Updated**: All workspace crate versions from 0.0.62 to 0.0.63 for version consistency -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.63/Cargo.toml#L25-L38) with updated internal crate dependencies -- **Maintained**: Build reproducibility and dependency consistency across all modules +### Internal Changes +- **File Extension Detection**: Refactored file extension checking from string-based `ends_with()` pattern matching to more robust `Path::extension()` method for better accuracy and maintainability +- **Cache Logic Simplification**: Consolidated cache control logic by removing redundant file path checks and grouping related file types for cleaner code organization [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.62...v0.0.63) ## [v0.0.62](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.62) - 2025-06-16 -### Website Performance and Stability -- **Fixed**: Chart stuttering issues during data updates by optimizing update versus setData calls -- **Enhanced**: [Chart data handling](https://github.com/bitcoinresearchkit/brk/blob/v0.0.62/websites/default/packages/lightweight-charts/wrapper.js#L395-L409) with improved data structure processing for better performance -- **Improved**: Time scale bar spacing calculations for different chart intervals (monthly, quarterly, yearly, decade) -- **Enhanced**: Chart settings persistence with automatic URL parameter updates for better user experience -- **Fixed**: Service worker registration with proper scope configuration for Progressive Web App functionality +### Bug Fixes +- **TypeScript Bridge Generation**: Fixed JavaScript/TypeScript bridge generation by properly handling optional return values when reading hashed main.js entry files, preventing crashes when entry files don't exist ([crates/brk_bundler/src/lib.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.62/crates/brk_bundler/src/lib.rs)) +- **TypeScript Type Generation**: Restructured TypeScript type definitions for VecIdToIndexes, moving typedef comments outside function declaration for proper type recognition ([crates/brk_server/src/api/query/bridge.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.62/crates/brk_server/src/api/query/bridge.rs)) -### Bundler Improvements -- **Enhanced**: [JavaScript bundling reliability](https://github.com/bitcoinresearchkit/brk/blob/v0.0.62/crates/brk_bundler/src/lib.rs#L52-L57) with better error handling for main script hash detection -- **Improved**: Build process stability by adding proper null checks and optional chaining for file operations -- **Fixed**: Potential crashes during bundling when entry.js file parsing encounters unexpected formats +### New Features +- **Chart Time Scale Optimization**: Improved time scale spacing for different chart time periods with more balanced bar spacing (quarters: 3→2, years: 12→6, decades: 120→60) for better visual density ([websites/default/packages/lightweight-charts/wrapper.js](https://github.com/bitcoinresearchkit/brk/blob/v0.0.62/websites/default/packages/lightweight-charts/wrapper.js)) +- **Progressive Web App Support**: Added service worker scope configuration and improved PWA manifest handling for better standalone app experience -### TypeScript Integration -- **Enhanced**: [Type definition generation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.62/crates/brk_server/src/api/query/bridge.rs#L64-L65) for better developer experience with improved JSDoc typing -- **Improved**: Vector ID to indexes mapping with cleaner type exports and function structure -- **Added**: Better TypeScript support for chart data interfaces and type safety - -### HTML Standards Compliance -- **Updated**: [HTML document type declaration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.62/websites/default/index.html#L1) from lowercase to uppercase for better standards compliance -- **Enhanced**: Meta tag handling for theme color updates with improved syntax -- **Added**: Error handling wrapper for localStorage operations to prevent crashes in restricted environments - -### Dependencies -- **Updated**: `slab` dependency from 0.4.9 to 0.4.10 for improved performance and bug fixes -- **Maintained**: Dependency consistency across the workspace for stable builds - -### Build System -- **Updated**: All workspace crate versions from 0.0.61 to 0.0.62 for version consistency -- **Enhanced**: [Cargo workspace configuration](https://github.com/bitcoinresearchkit/brk/blob/v0.0.62/Cargo.toml#L25-L38) with updated internal crate dependencies +### Internal Changes +- **Chart Data Processing**: Refactored chart data handling to use object destructuring instead of arrays, improving code clarity and type safety in effect callbacks +- **HTML Standards**: Updated HTML5 DOCTYPE declaration and improved syntax consistency +- **Error Handling**: Added try-catch protection for localStorage operations to prevent crashes in restricted environments [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.61...v0.0.62) ## [v0.0.61](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.61) - 2025-06-15 -### OHLC Data Processing - Major Fix -- **Fixed**: Critical OHLC (Open, High, Low, Close) data inconsistency when switching between different API sources -- **Enhanced**: [OHLC data computation](https://github.com/bitcoinresearchkit/brk/blob/v0.0.61/crates/brk_computer/src/vecs/fetched.rs#L432-L444) now properly handles opening prices by using the previous day's closing price as the current day's opening price to maintain price continuity -- **Improved**: Price data integrity by ensuring smooth transitions when fetching from different exchange APIs (preparation for multiple data source support) -- **Added**: Automatic price adjustment logic that recalculates high and low values when adjusting opening prices to maintain accurate OHLC candle data +### New Features +- **OHLC Price Continuity**: Added logic to maintain price continuity between days in OHLC data computation by setting today's opening price to the previous day's closing price, ensuring no gaps in price series when computing daily OHLC from fetched data ([crates/brk_computer/src/vecs/fetched.rs](https://github.com/bitcoinresearchkit/brk/blob/v0.0.61/crates/brk_computer/src/vecs/fetched.rs)) -### Data Structure Enhancements -- **Enhanced**: [OHLC struct definitions](https://github.com/bitcoinresearchkit/brk/blob/v0.0.61/crates/brk_core/src/structs/ohlc.rs) with improved mutability support through DerefMut trait implementation -- **Added**: Mutable access patterns for all OHLC price components (open, high, low, close) enabling runtime price adjustments -- **Improved**: Memory layout optimization with proper derive trait implementations for better serialization and zero-copy operations - -### Error Handling and Debugging -- **Enhanced**: [File export error reporting](https://github.com/bitcoinresearchkit/brk/blob/v0.0.61/crates/brk_parser/src/blk_index_to_blk_recap.rs#L99-L103) in parser module with more descriptive error messages -- **Improved**: Error handling during JSON export operations with better context about file creation failures -- **Added**: Enhanced debugging information for file system operations - -### Build System -- **Updated**: All workspace crate versions from 0.0.59 to 0.0.61 for version consistency -- **Enhanced**: [Cargo.toml dependencies](https://github.com/bitcoinresearchkit/brk/blob/v0.0.61/Cargo.toml#L25-L38) with updated version numbers across all internal crates -- **Maintained**: Workspace dependency consistency for proper build reproducibility +### Internal Changes +- **Struct Mutability**: Added `DerefMut` trait to all OHLC struct variants (OhlcF64, OhlcBtc, OhlcSats, OhlcUsd) enabling mutable access to underlying values +- **Error Handling**: Improved file creation error handling in block recap export with more descriptive panic messages [View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.59...v0.0.61) - -## [v0.0.59](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.59) - 2025-06-15 - -### Computer Module -- **Fixed**: Open of OHLC data when fetched from different API than previous OHLC -- **Enhanced**: API data consistency handling - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.58...v0.0.59) - -## [v0.0.58](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.58) - 2025-06-15 - -### Bundler -- **Fixed**: BRK bundler usage -- **Removed**: HTML minify crate for improved bundling -- **Deployed**: brk_rolldown bundler with edge case fixes -- **Initialized**: Working bundler version -- **Added**: Basic bundling functionality - -### Server -- **Updated**: Cache control for bundled websites (continued improvements) -- **Enhanced**: Website serving performance -- **Enhanced**: Static file serving performance - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.56...v0.0.58) - -## [v0.0.56](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.56) - 2025-06-13 - -### Computer Module -- **Enhanced**: Stateful operations now reset when blockchain reorganization detected -- **Improved**: Blockchain state management reliability - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.55...v0.0.56) - -## [v0.0.55](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.55) - 2025-06-13 - -### Global -- **Fixed**: Multiple system-wide fixes and improvements -- **Enhanced**: Overall system stability - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.54...v0.0.55) - -## [v0.0.54](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.54) - 2025-06-12 - -### Website -- **Enhanced**: Filter possible index choices in charts (initial implementation) -- **Enhanced**: Filter possible index choices in charts -- **Fixed**: CSS styling issues -- **Added**: Auto price series type for default website -- **Added**: Live price functionality -- **Removed**: ScrollToSelected functionality - -### Vector Storage -- **Fixed**: Compressed vector functionality (ongoing improvements) -- **Fixed**: Compressed vector functionality (still has slow parallel read performance) -- **Changed**: CLI defaults to raw format for performance -- **Changed**: CLI now defaults to raw format for better performance - -### Indexer -- **Enhanced**: Raw format only support -- **Limited**: Now only supports raw format -- **Fixed**: Global system fixes -- **Fixed**: Various global fixes - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.52...v0.0.54) - -## [v0.0.52](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.52) - 2025-06-11 - -### Website -- **Fixed**: Service worker and related components -- **Enhanced**: Progressive Web App functionality - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.51...v0.0.52) - -## [v0.0.51](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.51) - 2025-06-11 - -### Website -- **Enhanced**: Default website improvements and fixes - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.50...v0.0.51) - -## [v0.0.50](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.50) - 2025-06-11 - -### Website -- **Fixed**: Minimum bar spacing for charts -- **Enhanced**: Chart display improvements - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.49...v0.0.50) - -## [v0.0.49](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.49) - 2025-06-11 - -### Build System -- **Updated**: Set full version of all crates for better versioning consistency -- **Enhanced**: Cargo workspace version management - -### Website -- **Updated**: Multiple default website snapshots and improvements - -### Documentation -- **Updated**: README improvements - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.48...v0.0.49) - -## [v0.0.48](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.48) - 2025-06-09 - -### Website -- **Enhanced**: Default website snapshots and continued development - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.47...v0.0.48) - -## [v0.0.47](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.47) - 2025-06-08 - -### Server -- **Added**: Documentation for index-t-value functionality -- **Added**: Support for `/api/X-to-Y` endpoints -- **Fixed**: Query CLI functionality -- **Added**: Meta API endpoints for better API discoverability - -### CLI -- **Added**: Count parameter to query functionality - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.46...v0.0.47) - -## [v0.0.46](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.46) - 2025-06-08 - -### Server -- **Added**: DDoS protection for better server security -- **Enhanced**: Request rate limiting and protection - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.45...v0.0.46) - -## [v0.0.45](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.45) - 2025-06-08 - -### Website -- **Moved**: Service worker to root directory -- **Updated**: Service worker functionality -- **Enhanced**: PWA capabilities - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.44...v0.0.45) - -## [v0.0.44](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.44) - 2025-06-07 - -### Server -- **Fixed**: Existing folder endpoints functionality -- **Enhanced**: File serving reliability - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.43...v0.0.44) - -## [v0.0.43](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.43) - 2025-06-07 - -### Website -- **Updated**: Dependencies and fixed CSS issues -- **Enhanced**: Styling and layout improvements - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.42...v0.0.43) - -## [v0.0.42](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.42) - 2025-06-07 - -### Global System -- **Fixed**: Multiple system fixes and improvements -- **Enhanced**: System-wide stability improvements -- **Resolved**: Data accuracy issues that were causing incorrect results - -### Fetcher -- **Added**: Support for new API endpoints -- **Enhanced**: Data fetching capabilities - -### Computer Module -- **Fixed**: Coinblocks overflow issue -- **Enhanced**: Calculation accuracy and stability -- **Increased**: Flush frequency for better data persistence -- **Fixed**: Eager mode functionality -- **Enhanced**: Performance and reliability - -### Documentation -- **Reset**: Changelog for clean organization - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.40...v0.0.42) - -## [v0.0.40](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.40) - 2025-05-25 - -### Global System -- **Fixed**: Multiple system-wide issues -- **Enhanced**: Overall stability and performance -- **Resolved**: Data accuracy issues in global computations - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.39...v0.0.40) - -## [v0.0.39](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.39) - 2025-05-25 - -### UTXO System -- **Implemented**: UTXO dataset functionality (initial part 1) -- **Implemented**: UTXO dataset functionality (part 1) -- **Added**: Foundation for unspent transaction output analysis -- **Added**: Unspent transaction output tracking and analysis - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.37...v0.0.39) - -## [v0.0.37](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.37) - 2025-05-14 - -### DCA Analysis -- **Added**: Dollar-Cost Averaging (DCA) classes and analysis -- **Enhanced**: Investment strategy analytics - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.36...v0.0.37) - -## [v0.0.36](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.36) - 2025-05-13 - -### Website -- **Added**: Price line functionality to charts -- **Enhanced**: Chart visualization capabilities - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.35...v0.0.36) - -## [v0.0.35](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.35) - 2025-05-12 - -### Financial Analytics -- **Added**: Investment return analysis (lump sum vs DCA) -- **Added**: Average and ratio datasets -- **Added**: Market Simple Moving Averages (SMAs) -- **Enhanced**: Financial analysis tools - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.34...v0.0.35) - -## [v0.0.34](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.34) - 2025-05-09 - -### Website -- **Added**: Market charts functionality -- **Enhanced**: Chart display and interaction - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.33...v0.0.34) - -## [v0.0.33](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.33) - 2025-05-08 - -### Vector Storage -- **Fixed**: Computed vector eager path functionality -- **Enhanced**: Path deletion for lazy vectors -- **Improved**: Vector storage reliability - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.32...v0.0.33) - -## [v0.0.32](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.32) - 2025-05-08 - -### Vector Storage - Lazy Computation -- **Completed**: Lazy computation implementation -- **Enhanced**: On-demand vector calculation -- **Improved**: Memory efficiency for large datasets - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.31...v0.0.32) - -## [v0.0.31](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.31) - 2025-04-30 - -### Global System -- **Fixed**: Multiple system fixes and improvements -- **Updated**: Fixed old X (Twitter) links that directed to impersonator accounts -- **Enhanced**: Link security and accuracy - -### Computer Module -- **Removed**: Last indexes in favor of count-based approach -- **Enhanced**: Index management efficiency - -### Vector Storage -- **Improved**: Vector iteration with `into_iter` for range collection -- **Enhanced**: Iterator performance and memory usage - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.30...v0.0.31) - -## [v0.0.30](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.30) - 2025-04-23 - -### Website -- **Fixed**: Chart data fetching issues -- **Enhanced**: Data loading reliability - -### Global System -- **Added**: Pay-to-Anchor (P2A) support -- **Enhanced**: Bitcoin script type support -- **Improved**: Transaction parsing capabilities - -### Storage System -- **Unified**: Single keyspace for all stores using fjall -- **Enhanced**: Storage efficiency and organization - -### Vector Storage -- **Implemented**: Lazy/eager computation model -- **Enhanced**: Flexible computation strategies - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.29...v0.0.30) - -## [v0.0.29](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.29) - 2025-04-22 - -### Website (Kibo) -- **Fixed**: TypeScript ignore additions for better compilation -- **Enhanced**: Database functionality (part 2) -- **Improved**: Database integration and management - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.28...v0.0.29) - -## [v0.0.28](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.28) - 2025-04-19 - -### Website (Kibo) -- **Implemented**: Database functionality (part 1) -- **Added**: Initial database integration for kibo website - -### Computer Module -- **Enhanced**: Computer + kibo integration (part 14) with fixes -- **Improved**: Cross-module functionality - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.27...v0.0.28) - -## [v0.0.27](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.27) - 2025-04-18 - -### Distribution -- **Fixed**: Tag version formatting issues -- **Enhanced**: Release packaging improvements - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.26...v0.0.27) - -## [v0.0.26](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.26) - 2025-04-18 - -### Distribution -- **Fixed**: Ubuntu version compatibility -- **Enhanced**: Linux distribution support - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.25...v0.0.26) - -## [v0.0.25](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.25) - 2025-04-18 - -### Distribution -- **Updated**: Ubuntu version for better compatibility -- **Added**: Manual trigger for GitHub Actions -- **Enhanced**: CI/CD pipeline flexibility - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.24...v0.0.25) - -## [v0.0.24](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.24) - 2025-04-18 - -### Dependencies -- **Updated**: Upgraded multiple crates for better performance -- **Enhanced**: Dependency management - -### Computer Module -- **Enhanced**: Computer + kibo integration (part 13) -- **Cleanup**: Kibo-related code organization -- **Continued**: Computer module development (part 12) - -### Documentation -- **Updated**: Parser README documentation -- **Enhanced**: Documentation clarity and completeness -- **Updated**: Discord community links - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.23...v0.0.24) - -## [v0.0.23](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.23) - 2025-04-14 - -### Dependencies -- **Updated**: Dependency upgrades across the workspace -- **Enhanced**: Compatibility and performance -- **Enhanced**: System compatibility - -### Computer Module -- **Enhanced**: Computer + kibo integration (parts 10-11) -- **Improved**: Cross-component functionality -- **Improved**: Cross-module functionality - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.21...v0.0.23) - -## [v0.0.21](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.21) - 2025-04-11 - -### Computer Module -- **Enhanced**: Computer + kibo integration (part 9) -- **Continued**: Ongoing computer module development - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.20...v0.0.21) - -## [v0.0.20](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.20) - 2025-04-10 - -### Global Cleanup -- **Cleaned**: Old files and legacy code -- **Enhanced**: Codebase organization - -### Vector Storage -- **Reworked**: Vector storage implementation (parts 1-4) -- **Optimized**: Performance improvements -- **Enhanced**: Memory efficiency - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.19...v0.0.20) - -## [v0.0.19](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.19) - 2025-04-07 - -### Computer Module -- **Enhanced**: Computer functionality (parts 5-7) -- **Improved**: Data processing capabilities - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.18...v0.0.19) - -## [v0.0.18](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.18) - 2025-04-05 - -### Computer Module -- **Enhanced**: Computer functionality (part 4) -- **Continued**: Core computer development - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.17...v0.0.18) - -## [v0.0.17](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.17) - 2025-04-05 - -### Distribution -- **Moved**: Configuration to `config.toml` format -- **Enhanced**: Configuration management - -### Storage -- **Initialized**: Disk-based storage functionality -- **Enhanced**: Data persistence capabilities - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.16...v0.0.17) - -## [v0.0.16](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.16) - 2025-04-04 - -### Server -- **Fixed**: Repository version path issues -- **Enhanced**: Static file serving - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.15...v0.0.16) - -## [v0.0.15](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.15) - 2025-04-04 - -### Server -- **Fixed**: Missing 'v' in version handling -- **Enhanced**: Version management - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.14...v0.0.15) - -## [v0.0.14](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.14) - 2025-04-04 - -### Server -- **Fixed**: Downloaded repository version path -- **Enhanced**: File path resolution - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.13...v0.0.14) - -## [v0.0.13](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.13) - 2025-04-04 - -### Global System -- **Enhanced**: System-wide improvements and snapshots -- **Fixed**: Various stability issues - -### Documentation -- **Added**: Warning notices in README -- **Enhanced**: User guidance and safety information - -### Website (Kibo) -- **Fixed**: Simulation functionality -- **Enhanced**: User interface improvements -- **Converted**: TypeScript types to JSDoc for better compatibility -- **Upgraded**: Signals library to tresshaked v0.2.4 - -### Server -- **Added**: API documentation -- **Enhanced**: Development experience - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0.12...v0.0.13) - -## [v0.0.12](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0.12) - 2025-04-02 - -### Server -- **Enhanced**: API documentation and functionality -- **Improved**: Developer experience - -### Website (Kibo) -- **Enhanced**: Various improvements (parts 1-5) -- **Changed**: Font from Satoshi to Geist -- **Improved**: Typography and design - -### Documentation -- **Updated**: README files with badges and shields -- **Enhanced**: Project presentation - -### Dependencies -- **Updated**: Crate updates across workspace -- **Enhanced**: Compatibility and performance - -[View changes](https://github.com/bitcoinresearchkit/brk/compare/v0.0...v0.0.12) - -## [v0.0](https://github.com/bitcoinresearchkit/brk/releases/tag/v0.0) - 2025-02-23 - -### Major Project Rewrite -- **BREAKING**: Complete rewrite from legacy "kibo" to modern "BRK" (Bitcoin Research Kit) -- **New**: Modular Rust workspace architecture with separate crates -- **Added**: Modern build system with Cargo workspace -- **Created**: New vector storage engine (`brk_vecs`, later became `vecdb`) -- **Established**: Clear separation between parser, indexer, computer, and server modules -- **Added**: MCP (Model Context Protocol) integration -- **Added**: RESTful API server with multiple output formats -- **Added**: Comprehensive CLI interface -- **Enhanced**: Performance and scalability improvements - ---- - -## Previous Releases (Legacy from kibo project) - - - -# v0.X.0 | WIP | A new beginning - -![Image of BRK's Web App version 0.1.0](https://github.com/bitcoinresearchkit/brk/blob/main/assets/brk-v0.1.0.png) - -Full rewrite - -# [kibo-v0.5.0](https://github.com/bitcoinresearchkit/brk/tree/eea56d394bf92c62c81da8b78b8c47ea730683f5) | [873199](https://mempool.space/block/0000000000000000000270925aa6a565be92e13164565a3f7994ca1966e48050) - 2024/12/04 - -![Image of the kibo Web App version 0.5.0](https://github.com/bitcoinresearchkit/brk/blob/main/assets/kibo-v0.5.0.jpg) - -## Datasets - -- Added `Sell Side Risk Ratio` to all entities -- Added `Open`, `High` and `Low` datasets -- Added `Satoshis Per Dollar` -- Added `All Time High` -- Added `All Time High Date` -- Added `Days Since All Time High` -- Added `Max Days Between All Time Highs` -- Added `Max Years Between All Time Highs` -- Added `Drawdown` -- Added `Adjusted Value Created`, `Adjusted Value Destroyed` and `Adjusted Spent Output Profit Ratio` to all entities -- Added `Realized Profit To Loss Ratio` to all entities -- Added `Hash Price Min` -- Added `Hash Price Rebound` -- Removed all year datasets (25) in favor for epoch datasets (5), the former was too granular to be really useful -- Removed datasets split by liquidity for all datasets **already split by any address kind**, while fun to have, they took time to compute, ram, and space to store and no one was actually checking them -- Fixed a lot of values in split by liquidity datasets - -## Website - -- Updated the design yet again which made the website for something more minimal and easier on the eyes -- Added a *Save In Bitcoin* (DCA) simulation page -- ~Added a dashboard~ Added the latest values to the tree next to each option instead, while less values are visible at a time, it's much more readable and organised -- Added a library of PDFs -- Fixed service worker not passing 304 (not modified) response and instead serving cached responses -- Fixed history not being properly registered -- Fixed window being moveable on iOS when in standalone mode when it shouldn't be -- Added `Compare` section to all groups, to compare all datasets within a group -- Updated `Solid Signals` library, which had an important breaking change on the `createEffect` function which might bring some bugs -- Fixed some datasets paths -- A lot of code reorg and file splits -- Adopted a framework like approach to load pages while still being pure JS without a build step -- Probably more that was forgotten - -## Parser - -- Added a `/datasets/last` json file with all the latest values -- Added `--rpcconnect` parameter to the config -- Added handling of SIGINT and SIGTERM terminal signals which menas you can now safely CTRL+C or kill the parser while it's exporting -- Added config print at the start of the program -- Compressed `empty_address_data` struct to save space (should shave of between up to 50% of the `address_index_to_empty_address_data` database) -- Doubled the number of `txid_to_tx_data` databases from 4096 to 8192 -- ~Added `--recompute_computed true` argument, to allow recomputation of computed datasets in case of a bug~ Buggy for now -- Fixed not saved arguments, not being processed properly -- Fixed bug in `generic_map.multi_insert_simple_average` -- Added defragmentation option `--first-defragment true` of databases to save space (which can save up to 50%) -- Fixed bug in the computation of averages in `GenericMap` -- Added support and paramer for cookie files with `--rpccookiefile`, and auto find if the path is `--datadir/.cookie` -- Increased number of retries and time between them when fetching price from exchanges APIs - -## Server - -- Fixed links in several places missing the `/api` part and thus not working -- Fixed broken last values routes -- Added support for the `/datasets/last` file via the `/api/last` route -- Added support for `.json` (won't change anything) and `.csv` (will download a csv file) extension at the end of datasets routes -- Added `all=true` query parameter to dataset routes to get to full history - -## Biter - -- Moved back to this repo - -# [kibo-v0.4.0](https://github.com/bitcoinresearchkit/brk/tree/a64c544815d9ef785e2fc1323582f774f16b9200) | [861950](https://mempool.space/block/00000000000000000000530d0e30ccf7deeace122dcc99f2668a06c6dad83629) - 2024/09/19 - -![Image of the kibo Web App version 0.4.0](https://github.com/bitcoinresearchkit/brk/blob/main/assets/kibo-v0.4.0.jpg) - -## Brand - -- **Satonomics** is now **kibo** 🎉 - -## Website - -- Complete redesign of the website -- Rewrote the whole application and removed `node`/`npm`/`pnpm` dependencies in favor for pure `HTML`/`CSS`/`Javascript` -- Website is now served by the server -- Added Trading View attribution link to the settings frame and file in the lightweight charts folder -- Many other changes - -## Parser - -- Changed the block iterator from a custom version of [bitcoin-explorer](https://crates.io/crates/bitcoin-explorer) to the homemade [biter](https://crates.io/crates/biter) which allows the parser to run alongside `bitcoind` -- Added datasets compression thanks to [zstd](https://crates.io/crates/zstd) to reduce disk usage -- Use the Bitcoin RPC server for various calls instead of running cli commands and then parsing the JSON from the output -- **Important database changes that will need a full rescan**: - - Changed databases page size from 1MB to 4KB for improved disk usage - - Split txid_to_tx_data database in 4096 chunks (from 256) for improved disk usage - - Split address_index_to_X databases to chunks of 25_000 instead of 50_000 - - Removed local Multisig database -- Updated the config, run with `-h` to see possible args -- Moved outputs from `/target/outputs` to `/out` to allow to run commands like `cargo clean` without side effects -- Various first run fixes -- Added to `-h` which arguments are saved, which is all of them at the time of writing - -## Server - -- Updated the code to support compressed binaries -- Added serving of the website -- Improved `Cache-Control` behavior - -# [satonomics-v0.3.0](https://github.com/bitcoinresearchkit/brk/tree/b68b016091c45b071218fba01bac5b76e8eaf18c) | [853930](https://mempool.space/block/00000000000000000002eb5e9a7950ca2d5d98bd1ed28fc9098aa630d417985d) - 2024/07/26 - -![Image of the Satonomics Web App version 0.3.0](https://github.com/bitcoinresearchkit/brk/blob/main/assets/satonomics-v0.3.0.jpg) - -## Parser - -- Global - - Improved self-hosting by: - - Fixing an incredibly annoying bug that made the program panic because of a wrong utxo/address durable state after a or many new datasets were added/changed after a first successful parse of the chain - - Fixing a bug that would crash the program if launched for the first time ever - - Auto fetch prices from the main Satonomics instance if missing instead of only trying Kraken's and Binance's API which are limited to the last 16 hours - - Merged the core of `HeightMap` and `DateMap` structs into `GenericMap` - - Added `Height` struct and many others - - Reorganized outputs of both the parser and the server for ease of use and easier sync compatibility -- CLI - - Added an argument parser for improved UX with several options -- Datasets - - Added the following datasets for all entities: - - Value destroyed - - Value created - - Spent Output Profit Ratio (SOPR) - - Added the following ratio datasets and their variations to all prices {realized, moving average, any cointime, etc}: - - Market Price to {X} - - Market Price to {X} Ratio - - Market Price to {X} Ratio 1 Week SMA - - Market Price to {X} Ratio 1 Month SMA - - Market Price to {X} Ratio 1 Year SMA - - Market Price to {X} Ratio 1 Year SMA Momentum Oscillator - - Market Price to {X} Ratio 99th Percentile - - Market Price to {X} Ratio 99.5th Percentile - - Market Price to {X} Ratio 99.9th Percentile - - Market Price to {X} Ratio 1st Percentile - - Market Price to {X} Ratio 0.5th Percentile - - {X} 1% Top Probability - - {X} 0.5% Top Probability - - {X} 0.1% Top Probability - - {X} 1% Bottom Probability - - {X} 0.5% Bottom Probability - - {X} 0.1% Bottom Probability - - Added block metadatasets and their variants (raw/sum/average/min/max/percentiles): - - Block size - - Block weight - - Block VBytes - - Block interval -- Price - - Improved error message when price cannot be found - -## App - -- General - - Added chart scroll button for nice animations à la Wicked - - Added scale mode switch (Linear/Logarithmic) at the bottom right of all charts - - Added unit at the top left of all charts - - Added a backup API in case the main one fails or is offline - - Complete redesign of the datasets object - - Removed import of routes in JSON in favor for hardcoded typed routes in string format which resulted in: - - \+ A much lighter app - - \+ Better Lighthouse score - - \- Slower Typescript server - - Fixed datasets with null values crashing their fetch function - - Added a 'Go to a random chart' button in several places -- Chart - - Fixed series color being set to default ones after hovering the legend - - Fixed chart starting showing candlesticks and quickly switching to a line when it should've started directly with the line - - Separated the QRCode generator library from the main chunk and made it imported on click - - Fixed timescale changing on small screen after changing charts -- Folders - - Added the size in the "filename" of address cohorts grouped by size -- Favorites - - Added a 'favorite' and 'unfavorite' button at the bottom -- Settings - - Removed the horizontal scroll bar which was unintended - -## Server - -- Run file - - Only run with a watcher if `cargo watch` is available - - Removed id_to_path file in favor for only `paths.d.ts` in `app/src/types` - -# [satonomics-v0.2.0](https://github.com/bitcoinresearchkit/brk/tree/248187889283597c5dbb806292297453c25e97b8) | [851286](https://mempool.space/block/0000000000000000000281ca7f1bf8c50702bfca168c7af1bdc67c977c1ac8ed) - 2024/07/08 - -![Image of the Satonomics Web App version 0.2.0](https://github.com/bitcoinresearchkit/brk/blob/main/assets/satonomics-v0.2.0.jpg) - -## App - -- General - - Added the height version of all datasets and many optimizations to make them usable but only available on desktop and tablets for now - - Added a light theme -- Charts - - Added split panes in order to have the vertical axis visible for all datasets - - Added min and max values on the charts - - Fixed legend hovering on mobile not resetting on touch end - - Added "3 months" and yearly time scale setters (from year 2009 to today) - - Hide scrollbar of timescale setters and instead added scroll buttons to the legend only visible on desktop - - Improved Share/QR Code screen - - Changed all Area series to Line series - - Fixed horizontal scrollable legend not updating on preset change -- Performance - - Improved app's reactivity - - Added some chunk splitting for a faster initial load - - Global improvements that increased the Lighthouse's performance score -- Settings - - Finally made a proper component where you can chose the app's theme, between a moving or static background and its text opacity - - Added donations section with a leaderboard - - Added various links that are visible on the bottom side of the strip on desktop to mobile users - - Added install instructions when not installed for Apple users -- Misc - - Support mini window size, could be useful for embedded views - - Hopefully made scrollbars a little more subtle on WIndows and Linux, can't test - - Generale style updates - -## Parser - -- Fixed ulimit only being run in Mac OS instead of whenever the program is detected - -# [satonomics-v0.1.1](https://github.com/bitcoinresearchkit/brk/tree/e55b5195a9de9aea306903c94ed63cb1720fda5f) | [849240](https://mempool.space/block/000000000000000000002b8653988655071c07bb5f7181c038f9326bc86db741) - 2024/06/24 - -![Image of the Satonomics Web App version 0.1.1](https://github.com/bitcoinresearchkit/brk/blob/main/assets/satonomics-v0.1.1.jpg) - -## Parser - -- Fixed overflow in `Price` struct which caused many Realized Caps and Realized Prices to have completely bogus data -- Fixed Realized Cap computation which was using rounded prices instead normal ones - -## Server - -- Added the chunk, date and time of the request to the terminal logs - -## App - -- Chart - - Added double click option on a legend to toggle the visibility of all other series - - Added highlight effect to a legend by darkening the color of all the other series on the chart while hovering it with the mouse - - Added an API link in the legend for each dataset where applicable (when isn't generated locally) - - Save fullscreen preference in local storage and url - - Improved resize bar on desktop - - Changed resize button logo - - Changed the share button to visible on small screen too - - Improved share screen - - Fixed time range shifting not being the one in url params or saved in local storage - - Fixed time range shifting on series toggling via the legend - - Fixed time range shifting on fullscreen - - Fixed time range shifting on resize of the sidebar - - Set default view at first load to last 6 months - - Added some padding around the datasets (year 1970 to 2100) -- History - - Changed background for the sticky dates from blur to a solid color as it didn't appear properly in Firefox -- Build - - Tried to add lazy loads to have split chunks after build, to have much faster load times and they worked great ! But they completely broke Safari on iOS, we can't have nice things - - Removed many libraries and did some things manually instead to improve build size -- Strip - - Temporarily removed the Home button on the strip bar on desktop as there is no landing page yet -- Settings - - Added version -- PWA - - Fixed background update - - Changed update check frequency to 1 minute (~1kb to fetch every minute which is very reasonable) - - Added a nice banner to ask the user to install the update -- Misc - - Removed tracker even though it was a very privacy friendly as it appeared to not be working properly - -## Price - -- Deleted old price datasets and their backups - -# [satonomics-v0.1.0](https://github.com/bitcoinresearchkit/brk/tree/a1a576d088c8f83ed32d48753a7611f70a964574) | [848642](https://mempool.space/block/000000000000000000020be5761d70751252219a9557f55e91ecdfb86c4e026a) - 2024/06/19 - -![Image of the Satonomics Web App version 0.1.0](https://github.com/bitcoinresearchkit/brk/blob/main/assets/satonomics-v0.1.0.jpg) - -# satonomics-v0.0.1 | [835444](https://mempool.space/block/000000000000000000009f93907a0dd83c080d5585cc7ec82c076d45f6d7c872) - 2024/03/20 - -![Image of the Satonomics Web App version 0.0.X](https://github.com/bitcoinresearchkit/brk/blob/main/assets/satonomics-v0.0.1.jpg) diff --git a/websites/bitview/packages/.gitignore b/websites/bitview/packages/.gitignore index f388350fb..9495122c0 100644 --- a/websites/bitview/packages/.gitignore +++ b/websites/bitview/packages/.gitignore @@ -10,6 +10,5 @@ dev.js *.iife.* nano.* worker.* -*.ts *.mts *.cts diff --git a/websites/bitview/packages/lean-qr/2.5.0/index.d.ts b/websites/bitview/packages/lean-qr/2.5.0/index.d.ts new file mode 100644 index 000000000..d9e08fef8 --- /dev/null +++ b/websites/bitview/packages/lean-qr/2.5.0/index.d.ts @@ -0,0 +1,491 @@ +declare module 'lean-qr' { + interface ImageDataLike { + readonly data: Uint8ClampedArray; + } + + interface Context2DLike { + createImageData(width: number, height: number): DataT; + putImageData(data: DataT, x: number, y: number): void; + } + + interface CanvasLike { + width: number; + height: number; + getContext(type: '2d'): Context2DLike | null; + } + + /** + * A colour in `[red, green, blue, alpha]` format (all values from 0 to 255). + * If alpha is omitted, it is assumed to be 255 (opaque). + */ + export type RGBA = readonly [number, number, number, number?]; + + export interface Bitmap1D { + /** + * Appends a sequence of bits. + * + * @param value an integer containing the bits to append (big endian). + * @param bits the number of bits to read from `value`. Must be between 1 and 24. + */ + push(value: number, bits: number): void; + } + + export interface StringOptions { + /** the text to use for modules which are 'on' (typically black) */ + on?: string; + + /** the text to use for modules which are 'off' (typically white) */ + off?: string; + + /** the text to use for linefeeds between rows */ + lf?: string; + + /** the padding to apply on the left and right of the output (populated with 'off' modules) */ + padX?: number; + + /** the padding to apply on the top and bottom of the output (populated with 'off' modules) */ + padY?: number; + } + + export interface ImageDataOptions { + /** the colour to use for modules which are 'on' (typically black) */ + on?: RGBA; + + /** the colour to use for modules which are 'off' (typically white) */ + off?: RGBA; + + /** the padding to apply on the left and right of the output (filled with 'off') */ + padX?: number; + + /** the padding to apply on the top and bottom of the output (filled with 'off') */ + padY?: number; + } + + export interface Bitmap2D { + /** the width / height of the QR code in modules (excluding any padding) */ + readonly size: number; + + /** + * Read the state of a module from the QR code. + * + * @param x the x coordinate to read. Can be negative / out of bounds. + * @param y the y coordinate to read. Can be negative / out of bounds. + * @returns true if the requested module is set (i.e. typically black) + */ + get(x: number, y: number): boolean; + + /** + * Generate a string containing the QR code, suitable for displaying in a + * terminal environment. Generally, you should customise on and off to use + * the ANSI escapes of your target terminal for better rendering. + * + * @param options optional configuration for the display. + */ + toString(options?: Readonly): string; + + /** + * Generate image data containing the QR code, at a scale of 1 pixel per + * module. Use this if you need more control than toCanvas allows. + * + * @param context a context to use for creating the image data. + * @param options optional configuration for the display. + */ + toImageData( + context: Context2DLike, + options?: Readonly, + ): DataT; + + /** + * Generate a `data:image/*` URL for the QR code. + * + * @param options optional configuration for the output. + * @returns a string suitable for use as the `src` of an `img` tag. + */ + toDataURL( + options?: Readonly< + ImageDataOptions & { + type?: `image/${string}`; + scale?: number; + } + >, + ): string; + + /** + * Populate a given canvas with the QR code, at a scale of 1 pixel per + * module. Set image-rendering: pixelated and scale the canvas using CSS + * for a large image. Automatically resizes the canvas to fit the QR code + * if necessary. + * + * @param canvas the canvas to populate. + * @param options optional configuration for the display. + */ + toCanvas( + canvas: CanvasLike, + options?: Readonly, + ): void; + } + + export type Mask = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7; + export type Mode = (data: Bitmap1D, version: number) => void; + export interface ModeFactory { + (value: string): Mode; + /** a function which returns true when given a character which the current mode can represent */ + test(string: string): boolean; + /** a function which returns an estimate of the number of bits required to encode a given value */ + est(value: string, version: number): number; + /** an optional ECI which must be active for this mode to be interpreted correctly by a reader */ + eci?: number; + } + + interface ModeAutoOptions { + /** a list of modes which can be considered when encoding a message */ + modes?: ReadonlyArray; + } + + export const mode: Readonly<{ + /** automatically picks the most optimal combination of modes for the requested message */ + auto(value: string, options?: Readonly): Mode; + /** concatenates multiple modes together */ + multi(...modes: ReadonlyArray): Mode; + /** sets the Extended Channel Interpretation for the message from this point onwards */ + eci(id: number): Mode; + /** supports `0-9` and stores 3 characters per 10 bits */ + numeric: ModeFactory; + /** supports `0-9A-Z $%*+-./:` and stores 2 characters per 11 bits */ + alphaNumeric: ModeFactory; + /** arbitrary byte data, typically combined with `eci` */ + bytes(data: Uint8Array | ReadonlyArray): Mode; + /** supports 7-bit ASCII and stores 1 character per 8 bits with no ECI */ + ascii: ModeFactory; + /** supports 8-bit ISO-8859-1 and stores 1 character per 8 bits with ECI 3 */ + iso8859_1: ModeFactory; + /** supports double-byte Shift-JIS characters stores 1 character per 13 bits */ + shift_jis: ModeFactory; + /** supports variable length UTF-8 with ECI 26 */ + utf8: ModeFactory; + }>; + + export type Correction = number & { readonly _: unique symbol }; + export const correction: Readonly<{ + /** minimum possible correction level (same as L) */ + min: Correction; + /** ~7.5% error tolerance, ~25% data overhead */ + L: Correction; + /** ~15% error tolerance, ~60% data overhead */ + M: Correction; + /** ~22.5% error tolerance, ~120% data overhead */ + Q: Correction; + /** ~30% error tolerance, ~190% data overhead */ + H: Correction; + /** maximum possible correction level (same as H) */ + max: Correction; + }>; + + export interface GenerateOptions extends ModeAutoOptions { + /** the minimum correction level to use (higher levels may still be used if the chosen version has space) */ + minCorrectionLevel?: Correction; + /** the maximum correction level to use */ + maxCorrectionLevel?: Correction; + /** the minimum version (size) of code to generate (must be between 1 and 40) */ + minVersion?: number; + /** the maximum version (size) of code to generate (must be between 1 and 40) */ + maxVersion?: number; + /** a mask to use on the QR code (should be left as `null` for ISO compliance but may be changed for artistic effect) */ + mask?: null | Mask; + /** padding bits to use for extra space in the QR code (should be left as the default for ISO compliance but may be changed for artistic effect) */ + trailer?: number; + } + + /** + * Generate a QR code. + * + * @param data either a string, or a pre-encoded mode. + * @param options optional configuration for the QR code. + * @returns the requested QR code. + */ + export type GenerateFn = ( + data: Mode | string, + options?: Readonly, + ) => Bitmap2D; + interface Generate extends GenerateFn { + /** + * Creates a scoped `generate` function which considers additional modes + * when using auto encoding. + * + * @param modes the modes to add. + * @returns a `generate` function which will additionally consider the + * given modes when using auto encoding. + */ + with(...modes: ReadonlyArray): GenerateFn; + } + export const generate: Generate; +} + +declare module 'lean-qr/nano' { + import type { + Correction, + Bitmap2D as FullBitmap2D, + GenerateOptions as FullGenerateOptions, + } from 'lean-qr'; + import { correction as fullCorrection } from 'lean-qr'; + + export type { Correction }; + + export const correction: Pick; + + export type Bitmap2D = Pick; + + export type GenerateOptions = Pick< + FullGenerateOptions, + 'minCorrectionLevel' | 'minVersion' + >; + + /** + * Generate a QR code. + * + * @param data either a string, or a pre-encoded mode. + * @param options optional configuration for the QR code. + * @returns the requested QR code. + */ + export function generate( + data: string, + options?: Readonly, + ): Bitmap2D; +} + +declare module 'lean-qr/extras/svg' { + import type { Bitmap2D as FullBitmap2D } from 'lean-qr'; + + type Bitmap2D = Pick; + + export interface SVGOptions { + /** the colour to use for modules which are 'on' (typically black) */ + on?: string; + /** the colour to use for modules which are 'off' (typically white) */ + off?: string; + /** the padding to apply on the left and right of the output (filled with 'off') */ + padX?: number; + /** the padding to apply on the top and bottom of the output (filled with 'off') */ + padY?: number; + /** a width to apply to the resulting image (overrides `scale`) */ + width?: number | null; + /** a height to apply to the resulting image (overrides `scale`) */ + height?: number | null; + /** a scale to apply to the resulting image (`scale` pixels = 1 module) */ + scale?: number; + } + + /** + * Generate the raw outline of the QR code for use in an existing SVG. + * + * @param code the QR code to convert. + * @returns a string suitable for passing to the `d` attribute of a `path`. + */ + export function toSvgPath(code: Bitmap2D): string; + + /** + * Generate an SVG element which can be added to the DOM. + * + * @param code the QR code to convert. + * @param options optional configuration for the display. + * @returns an SVG element. + */ + export function toSvg( + code: Bitmap2D, + target: Document | SVGElement, + options?: Readonly, + ): SVGElement; + + /** + * Generate an SVG document which can be exported to a file or served from a + * web server. + * + * @param code the QR code to convert. + * @param options optional configuration for the display. + * @returns an SVG document. + */ + export function toSvgSource( + code: Bitmap2D, + options?: Readonly< + SVGOptions & { + /** `true` to include an XML declaration at the start of the source (for standalone documents which will not be embedded inside another document) */ + xmlDeclaration?: boolean; + } + >, + ): string; + + /** + * Generate a `data:image/svg+xml` URL. + * + * @param code the QR code to convert. + * @param options optional configuration for the display. + * @returns a string suitable for use as the `src` of an `img` tag. + */ + export function toSvgDataURL( + code: Bitmap2D, + options?: Readonly, + ): string; +} + +declare module 'lean-qr/extras/node_export' { + import type { RGBA, Bitmap2D as FullBitmap2D } from 'lean-qr'; + + type Bitmap2D = Pick; + + export interface PNGOptions { + /** the colour to use for modules which are 'on' (typically black) */ + on?: RGBA; + /** the colour to use for modules which are 'off' (typically white) */ + off?: RGBA; + /** the padding to apply on the left and right of the output (filled with 'off') */ + padX?: number; + /** the padding to apply on the top and bottom of the output (filled with 'off') */ + padY?: number; + /** a scale to apply to the resulting image (`scale` pixels = 1 module) */ + scale?: number; + } + + /** + * Generate a PNG document which can be exported to a file or served from a + * web server. + * + * @param code the QR code to convert. + * @param options optional configuration for the display. + * @returns a PNG document. + */ + export function toPngBuffer( + code: Bitmap2D, + options?: Readonly, + ): Uint8Array; + + /** + * Generate a `data:image/png` URL. + * + * @param code the QR code to convert. + * @param options optional configuration for the display. + * @returns a string suitable for use as the `src` of an `img` tag. + */ + export function toPngDataURL( + code: Bitmap2D, + options?: Readonly, + ): string; +} + +declare module 'lean-qr/extras/react' { + import type { + Bitmap2D as FullBitmap2D, + GenerateOptions, + ImageDataOptions, + } from 'lean-qr'; + import type { + SVGOptions, + toSvgDataURL as toSvgDataURLFn, + } from 'lean-qr/extras/svg'; + + export interface AsyncFramework { + createElement: ( + type: 'canvas', + props: { + ref: any; + style: { imageRendering: 'pixelated' }; + className: string; + }, + ) => T; + useRef(initialValue: T | null): { readonly current: T | null }; + useEffect(fn: () => void | (() => void), deps: unknown[]): void; + } + + interface QRComponentProps { + content: string; + className?: string; + } + + export interface AsyncQRComponentProps + extends ImageDataOptions, + GenerateOptions, + QRComponentProps {} + + export type AsyncQRComponent = ( + props: Readonly, + ) => T; + + /** + * Generate an asynchronous QR component (rendering to a `canvas`). + * You should call this just once, in the global scope. + * + * This is not suitable for server-side rendering (use `makeSyncComponent` + * instead). + * + * @param framework the framework to use (e.g. `React`). + * @param generate the `generate` function to use + * (from `lean-qr` or `lean-qr/nano`). + * @param defaultProps optional default properties to apply when the + * component is used (overridden by properties set on use). + * @returns a component which can be rendered elsewhere. + */ + export function makeAsyncComponent( + framework: Readonly>, + generate: ( + data: string, + options?: Readonly, + ) => Pick, + defaultProps?: Readonly>, + ): AsyncQRComponent; + + export interface SyncFramework { + createElement: ( + type: 'img', + props: { + src: string; + style: { imageRendering: 'pixelated' }; + className: string; + }, + ) => T; + useMemo(fn: () => T, deps: unknown[]): T; + } + + export interface SyncQRComponentProps + extends SVGOptions, + GenerateOptions, + QRComponentProps {} + + export type SyncQRComponent = (props: Readonly) => T; + + /** + * Generate a synchronous QR component (rendering to an SVG). + * You should call this just once, in the global scope. + * + * This is best suited for server-side rendering (prefer + * `makeAsyncComponent` if you only need client-side rendering). + * + * @param framework the framework to use (e.g. `React`). + * @param generate the `generate` function to use + * (from `lean-qr` or `lean-qr/nano`). + * @param toSvgDataURL the `toSvgDataURL` function to use + * (from `lean-qr/extras/svg`). + * @param defaultProps optional default properties to apply when the + * component is used (overridden by properties set on use). + * @returns a component which can be rendered elsewhere. + */ + export function makeSyncComponent( + framework: Readonly>, + generate: ( + data: string, + options?: Readonly, + ) => Pick, + toSvgDataURL: typeof toSvgDataURLFn, + defaultProps?: Readonly>, + ): SyncQRComponent; +} + +declare module 'lean-qr/extras/errors' { + /** + * Convert an error into a human-readable message. This is intended for use + * with Lean QR errors, but will return somewhat meaningful messages for + * other errors too. + * + * @param error the error to convert. + * @returns a human-readable message explaining the error. + */ + export function readError(error: unknown): string; +} diff --git a/websites/bitview/packages/leeoniya-ufuzzy/1.0.19/dist/uFuzzy.d.ts b/websites/bitview/packages/leeoniya-ufuzzy/1.0.19/dist/uFuzzy.d.ts new file mode 100644 index 000000000..2dbef82e0 --- /dev/null +++ b/websites/bitview/packages/leeoniya-ufuzzy/1.0.19/dist/uFuzzy.d.ts @@ -0,0 +1,215 @@ +declare class uFuzzy { + constructor(opts?: uFuzzy.Options); + + /** search API composed of filter/info/sort, with a info/ranking threshold (1e3) and fast outOfOrder impl */ + search( + haystack: string[], + needle: string, + /** limit how many terms will be permuted, default = 0; 5 will result in up to 5! (120) search iterations. be careful with this! */ + outOfOrder?: number, + /** default = 1e3 */ + infoThresh?: number, + preFiltered?: uFuzzy.HaystackIdxs | null, + ): uFuzzy.SearchResult; + + /** initial haystack filter, can accept idxs from previous prefix/typeahead match as optimization */ + filter( + haystack: string[], + needle: string, + idxs?: uFuzzy.HaystackIdxs, + ): uFuzzy.HaystackIdxs | null; + + /** collects stats about pre-filtered matches, does additional filtering based on term boundary settings, finds highlight ranges */ + info( + idxs: uFuzzy.HaystackIdxs, + haystack: string[], + needle: string, + ): uFuzzy.Info; + + /** performs final result sorting via Array.sort(), relying on Info */ + sort( + info: uFuzzy.Info, + haystack: string[], + needle: string, + ): uFuzzy.InfoIdxOrder; + + /** utility for splitting needle into terms following defined interSplit/intraSplit opts. useful for out-of-order permutes */ + split(needle: string, keepCase?: boolean): uFuzzy.Terms; + + /** util for creating out-of-order permutations of a needle terms array */ + static permute(arr: unknown[]): unknown[][]; + + /** util for replacing common diacritics/accents */ + static latinize(strings: T): T; + + /** util for highlighting matched substr parts of a result */ + static highlight( + match: string, + ranges: number[], + + mark?: (part: string, matched: boolean) => TMarkedPart, + accum?: TAccum, + append?: (accum: TAccum, part: TMarkedPart) => TAccum | undefined, + ): TAccum; +} + +export = uFuzzy; + +declare namespace uFuzzy { + /** needle's terms */ + export type Terms = string[]; + + /** subset of idxs of a haystack array */ + export type HaystackIdxs = number[]; + + /** sorted order in which info facets should be iterated */ + export type InfoIdxOrder = number[]; + + export type AbortedResult = [null, null, null]; + + export type FilteredResult = [uFuzzy.HaystackIdxs, null, null]; + + export type RankedResult = [ + uFuzzy.HaystackIdxs, + uFuzzy.Info, + uFuzzy.InfoIdxOrder, + ]; + + export type SearchResult = FilteredResult | RankedResult | AbortedResult; + + /** partial RegExp */ + type PartialRegExp = string; + + /** what should be considered acceptable term bounds */ + export const enum BoundMode { + /** will match 'man' substr anywhere. e.g. tasmania */ + Any = 0, + /** will match 'man' at whitespace, punct, case-change, and alpha-num boundaries. e.g. mantis, SuperMan, fooManBar, 0007man */ + Loose = 1, + /** will match 'man' at whitespace, punct boundaries only. e.g. mega man, walk_man, man-made, foo.man.bar */ + Strict = 2, + } + + export const enum IntraMode { + /** allows any number of extra char insertions within a term, but all term chars must be present for a match */ + MultiInsert = 0, + /** allows for a single-char substitution, transposition, insertion, or deletion within terms (excluding first and last chars) */ + SingleError = 1, + } + + export type IntraSliceIdxs = [from: number, to: number]; + + type CompareFn = (a: string, b: string) => number; + + export interface Options { + // whether regexps use a /u unicode flag + unicode?: boolean; // false + + /** @deprecated renamed to opts.alpha */ + letters?: PartialRegExp | null; // a-z + + // regexp character class [] of chars which should be treated as letters (case insensitive) + alpha?: PartialRegExp | null; // a-z + + /** term segmentation & punct/whitespace merging */ + interSplit?: PartialRegExp; // '[^A-Za-z\\d']+' + intraSplit?: PartialRegExp | null; // '[a-z][A-Z]' + + /** inter bounds that will be used to increase lft2/rgt2 info counters */ + interBound?: PartialRegExp | null; // '[^A-Za-z\\d]' + /** intra bounds that will be used to increase lft1/rgt1 info counters */ + intraBound?: PartialRegExp | null; // '[A-Za-z][0-9]|[0-9][A-Za-z]|[a-z][A-Z]' + + /** inter-term modes, during .info() can discard matches when bounds conditions are not met */ + interLft?: BoundMode; // 0 + interRgt?: BoundMode; // 0 + + /** allowance between terms */ + interChars?: PartialRegExp; // '.' + interIns?: number; // Infinity + + /** allowance between chars within terms */ + intraChars?: PartialRegExp; // '[a-z\\d]' + intraIns?: number; // 0 + + /** contractions detection */ + intraContr?: PartialRegExp; // "'[a-z]{1,2}\\b" + + /** error tolerance mode within terms. will clamp intraIns to 1 when set to SingleError */ + intraMode?: IntraMode; // 0 + + /** which part of each term should tolerate errors (when intraMode: 1) */ + intraSlice?: IntraSliceIdxs; // [1, Infinity] + + /** max substitutions (when intraMode: 1) */ + intraSub?: 0 | 1; // 0 + /** max transpositions (when intraMode: 1) */ + intraTrn?: 0 | 1; // 0 + /** max omissions/deletions (when intraMode: 1) */ + intraDel?: 0 | 1; // 0 + + /** can dynamically adjust error tolerance rules per term in needle (when intraMode: 1) */ + intraRules?: (term: string) => { + intraSlice?: IntraSliceIdxs; + intraIns: 0 | 1; + intraSub: 0 | 1; + intraTrn: 0 | 1; + intraDel: 0 | 1; + }; + + /** post-filters matches during .info() based on cmp of term in needle vs partial match */ + intraFilt?: (term: string, match: string, index: number) => boolean; // should this also accept WIP info? + + /** default: toLocaleUpperCase() */ + toUpper?: (str: string) => string; + + /** default: toLocaleLowerCase() */ + toLower?: (str: string) => string; + + /** final sorting cmp when all other match metrics are equal */ + compare?: CompareFn; + + sort?: ( + info: Info, + haystack: string[], + needle: string, + compare?: CompareFn, + ) => InfoIdxOrder; + } + + export interface Info { + /** matched idxs from haystack */ + idx: HaystackIdxs; + + /** match offsets */ + start: number[]; + + /** number of left BoundMode.Strict term boundaries found */ + interLft2: number[]; + /** number of right BoundMode.Strict term boundaries found */ + interRgt2: number[]; + /** number of left BoundMode.Loose term boundaries found */ + interLft1: number[]; + /** number of right BoundMode.Loose term boundaries found */ + interRgt1: number[]; + + /** total number of extra chars matched within all terms. higher = matched terms have more fuzz in them */ + intraIns: number[]; + /** total number of chars found in between matched terms. higher = terms are more sparse, have more fuzz in between them */ + interIns: number[]; + + /** total number of matched contiguous chars (substrs but not necessarily full terms) */ + chars: number[]; + + /** number of exactly-matched terms (intra = 0) where both lft and rgt landed on a BoundMode.Loose or BoundMode.Strict boundary */ + terms: number[]; + + /** number of needle terms with case-sensitive partial matches */ + cases: number[]; + + /** offset ranges within match for highlighting: [startIdx0, endIdx0, startIdx1, endIdx1,...] */ + ranges: number[][]; + } +} + +export as namespace uFuzzy; diff --git a/websites/bitview/packages/lightweight-charts/5.0.8/dist/typings.d.ts b/websites/bitview/packages/lightweight-charts/5.0.8/dist/typings.d.ts new file mode 100644 index 000000000..6dee993c6 --- /dev/null +++ b/websites/bitview/packages/lightweight-charts/5.0.8/dist/typings.d.ts @@ -0,0 +1,4892 @@ +// Generated by dts-bundle-generator v9.5.1 + +type CanvasRenderingTarget2D = any; + +declare const areaSeries: SeriesDefinition<"Area">; +declare const barSeries: SeriesDefinition<"Bar">; +declare const baselineSeries: SeriesDefinition<"Baseline">; +declare const candlestickSeries: SeriesDefinition<"Candlestick">; +declare const histogramSeries: SeriesDefinition<"Histogram">; +declare const lineSeries: SeriesDefinition<"Line">; +export declare const customSeriesDefaultOptions: CustomSeriesOptions; +/** + * Enumeration representing the sign of a marker. + */ +export declare const enum MarkerSign { + /** Represents a negative change (-1) */ + Negative = -1, + /** Represents no change (0) */ + Neutral = 0, + /** Represents a positive change (1) */ + Positive = 1, +} +/** + * Represents a type of color. + */ +export declare enum ColorType { + /** Solid color */ + Solid = "solid", + /** Vertical gradient color */ + VerticalGradient = "gradient", +} +/** + * Represents the crosshair mode. + */ +export declare enum CrosshairMode { + /** + * This mode allows crosshair to move freely on the chart. + */ + Normal = 0, + /** + * This mode sticks crosshair's horizontal line to the price value of a single-value series or to the close price of OHLC-based series. + */ + Magnet = 1, + /** + * This mode disables rendering of the crosshair. + */ + Hidden = 2, + /** + * This mode sticks crosshair's horizontal line to the price value of a single-value series or to the open/high/low/close price of OHLC-based series. + */ + MagnetOHLC = 3, +} +/** + * Represents the type of the last price animation for series such as area or line. + */ +export declare enum LastPriceAnimationMode { + /** + * Animation is always disabled + */ + Disabled = 0, + /** + * Animation is always enabled. + */ + Continuous = 1, + /** + * Animation is active after new data. + */ + OnDataUpdate = 2, +} +/** + * Represents the possible line styles. + */ +export declare enum LineStyle { + /** + * A solid line. + */ + Solid = 0, + /** + * A dotted line. + */ + Dotted = 1, + /** + * A dashed line. + */ + Dashed = 2, + /** + * A dashed line with bigger dashes. + */ + LargeDashed = 3, + /** + * A dotted line with more space between dots. + */ + SparseDotted = 4, +} +/** + * Represents the possible line types. + */ +export declare enum LineType { + /** + * A line. + */ + Simple = 0, + /** + * A stepped line. + */ + WithSteps = 1, + /** + * A curved line. + */ + Curved = 2, +} +/** + * Search direction if no data found at provided index + */ +export declare enum MismatchDirection { + /** + * Search the nearest left item + */ + NearestLeft = -1, + /** + * Do not search + */ + None = 0, + /** + * Search the nearest right item + */ + NearestRight = 1, +} +/** + * Represents the source of data to be used for the horizontal price line. + */ +export declare enum PriceLineSource { + /** + * Use the last bar data. + */ + LastBar = 0, + /** + * Use the last visible data of the chart viewport. + */ + LastVisible = 1, +} +/** + * Represents the price scale mode. + */ +export declare enum PriceScaleMode { + /** + * Price scale shows prices. Price range changes linearly. + */ + Normal = 0, + /** + * Price scale shows prices. Price range changes logarithmically. + */ + Logarithmic = 1, + /** + * Price scale shows percentage values according the first visible value of the price scale. + * The first visible value is 0% in this mode. + */ + Percentage = 2, + /** + * The same as percentage mode, but the first value is moved to 100. + */ + IndexedTo100 = 3, +} +/** + * Represents the type of a tick mark on the time axis. + */ +export declare enum TickMarkType { + /** + * The start of the year (e.g. it's the first tick mark in a year). + */ + Year = 0, + /** + * The start of the month (e.g. it's the first tick mark in a month). + */ + Month = 1, + /** + * A day of the month. + */ + DayOfMonth = 2, + /** + * A time without seconds. + */ + Time = 3, + /** + * A time with seconds. + */ + TimeWithSeconds = 4, +} +/** + * Determine how to exit the tracking mode. + * + * By default, mobile users will long press to deactivate the scroll and have the ability to check values and dates. + * Another press is required to activate the scroll, be able to move left/right, zoom, etc. + */ +export declare enum TrackingModeExitMode { + /** + * Tracking Mode will be deactivated on touch end event. + */ + OnTouchEnd = 0, + /** + * Tracking Mode will be deactivated on the next tap event. + */ + OnNextTap = 1, +} +/** + * This function is the simplified main entry point of the Lightweight Charting Library with time points for the horizontal scale. + * + * @param container - ID of HTML element or element itself + * @param options - Any subset of options to be applied at start. + * @returns An interface to the created chart + */ +export declare function createChart( + container: string | HTMLElement, + options?: DeepPartial, +): IChartApi; +/** + * This function is the main entry point of the Lightweight Charting Library. If you are using time values + * for the horizontal scale then it is recommended that you rather use the {@link createChart} function. + * + * @template HorzScaleItem - type of points on the horizontal scale + * @template THorzScaleBehavior - type of horizontal axis strategy that encapsulate all the specific behaviors of the horizontal scale type + * + * @param container - ID of HTML element or element itself + * @param horzScaleBehavior - Horizontal scale behavior + * @param options - Any subset of options to be applied at start. + * @returns An interface to the created chart + */ +export declare function createChartEx< + HorzScaleItem, + THorzScaleBehavior extends IHorzScaleBehavior, +>( + container: string | HTMLElement, + horzScaleBehavior: THorzScaleBehavior, + options?: DeepPartial>, +): IChartApiBase; +/** + * Creates an image watermark. + * + * @param pane - Target pane. + * @param imageUrl - Image URL. + * @param options - Watermark options. + * + * @returns Image watermark wrapper. + * + * @example + * ```js + * import { createImageWatermark } from 'lightweight-charts'; + * + * const firstPane = chart.panes()[0]; + * const imageWatermark = createImageWatermark(firstPane, '/images/my-image.png', { + * alpha: 0.5, + * padding: 20, + * }); + * // to change options + * imageWatermark.applyOptions({ padding: 10 }); + * // to remove watermark from the pane + * imageWatermark.detach(); + * ``` + */ +export declare function createImageWatermark( + pane: IPaneApi, + imageUrl: string, + options: DeepPartial, +): IImageWatermarkPluginApi; +/** + * Creates an 'options' chart with price values on the horizontal scale. + * + * This function is used to create a specialized chart type where the horizontal scale + * represents price values instead of time. It's particularly useful for visualizing + * option chains, price distributions, or any data where price is the primary x-axis metric. + * + * @param container - The DOM element or its id where the chart will be rendered. + * @param options - Optional configuration options for the price chart. + * @returns An instance of IChartApiBase configured for price-based horizontal scaling. + */ +export declare function createOptionsChart( + container: string | HTMLElement, + options?: DeepPartial, +): IChartApiBase; +/** + * A function to create a series markers primitive. + * + * @param series - The series to which the primitive will be attached. + * + * @param markers - An array of markers to be displayed on the series. + * + * @param options - Options for the series markers plugin. + * + * @example + * ```js + * import { createSeriesMarkers } from 'lightweight-charts'; + * + * const seriesMarkers = createSeriesMarkers( + * series, + * [ + * { + * color: 'green', + * position: 'inBar', + * shape: 'arrowDown', + * time: 1556880900, + * }, + * ] + * ); + * // and then you can modify the markers + * // set it to empty array to remove all markers + * seriesMarkers.setMarkers([]); + * + * // `seriesMarkers.markers()` returns current markers + * ``` + */ +export declare function createSeriesMarkers( + series: ISeriesApi, + markers?: SeriesMarker[], + options?: DeepPartial, +): ISeriesMarkersPluginApi; +/** + * Creates an image watermark. + * + * @param pane - Target pane. + * @param options - Watermark options. + * + * @returns Image watermark wrapper. + * + * @example + * ```js + * import { createTextWatermark } from 'lightweight-charts'; + * + * const firstPane = chart.panes()[0]; + * const textWatermark = createTextWatermark(firstPane, { + * horzAlign: 'center', + * vertAlign: 'center', + * lines: [ + * { + * text: 'Hello', + * color: 'rgba(255,0,0,0.5)', + * fontSize: 100, + * fontStyle: 'bold', + * }, + * { + * text: 'This is a text watermark', + * color: 'rgba(0,0,255,0.5)', + * fontSize: 50, + * fontStyle: 'italic', + * fontFamily: 'monospace', + * }, + * ], + * }); + * // to change options + * textWatermark.applyOptions({ horzAlign: 'left' }); + * // to remove watermark from the pane + * textWatermark.detach(); + * ``` + */ +export declare function createTextWatermark( + pane: IPaneApi, + options: DeepPartial, +): ITextWatermarkPluginApi; +/** + * Creates and attaches the Series Up Down Markers Plugin. + * + * @param series - Series to which attach the Up Down Markers Plugin + * @param options - options for the Up Down Markers Plugin + * + * @returns Api for Series Up Down Marker Plugin. {@link ISeriesUpDownMarkerPluginApi} + * + * @example + * ```js + * import { createUpDownMarkers, createChart, LineSeries } from 'lightweight-charts'; + * + * const chart = createChart('container'); + * const lineSeries = chart.addSeries(LineSeries); + * const upDownMarkers = createUpDownMarkers(lineSeries, { + * positiveColor: '#22AB94', + * negativeColor: '#F7525F', + * updateVisibilityDuration: 5000, + * }); + * // to add some data + * upDownMarkers.setData( + * [ + * { time: '2020-02-02', value: 12.34 }, + * //... more line series data + * ] + * ); + * // ... Update some values + * upDownMarkers.update({ time: '2020-02-02', value: 13.54 }, true); + * // to remove plugin from the series + * upDownMarkers.detach(); + * ``` + */ +export declare function createUpDownMarkers( + series: ISeriesApi, + options?: Partial, +): ISeriesUpDownMarkerPluginApi; +/** + * Creates a yield curve chart with the specified options. + * + * A yield curve chart differs from the default chart type + * in the following ways: + * - Horizontal scale is linearly spaced, and defined in monthly + * time duration units + * - Whitespace is ignored for the crosshair and grid lines + * + * @param container - ID of HTML element or element itself + * @param options - The yield chart options. + * @returns An interface to the created chart + */ +export declare function createYieldCurveChart( + container: string | HTMLElement, + options?: DeepPartial, +): IYieldCurveChartApi; +/** + * Provides the default implementation of the horizontal scale (time-based) that can be used as a base for extending the horizontal scale with custom behavior. + * This allows for the introduction of custom functionality without re-implementing the entire {@link IHorzScaleBehavior}<{@link Time}> interface. + * + * For further details, refer to the {@link createChartEx} chart constructor method. + * + * @returns An uninitialized class implementing the {@link IHorzScaleBehavior}<{@link Time}> interface + */ +export declare function defaultHorzScaleBehavior(): new () => IHorzScaleBehavior