- new /block-analysis tool for summarizing data for all tx within a given block
- include subsidy and tx fees in volume displays (on homepage network summary and on block details pages)
- misc minor styling and frontend ux tweaks
- /mempool-summary - switch to be a dynamic page with loading progress bar like /mining-summary and /block-stats
- more options for block ranges on /mining-summary and /block-stats
- "unsupported" alert on /block-stats for node versions below 0.17.0
- frontend improvements for dynamic pages to better display currency values (matching non-dynamic pages)
- re-order tools lists
- miner config for block #9 (satoshi)...for fun
- clean up spacing on homepage
- fix bug where miner info wasn't showing on tx pages
- Include "Volume (24hr)" in homepage summary
- Include block output volume in blocks list (0.17.0+)
- Show "%Full" in blocks lists (with fullness icon) instead of weight with progress bar
- Hide "Date" column on homepage blocks list (Age+TTM) is plenty for the recent blocks)
- Fix to pull UTXO set after RPC connection is established
- Fix for abbreviating "month" to "mo" instead of "m" which can be confused with minutes
- Tweak width of data columns on 1200 screens to avoid some wrapping of title labels
- More consistently "smallify" display of units
- Armor on block-content template for missing blockstats values (identified issue by looking at genesis block, added manual data for that block since RPC returns error, but armor is still probably valuable)
- Tweaks to timestamps "time ago" displays in several places trying to make more consistent and user friendly
- Explicit acknowledgement of "nonstandard" output type
* New data in "Summary" on Block pages (supported for bitcoind v0.17.0+)
* Fee percentiles
* Min / Max fees
* Input / Output counts
* Outputs total value
* UTXO count change
* Min / Max tx sizes
* Start of RPC API versioning support
Changelog additions:
* Optional querying of UTXO set summary
* Note: this is disabled by default to protect slow nodes. Set 'BTCEXP_SLOW_DEVICE_MODE' to false in your `.env` file to enjoy this feature.
* More data in homepage "Network Summary":
* Fee estimates (estimatesmartfee) for 1, 6, 144, 1008 blocks
* Hashrate estimate for 1+7 days
* New item for 'Chain Rewrite Days', using 7day hashrate
* New data based on optional UTXO set summary (see note above):
* UTXO set size
* Total coins in circulation
* Market cap
* Tweaks to data in blocks lists:
* Simpler timestamp formatting for easy reading
* Include "Time-to-Mine" (TTM) for each block (with green/red highlighting for "fast"/"slow" (<5min/>15min) blocks)
* Display average fee in sat/vB
* Add total fees display
* Demote display of "block size" value to hover
* Show weight in kWu instead of Wu
* Zero-indexing for tx inputs/outputs (#173)
* Labels for transaction output types
* Configurable UI "sub-header" links
* Tweaked styling
- Also lots of frontend code cleanup (moving to more consistent pug-style class designations)
* display chain/network in header if not mainnet
* indicate active chain/network in startup log
* specify which chain/network "fun" items apply to and only show them for that chain
* don't display exchange rates for testnet/regtest
* use block interval of 150 for regtest halving
* regtest hacks: since getblockchaininfo.blocks=0 on a default regtest node despite the genesis block existing, hack in a couple of places in order to display the genesis block
* fix /peers page to not throw error with no connections
Calling getrawmempool with true is slow because the node needs to pull all tx mempool details before returning anything. This change instead calls getrawmempool with false, followed by individual requests for tx mempool entries which we submit in parallel up to the configured concurrency limit. This provides some safety against running into the RPC timeout that was previously common (when calling getrawmempool(true)) with large mempools. In addition to greater reliability in large-mempool scenarios, this change significantly improves the performance of the /unconfirmed-tx page in particular - because that page only cares about 20 tx mempool entries at a time; previously we were waiting for the node to query all mempool tx entries and throwing away the vast majority of the returned data.
Fixes#127
- pull in chart.js and add integrity attribute
- move common tx-stats code to utils
- use bootstrap progress bars for block fullness in blocks-lists (moving away from radial progress which includes too much css and can be finicky)
- clean / reorg frontend code for graphs and homepage network summary
- in tx history, request/display all inputs to get correct gain/loss values
- cross referencing for txid history from electrum
- include genesis coinbase values for genesis coinbase output address (electrum ignores the genesis coinbase TX and +50 value, but for consistency with the rest of this tool they're included)
- banner describing the electrum trust model
- ui tweaks including showing gain/loss for each address tx history item