Releases: TH3BAT/Blockchaininfo
v1.2.7 — Fee Signal Correction & Median Insight
v1.2.7 — Fee Signal Correction & Median Insight
This release tightens the accuracy of BCI’s mempool fee metrics and adds a clearer signal for observing real fee pressure.
Fee Rate Calculation Fix
BCI previously overstated average fee rates by summing multiple mempool fee fields that represent alternative views of the same transaction, not additive values.
Average fee rate is now calculated using the transaction’s base fee only, aligning the metric with actual mempool reality. Reported fee rates may appear lower as a result, but are now correct.
New: Median Fee Rate
BCI now displays the Median Fee Rate (sats/vByte) alongside the average.
- Average reflects total blockspace pressure
- Median reflects typical user behavior
Together, they reveal fee dynamics that were previously hidden—especially when dust is filtered or size-based views are enabled.
This update improves interpretability of mempool conditions without changing how BCI samples or filters data. The result is a clearer, more honest picture of fee behavior across transaction sizes.
v1.2.6 — Mempool Size Lens
v1.2.6 — Mempool Size Lens
- Added Size Lens filter to the Mempool Distribution panel: Small / Medium / Large
- Lens composes with [D] Dust-Free mode for a more accurate “my tx reality” view
- Fee, age, and RBF stats now reflect the selected transaction size class
v1.2.2 — Release Notes
BlockchainInfo v1.2.2 — Release Notes
This release focuses on accuracy, stability, and maintainability, with improvements across miner attribution, RPC security handling, cache correctness, and internal documentation.
Miner Attribution & Network Insight
-
Wallet-first miner attribution restored
Canonical miner identity now prioritizes known wallet mappings. -
Coinbase tag parsing as a fallback signal
When wallet attribution is unavailable, sanitized coinbase tags are used as a best-effort fallback. -
Improved specificity for pooled hashpower
Supports cases where pools (e.g., OCEAN) expose upstream hashpower sources, enabling displays such as:NiceHashNiceHash (via OCEAN)
-
Table-driven miner tag classification
Replaced hardcoded conditional ladders with a centralized, maintainable tag mapping table.
RPC Security & Reliability
- Linux password store support added
Enables secure retrieval of RPC credentials via the system password store. - Graceful exit on RPC password retrieval failure
Prevents hanging or undefined startup states. - Hidden password input during prompts
Ensures sensitive input is not echoed to the terminal.
Performance & Correctness
- Reduced cache write-lock contention
Read-first comparisons minimize unnecessary write locks. - Restored single-slot cache invariants for difficulty calculations
Fixes missing difficulty direction indicators by ensuring authoritative reference blocks are always available. - Tightened block constants and clarified TXID conversion paths
UI & Visual Clarity
- Centralized accent color definitions
- Improved informational text contrast for better readability across terminals
Documentation & Maintainability
-
Added documentation for:
- Linux RPC password support
hex_decode()utility- Coinbase tag sanitization and classification helpers
-
Expanded internal docs in preparation for ongoing development beyond v1.2.2
Summary
v1.2.2 strengthens BlockchainInfo’s role as an operator-grade observer of the Bitcoin network — improving correctness without adding noise, and surfacing nuance without speculation.
This release lays a cleaner foundation for future miner identity evolution while reducing operational friction and edge-case failures.
v1.2.0 — Miner History, Consensus Hygiene, and Tor-Ready Stability
2026-01-04
This release consolidates all improvements since v1.0.0 into a single, cohesive upgrade focused on observability, correctness, and resilience under real-world conditions (including Tor/onion access).
✨ Added
Last 20 Blocks / Miners Panel
- New Last 20 Blocks / Miners view in the Blockchain section.
- Displays recent block heights alongside their associated mining pools.
- Toggleable via [L], mutually exclusive with the Hash Rate Distribution panel.
- Newest blocks shown first for fast situational awareness.
- Built on existing block history — no additional RPC calls.
This panel provides a lightweight, block-native alternative to heavier distribution views, especially useful over high-latency connections.
🔧 Improved
Consensus Hygiene & Correctness
- Replaced hard-coded block and mempool constants with consensus-derived values.
- Normalized block-range calculations using saturating arithmetic for safety and clarity.
- Corrected edge-triggered state handling to prevent unintended cache resets.
- Improved cache stability under high-latency environments (e.g. Tor).
Network & Mempool Observability
-
Centralized RPC client construction behind a single builder (proxy-ready).
-
Unified timeout and connection behavior across all RPC modules.
-
Stabilized background RPC jobs (e.g. miner detection) when accessing nodes over onion services.
-
Reduced memory usage by:
- Switching TXID storage to fixed-size
[u8; 32] - Skipping unused RPC fields via
serde::skip - Avoiding redundant deserialization paths
- Switching TXID storage to fixed-size
Visual & UX Refinements
-
Improved ASCII chart hierarchy:
- Percentage values remain crisp
- Horizontal bars dimmed to reduce noise
-
Miner names rendered with secondary emphasis for clearer pattern recognition.
-
Hash-rate panel now displays actual block window, not time-based placeholders.
-
Improved narrow-terminal support and label clarity.
🛠 Fixed
- Corrected mempool transaction lookup to deserialize full JSON-RPC responses.
- Replaced positional assumptions with block-anchored propagation slots.
- Grounded fee metrics in integer sats (floats only at render time).
- Trimmed Keychain stdout before parsing RPC passwords.
- Resolved analyzer warnings and development-time cyclic dependency issues.
📝 Notes
- Under Tor/onion RPC access, initial loads (mempool, TX-heavy views) may take longer than LAN connections.
- When using Start9 onion RPC interfaces, ensure the RPC port is explicitly included (e.g.
:8332). - The Last 20 Blocks / Miners panel fills gracefully from 1 → 20 blocks at startup.
- This release reflects a maturation of the v1.x line: fewer surprises, more signal.
🎯 Summary
v1.2.0 is not about adding noise — it’s about making decentralization visible, stable, and trustworthy.
This release strengthens the dashboard as an instrument, not just a display:
- resilient under latency
- faithful to consensus reality
- designed for plurality, not assumptions
Release v1.0.0 - Sovereign Release
🚀 BlockChainInfo v1.0.0 – Sovereign Release
BlockChainInfo reaches its first stable production milestone — a fully documented, fully hardened, real-time Bitcoin terminal dashboard built for node operators, developers, researchers, and anyone who values decentralized truth over centralized illusion.
This release is the culmination of months of engineering, refinement, and architectural polish.
Every module has been documented, every async task hardened, every UI component stabilized.
✨ Highlights of v1.0.0
🔹 Fully Documented Codebase (Hybrid Mode)
Every module — RPC, display, utils, models, run loop — now includes structured commentary and inline explanations.
No black boxes. No guesswork.
A codebase the community can read, learn from, and contribute to.
⚡ Core System Improvements
🧵 Asynchronous Runtime Engine
- Multiple high-frequency RPC polling loops
- Dynamic pacing to avoid jitter and saturation
- Shared cache layer for zero-lag UI updates
- Graceful recovery from timeouts or RPC failures
The engine is built for long-running uptime and sovereign node performance.
📊 New & Enhanced Dashboard Components
⛏ Hashrate Distribution Overlay
Toggleable miner attribution and hashrate distribution panel:
- Per-miner share breakdown
- Integrated miner address mapping
- TUI-rendered horizontal hash bars
🌫 Dust-Free Mempool Filtering
Toggle between:
- Dust-Free View: high-signal fee data
- All TX View: full raw mempool
Combined with improved mempool distribution sampling.
🖧 Client vs Version Distribution (Network Panel)
A single keypress lets you switch between:
- Client distribution (Core, Knots, Ronin, etc.)
- Version distribution (70016, 70017…)
Pure network intelligence — no noise.
🧭 Consensus Security Panel
New enhancements:
- Fork detection with chain-tip monitoring
- Stale-fork warning popup when branch length ≥ 2
- Clear, human-readable explanations for anomalies
This transforms raw chaintips into actionable insight.
💬 Improved UI & User Experience
Toggles integrated into each section
- Hashrate overlay
[H] - Dust-free mempool
[D] - Client vs Version toggle
(c→…)
Popup System
- Transaction Lookup
- Help Panel
- Consensus Warning
Graceful Shutdown
Pressing q now:
- Displays a shutdown footer
- Redraws the UI one final time
- Exits cleanly
A polished final touch.
🧩 Underlying Improvements
- Safe indexing throughout UI render calls
- No panics, no unwraps, no silent failures
- Cleaned concurrency boundaries
- Reduced redundant writes to caches
- Smarter block-change detection using DashSet
- Propagation time tracking improved and stabilized
This release is stable enough for daily use by node operators.
🗂 Project Metadata
Cargo.toml Update
- Version bumped to 1.0.0
- Finalized metadata
- Dependency set validated for production stability
Documentation
This release synchronizes all inline documentation across the codebase for long-term maintainability.
🎯 Summary
BlockChainInfo v1.0.0 is not just a version — it’s a foundation.
A sovereign-grade Bitcoin dashboard designed for clarity, performance, and community use.
This release is stable, complete, and ready for broader adoption.
Welcome to the Sovereign Release.
Release v0.6.0 - Popup Architecture & Help Panel Upgrade
🚀 BlockChainInfo v0.6.0 – Popup Architecture & Help Panel Upgrade
This release marks one of the most important steps toward v1.0.0 —
the transition from a single hard-coded popup to a scalable, enum-driven popup system, plus the addition of a fully polished Help Panel accessible everywhere in the dashboard.
This brings BlockChainInfo into a more mature, unified, and future-proof architecture.
⭐ What's New
1. Popup System Refactor (Enum-Based)
- Replaced the old
show_popup: boolwith a newPopupTypeenum. - Enables multiple popups (Tx Lookup, Help, future settings panels).
- ESC now universally closes any popup.
- Cleaner, modular, and significantly more maintainable.
Popup states now include:
NoneTxLookupHelp
(Future additions require zero refactoring.)
2. New Help Panel (? Key)
- Open Help panel using
?, the universal TUI help key. - Displays global controls, section descriptions, and app structure.
- Mirrors the Tx popup styling for a unified UI experience.
- Clean, centered, color-consistent, and version-ready.
3. Unified Popup Styling
All popups now use a consistent theme:
- Yellow border + title
- Green informational text
- Cyan for user input (Tx Lookup)
This brings the entire interface into a cohesive style, preparing for 1.0.0 polish.
4. Refined Input Handling
Tx Lookup input logic migrated cleanly to the enum system:
- Character typing gated only when popup ==
TxLookup - Paste detection logic preserved
- Backspace + Enter behavior identical and intact
- ESC resets paste state and closes popups
Zero regressions.
Perfect isolation between popups.
🛠️ Improvements
- Simplified event handling pathways
- Reduced clutter in
runapp.rs - Increased clarity in popup activation logic
- Code is now easier to extend and reason about
This release lays the final architectural groundwork for future panels like:
- Settings
- Network Node Summary
- Difficulty Epoch Info
- About / Version Info
🔮 Next Steps Toward v1.0.0
- Final pass on toggle consistency
- Light code cleanup / minor refinements
- Help panel content review
- README update
- Final polish before tagging v1.0.0
🧩 Version Bump
0.5.1 → 0.6.0
Rationale:
- Adds new features (Help panel)
- Introduces an architectural upgrade (enum popup system)
- Does not introduce breaking changes
- Significant step toward v1.0.0
🙌 Built for the community.
Powered by Bitcoin.
Release v0.5.0 - Client Distribution Engine
🚀 Release: BlockChainInfo v0.5.0
Client Distribution Engine + Unified Percent Normalization
This release introduces one of the most significant UI and architecture upgrades in BlockChainInfo so far. The Network panel is now more expressive, more accurate, and more professional — and the mempool subsystem is cleaner than ever.
🆕 New Features
1. Client Distribution View (Toggle: c)
A brand-new alternative to the Version Distribution chart.
BlockChainInfo now identifies and classifies node clients (Core, Knots, Ronin, Unknown, Other).
-
Toggle instantly using
c -
Dynamic panel title shows what pressing
cwill switch to:Version → (c→Client)Client → (c→Version)
-
Supports up to 5 client categories
-
Automatically centers rows for better readability
-
Shared styling with the rest of the TUI
🎯 2. Unified Percent Normalization Engine
Percentages throughout the dashboard (Client Distribution, Mempool, RBF, Age buckets) now use a single shared function:
utils::normalize_percentages()
Benefits:
- All categories add up to exactly 100%
- No more 99/101% drifts
- Eliminates older hard-wired 3-bucket rounding
- Works with any number of buckets (N-bucket algorithm)
- Used across both Mempool and Network subsystems
🔧 3. Mempool Refactor
The old calculate_rounded_percentages() was replaced everywhere with the new generalized normalization engine.
This makes the mempool panel:
- cleaner
- more consistent
- easier to maintain
- mathematically precise
💄 4. UI/UX Improvements
- Client Distribution rows now include a top spacer to visually center results
- Bars scale cleanly using integer math derived from normalized percentages
- Network panel title now includes toggle hints
- Improved symmetry between Network, Mempool, and other panels
🛠 Internal Improvements
- Better client parsing (Core, Knots, Ronin, Unknown, Other)
- Safer subver extraction logic
- Cleaner zipping of values + percentages during rendering
- Codebase prepared for future Help Panel integration
📡 Stability
BlockChainInfo v0.5.0 has been tested under:
- live node data
- steady-state polling
- repeated toggling across panels
- mempool volatility
- multiple Network configurations
Everything runs stable, smooth, and without regressions.
🛣 Path to v1.0.0
This release lays critical groundwork for:
- Help Panel (
h) - Enhanced keybinding discoverability
- New toggle-driven views
- Final UI polish
- Documentation improvements
The next versions will build toward a polished v1.0.0 experience.
🏁 Upgrade Notes
Just pull the latest release tag and run:
cargo build --release
No configuration changes required.
Node connections, version detection, and mempool sampling all remain compatible with previous versions.
Release v0.4.1 — Silent Log Stability Update
This release removes noisy “getmempoolentry not found” output and keeps the
error_log.txt focused only on real RPC issues such as timeouts or connection
failures. Dust churn and normal mempool turnover no longer generate log entries,
resulting in a clean, stable, low-noise error pipeline.
✔ Eliminated expected churn errors from log file
✔ Ensured TUI remains silent during normal operation
✔ Error log now grows only when true RPC issues occur
✔ Cleaner long-term stability for both ALL-TX and Dust-Free modes
Release Notes — v0.4.0
🚀 Release v0.4.0 — The Sovereign Mempool Toggle
This release introduces the long-awaited real-time Dust-Free toggle (D).
Node runners can now dynamically switch between:
• DUST-FREE (only >= threshold txs)
• ALL TX (full mempool view)
…with instant updates across:
- Mempool distribution analytics
- Fee distribution metrics
- TUI display
- Cache filtering logic
The entire toggle pipeline was redesigned using Arc to ensure
async-safe behavior across UI + background tasks without stale or frozen flags.
UI now displays the current mode directly in the [Mempool] border:
[Mempool] [D] DUST-FREE
[Mempool] [D] ALL TX
TX_CACHE logic was refactored to prevent data poisoning when switching modes,
ensuring stable and accurate mempool state at all times.
This feature completes the core interactive architecture and positions
BlockChainInfo on a clear path toward the upcoming v1.0.0 release.
Release notes — v0.3.4
✅ Release notes — v0.3.4
v0.3.4 — Difficulty Epoch Fix + Dependency Updates
Fixes
- Corrected difficulty estimate visibility logic.
- App now properly shows N/A during the first 5 blocks of a new difficulty epoch.
- Replaced unreliable confirmations < 6 check with accurate epoch-based math.
- Behavior is now fully stable at each retarget boundary.
Improvements
- Cleaned up comments and internal logic for readability and future maintenance.
Dependency Updates
- tokio → 1.48.0
- reqwest → 0.12.24
- serde_json → 1.0.228
- chrono → 0.4.42
- regex → 1.12.2
- toml → 0.9.8