-support for accessing resources via a configurable CDN (probably cloudfront, backed by S3, as I plan to use for the public demo site)
-move resource integrity hashes into a single file (generated by "npm run integrity") for easier maintenance
-cleanup some startup logic
-more updated dependencies
To more clearly acknowledge that any Electrum-protocol implementation can be configured for address queries, the names of variables explicitly named "ElectrumX" have been changed to "Electrum". Backward compatibility with any clients using the old names is meant to be preserved.
- major visual refresh - new design, layout, fonts, colors, icons, etc
- new dark theme, now the default
- new app icon ("Bitcoin Map Marker")
- cleaner, simpler homepage content
- css for light/dark themes built from scss ("npm run css")
- theme-switcher button in footer, instead of checked items in header dropdown
- cleanup header links and dropdowns, and larger search box
- url change: /unconfirmed-tx -> /mempool-tx
- support for "estimated coin supply" used at startup or on slow devices when UTXO set unavailable
- display fee rate along with TX details on /mempool-tx
- copy-to-clipboard added for lots of longer strings
- major code reuse improvements with pug mixins
- simplify userSettings
- minor error handling improvements for /tx pages in prune/noTxIndex situations
- query fewer tx inputs on /address pages for performance
- exponents on /difficulty-history graph labels
- fixed colors of labels/gridlines on graphs (esp in dark theme)
- drop LTC config (no longer maintained)
- /admin/resetUserSettings
- cleanup whitespace in fonts.css and add leading "./" for url consistency
- update "integrity" attribute for fonts.css linked in layout.pug
- despite .env-sample clearly indicating that leading/trailing slash is needed, be forgiving for both (I obviously didn't read the sample carefully when testing...whoops)
- print the host/port/baseurl as part of startup logging
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)
Move closer to the original vision of supporting any address-querying implementation desired. Current options include ElectrumX (as before) and now blockchain.com and blockcypher.com since they were easy to support and are publicly/easily available (though ridiculously neither is yet to support bc1 addresses).
- new env var option BTCEXP_ADDRESS_API, value can be electrumx, blockchain.com, blockcypher.com
- update ElectrumX client connect to request v1.4 of API as all clients are now supposed to do
- misc frontend improvements/cleanup for addresses
- support for configurable RPC concurrency level (default 10, to be under bitcoind default "rpcworkqueue=16")
- queue up requests to prevent overloading RPC work queue of bitcoind
- simplify / cleanup rpcApi
- configure electrumX servers with the same mechanisms as everything else
- include _PORT and _ELECTRUMX_SERVERS configs in .env-sample
- drop support for overriding configs via app/credentials.js, and use that filename for the new, dynamic, env-based credentials config file
- updated package-lock
- include sample .env file for easy reference
- continue to support key-by-key updating from credentials.js for now
- minor code formatting
- reflect status of BTCEXP_NO_RATES in UI when applicable (hide new exchanged-currency items from display dropdown and hide exchange rate on homepage)
- rename _LOGIN to _BASIC_AUTH_PASSWORD for clarity
- tweak README to call out .env-sample