feat: Add mempool-based fee estimation dashboard#1
Conversation
Signed-off-by: b-l-u-e <winnie.gitau282@gmail.com>
ismaelsadeeq
left a comment
There was a problem hiding this comment.
Really nice work.
High-Level Feedback
- The initial page feels redundant; the landing page should just be the live dashboard.
- The performance metrics currently on the landing page should be moved to the analytics page.
Dashboard
- The heading and text on the dashboard are also redundant.
- I also noticed tt’s challenging to differentiate between the block weight and the removed mempool transaction weight; the numbers are not easy to parse for users 3.8 KWU 3.6KWU what are they? (thinking as the user).
- The blocks height should be more than the width. Hence the blocks can remain rectangular but oriented vertically. Let’s try two blocks: the actual block weight at the bottom and the removed transactions weight at the top. When hovering over or clicking the bottom block, it should become the focus point.
- Low priority, but note: the blocks can be shown as a set of six (similar to what the fee estimator keeps). We could save that data and allow the user to view as many as they want.
- I like the inclusion of transaction size, total fees, size, and block height fields.
Analytics
- For some reason, the analytics page crashes.
Once the approach is finalized, commits should be atomic, with each individual feature separated for easier review.
|
Thank you for your feedback.. I will work on the changes suggested |
|
Thanks for the update.
-Anyway, we can spend more time on the nitty-gritty of the page later. For now, this looks good. Feel free to move on to implementing the analytics page. You also choose to integrate it the initial page with the API :) and suggest ways to make it better. |
- Merge backend-analytics into Flask app with /analytics/mempool-health endpoint - Remove dummy data from frontend, connect to signet node - Fix estimatesmartfee params and getblocktemplate for signet compatibility - Add collector block coverage and high-fee inclusion metrics - Simplify UI with dark/amber theme, display live performance metrics
|
Referencing PR#2 done by @mercie-ux : relocated the backend-analytics code into the main backend (Flask) in this PR. The new /analytics/mempool-health endpoint now lives in backend/app.py (local mode via getblockstats, optional external source), and the shared DB helpers (database.py) and collector continue to feed fee_analysis.db Fixed estimatesmartfee calls to use the correct signature and include warnings. Frontend for the performance metrics should Run the collector.py (from backend/): |
Introduced D3.js library and create four new interactive chart components: - FeeRateTimeline: real-time fee rate timeline with area chart - MempoolSizeChart: mempool size bar chart over time - FeeDistributionChart: percentile distribution visualization - BlockStatsChartD3: enhanced block statistics with dual-axis chart
UI/UX Improvements: - Consolidate stats and dashboard into unified single-page dashboard - Add logarithmic scale Y-axis for fee rate visualization - Plot 25th-75th percentile band per block height - Overlay fee estimate line spanning target block heights - Improve Y-axis tick formatting with round numbers
|
Superseded by https://github.com/ismaelsadeeq/bitcoin-core-fees/pull/4, thanks. |
Overview
This PR implements a comprehensive mempool-based fee estimation dashboard for Bitcoin Core.
Features Added
Key Components using dummy data for now
Technical Details