Skip to content
This release introduces many cool new features:

* All-new mining dashboard with 7 new mining graphs
* Added "bitfeed style" mempool block visualization
* Improved blocks page that identifies mining pools
* Improved fee suggestions with a "no priority" rate
* And much more!

Out of the ~3400 commits in our git repo, ~1300 were made since v2.3.
Lots of work went into v2.4, and all users are encouraged to upgrade to enjoy this new functionality.

If you are upgrading from v2.3 or earlier and you want to migrate your historical mempool statistics database, you will need to do a special update procedure **if your server's timezone was NOT set to UTC**. How to migrate:

1) Backup your MySQL database.
2) Terminate the mempool backend process.
3) Run the following query to check your mysql connection timezone: `SELECT @@global.time_zone, @@session.time_zone;`
4) If you get SYSTEM, check your system timezone with the `date` command.
5) Perform the SQL query with your negative GMT offset: `UPDATE statistics SET added=DATE_ADD(added, INTERVAL -2 HOUR);` (For example, if your timezone is set to CEST (UTC+2), you need to shift all your statistics entries negative 2 hours.)
6) Proceed with upgrading mempool as usual.

* Insert zeroed statistics in the database if the mempool is empty by @nymkappa in https://github.com/mempool/mempool/pull/1151
* Only apply vbytes/sec cap on Bitcoin mainnet - Fix linter issues by @nymkappa in https://github.com/mempool/mempool/pull/1154
* Move difficulty adjustment code to separate module by @nymkappa in https://github.com/mempool/mempool/pull/1152
* dont use hardcoded genesis coinbase and block hash by @antonilol in https://github.com/mempool/mempool/pull/1158
* Display Liquid asset icons by @softsimon in https://github.com/mempool/mempool/pull/1167
* Liquid asset loading fixes by @softsimon in https://github.com/mempool/mempool/pull/1170
* Fix Liquid proxy settings by @knorrium in https://github.com/mempool/mempool/pull/1171
* Asset name overflow fix by @softsimon in https://github.com/mempool/mempool/pull/1172
* Update Liquid tests by @knorrium in https://github.com/mempool/mempool/pull/1176
* Update Cypress to v9.3.1 by @knorrium in https://github.com/mempool/mempool/pull/1175
* Update e2e tests: new scenarios for Liquid, Bisq and refactor button by @knorrium in https://github.com/mempool/mempool/pull/1178
* Fix broken link on the Bisq transaction page by @knorrium in https://github.com/mempool/mempool/pull/1177
* Cleanup master-page template by @nymkappa in https://github.com/mempool/mempool/pull/1183
* Wrap statistics db ops with try/catch by @nymkappa in https://github.com/mempool/mempool/pull/1182
* Mining dashboard (1/2) - Import mining pools into the database by @nymkappa in https://github.com/mempool/mempool/pull/1163
* Remove useless autocommit=0 in db migration script by @nymkappa in https://github.com/mempool/mempool/pull/1187
* Fixing Liquid asset precision by @softsimon in https://github.com/mempool/mempool/pull/1173
* Change Citadel link to core by @AaronDewes in https://github.com/mempool/mempool/pull/1194
* Mining dashboard (2/2) - Dashboard PoC by @nymkappa in https://github.com/mempool/mempool/pull/1162
* Increase nginx send_timeout and keepalive_requests by @wiz in https://github.com/mempool/mempool/pull/1193
* Enable nginx warm cache for mining pools API data by @wiz in https://github.com/mempool/mempool/pull/1198
* Let backend set its own HTTP cache time headers for APIs by @wiz in https://github.com/mempool/mempool/pull/1199
* Replaced /mining/pools?interval=X by /mining/pools/X by @nymkappa in https://github.com/mempool/mempool/pull/1208
* Set proper mining pool page title - Rename "Name" to "Pool" by @nymkappa in https://github.com/mempool/mempool/pull/1207
* outputs of genesis coinbase are always unspent by @antonilol in https://github.com/mempool/mempool/pull/1160
* Proxy all /api and /api/v1 requests to local nodejs server by @softsimon in https://github.com/mempool/mempool/pull/1215
* Wrap custom blocks fields into a sub object of IEsplora.Blocks by @nymkappa in https://github.com/mempool/mempool/pull/1212
* Adding a "mixed" dev proxy by @softsimon in https://github.com/mempool/mempool/pull/1219
* Local dev proxy working with all base modules by @softsimon in https://github.com/mempool/mempool/pull/1218
* Fetch conversion rates over Tor by @knorrium in https://github.com/mempool/mempool/pull/1213
* Run tests in Staging by @knorrium in https://github.com/mempool/mempool/pull/1228
* Featured assets and asset groups by @softsimon in https://github.com/mempool/mempool/pull/1224
* Add EXTERNAL_ASSETS defaults to the Docker start script README by @knorrium in https://github.com/mempool/mempool/pull/1225
* Disable featured assets test for testnet by @softsimon in https://github.com/mempool/mempool/pull/1230
* add log priority option for stdout log by @antonilol in https://github.com/mempool/mempool/pull/1180
* Cypress improvements by @knorrium in https://github.com/mempool/mempool/pull/1234
* sync-assets: Download pool logos from github by @nymkappa in https://github.com/mempool/mempool/pull/1233
* Remove debug return which break the UX the first time we open by @nymkappa in https://github.com/mempool/mempool/pull/1232
* Allow TV view time span switch through url fragment by @nymkappa in https://github.com/mempool/mempool/pull/1192
* Duplicated db blocks insertion attempts are expected by @nymkappa in https://github.com/mempool/mempool/pull/1220
* Consider we're synced with the mempool if we cached 99% by @nymkappa in https://github.com/mempool/mempool/pull/1240
* Refactor docs by @hunicus in https://github.com/mempool/mempool/pull/1239
* Added /api/v1/blocks-extras endpoint by @nymkappa in https://github.com/mempool/mempool/pull/1235
* implement /api/mempool for home users (romanz/electrs backend) by @antonilol in https://github.com/mempool/mempool/pull/1248
* Don't wait for 100% mempool sync before starting block indexing by @nymkappa in https://github.com/mempool/mempool/pull/1243
* Remove duplicated tests by @nymkappa in https://github.com/mempool/mempool/pull/1252
* Provide a way to completely disable block indexing and mining menu by @nymkappa in https://github.com/mempool/mempool/pull/1250
* Created mining pool stats page by @nymkappa in https://github.com/mempool/mempool/pull/1242
* Index more block data by @nymkappa in https://github.com/mempool/mempool/pull/1253
* Create difficulty chart component by @nymkappa in https://github.com/mempool/mempool/pull/1255
* Change pool ranking pie chart colors by @nymkappa in https://github.com/mempool/mempool/pull/1257
* Create mining dashboard page by @nymkappa in https://github.com/mempool/mempool/pull/1254
* When blocks need re-indexing, truncate the table by @nymkappa in https://github.com/mempool/mempool/pull/1258
* Update docker default min loglevel to info by @knorrium in https://github.com/mempool/mempool/pull/1261
* Show miner tag under blocks in the mining dashboard by @nymkappa in https://github.com/mempool/mempool/pull/1259
* Display top featured assets on Liquid dashboard by @softsimon in https://github.com/mempool/mempool/pull/1245
* detect lightning htlc and unilateral close + fix multisig badge by @antonilol in https://github.com/mempool/mempool/pull/1223
* Created hashrate chart component by @nymkappa in https://github.com/mempool/mempool/pull/1269
* Tweak new charts design by @nymkappa in https://github.com/mempool/mempool/pull/1272
* Show block reward in the mining dashboard by @nymkappa in https://github.com/mempool/mempool/pull/1274
* Display asset circulating amount more nicely fixing overflow by @softsimon in https://github.com/mempool/mempool/pull/1273
* Merge hashrate and difficulty components, cleanup mining design by @nymkappa in https://github.com/mempool/mempool/pull/1275
* Remove block subsidy from mempool blocks by @nymkappa in https://github.com/mempool/mempool/pull/1277
* Handle missing asset registry assets by @softsimon in https://github.com/mempool/mempool/pull/1278
* Add proxy support for Liquid Testnet by @softsimon in https://github.com/mempool/mempool/pull/1279
* Show tx value sum if complete unblinding data is provided by @softsimon in https://github.com/mempool/mempool/pull/1280
* Fixed incoming transactions bar on the status page by @softsimon in https://github.com/mempool/mempool/pull/1281
* Fix status page regex by @knorrium in https://github.com/mempool/mempool/pull/1282
* Update Cypress to v9.5.0 by @knorrium in https://github.com/mempool/mempool/pull/1283
* Upgrade frontend deps: Angular 13.2, echarts 5.3, fortawesome by @softsimon in https://github.com/mempool/mempool/pull/1284
* Create pools hashrate dominance chart by @nymkappa in https://github.com/mempool/mempool/pull/1285
* Merge pool share and dominance into one widget by @nymkappa in https://github.com/mempool/mempool/pull/1288
* Only reset hashrate state flag after database migration - Fix weekly … by @nymkappa in https://github.com/mempool/mempool/pull/1297
* Make sure to reset hashrates indexing flags upon error by @nymkappa in https://github.com/mempool/mempool/pull/1298
* Pause block indexing chunk upon error and retry later by @nymkappa in https://github.com/mempool/mempool/pull/1300
* Only return unique address prefix autocomplete by @softsimon in https://github.com/mempool/mempool/pull/1291
* Shorten address search with middle ellipsis by @softsimon in https://github.com/mempool/mempool/pull/1293
* fix 0 sat/vB not displaying by @antonilol in https://github.com/mempool/mempool/pull/1185
* Fix hashrate indexing backend logic by @nymkappa in https://github.com/mempool/mempool/pull/1302
* Mining dashboard polishing by @nymkappa in https://github.com/mempool/mempool/pull/1303
* UTXO spent tracking by @softsimon in https://github.com/mempool/mempool/pull/1305
* Handle missing asset registry for inputs by @softsimon in https://github.com/mempool/mempool/pull/1306
* Truncate hashrates table only for bitcoin (db migration v9) by @nymkappa in https://github.com/mempool/mempool/pull/1308
* Bugfix/auto refresh reward stats by @nymkappa in https://github.com/mempool/mempool/pull/1310
* UTXO spent tracking refactor by @softsimon in https://github.com/mempool/mempool/pull/1314
* Add skeleton in the mining dashboard page by @nymkappa in https://github.com/mempool/mempool/pull/1315
* Fix broken navigation when clicking on pie chart by @nymkappa in https://github.com/mempool/mempool/pull/1313
* Shorten reward stats by @nymkappa in https://github.com/mempool/mempool/pull/1312
* Replace difficulty adjustment timestamp with block height by @nymkappa in https://github.com/mempool/mempool/pull/1311
* Added new Zeus logo by @Bosch-0 in https://github.com/mempool/mempool/pull/1316
* Index blocks.blockTimestamp for faster hashrates indexing by @nymkappa in https://github.com/mempool/mempool/pull/1319
* Replace by fee storage by @softsimon in https://github.com/mempool/mempool/pull/1318
* Added pool hashrate chart by @nymkappa in https://github.com/mempool/mempool/pull/1317
* Fix skeleton for difficulty adjustment table by @nymkappa in https://github.com/mempool/mempool/pull/1324
* Show `+` sign on positive diff adjust by @nymkappa in https://github.com/mempool/mempool/pull/1325
* Display unknown for non standard output types by @softsimon in https://github.com/mempool/mempool/pull/1323
* Increment db version to 10 by @nymkappa in https://github.com/mempool/mempool/pull/1329
* improve testnet block time estimations by @antonilol in https://github.com/mempool/mempool/pull/1328
* Index weekly hashrates using last Monday midnight - Fix charts by @nymkappa in https://github.com/mempool/mempool/pull/1333
* Fix pool detail page on Firefox by @nymkappa in https://github.com/mempool/mempool/pull/1326
* Always show scrolbar to avoid horizontal jumpy UI by @nymkappa in https://github.com/mempool/mempool/pull/1327
* Show current indexing progress in charts without data by @nymkappa in https://github.com/mempool/mempool/pull/1331
* Index more data using getblockstats core RPC by @nymkappa in https://github.com/mempool/mempool/pull/1330
* regtest fixes by @antonilol in https://github.com/mempool/mempool/pull/1320
* Add new production installation script and related files by @wiz in https://github.com/mempool/mempool/pull/1321
* Revert "Always show scrolbar to avoid horizontal jumpy UI" by @softsimon in https://github.com/mempool/mempool/pull/1337
* Make blocks.fees larger data type by @nymkappa in https://github.com/mempool/mempool/pull/1338
* Add production frontend configurations by @wiz in https://github.com/mempool/mempool/pull/1344
* Install production backend/frontend configurations from master by @wiz in https://github.com/mempool/mempool/pull/1345
* Remove old install script, merge remaining stuff into upgrade script by @wiz in https://github.com/mempool/mempool/pull/1346
* Set git to always rebase from install script by @wiz in https://github.com/mempool/mempool/pull/1349
* Create symlinks for mempool scripts in installation script by @wiz in https://github.com/mempool/mempool/pull/1350
* Add mariadb-server and mysql db creation to install script by @wiz in https://github.com/mempool/mempool/pull/1347
* Fix database migration/typing issues by @nymkappa in https://github.com/mempool/mempool/pull/1340
* Fix empty diff adjust table by @nymkappa in https://github.com/mempool/mempool/pull/1336
* Create new /mining/blocks page by @nymkappa in https://github.com/mempool/mempool/pull/1335
* Fix font size in reward stat widget by @nymkappa in https://github.com/mempool/mempool/pull/1353
* Reorganizing community integrations by @softsimon in https://github.com/mempool/mempool/pull/1357
* Fix duplicate hashrate data points in "difficulty vs hashrate" chart by @nymkappa in https://github.com/mempool/mempool/pull/1351
* Add support for MySQL connections over UNIX sockets by @dsbaars in https://github.com/mempool/mempool/pull/1360
* Increase default INDEXING_BLOCKS_AMOUNT by 10x to 11000 blocks by @wiz in https://github.com/mempool/mempool/pull/1358
* Address page highlight and transfer value by @softsimon in https://github.com/mempool/mempool/pull/1304
* Fix docs navigation on desktop by @hunicus in https://github.com/mempool/mempool/pull/1342
* Difficulty adjustment refactor by @softsimon in https://github.com/mempool/mempool/pull/1352
* Move all charts into /graphs page by @nymkappa in https://github.com/mempool/mempool/pull/1309
* Updated websocket mock data with difficulty adjustment by @softsimon in https://github.com/mempool/mempool/pull/1364
* Remove duplicate websocket push. by @softsimon in https://github.com/mempool/mempool/pull/1363
* Make the hashrate/difficulty widget simpler by @nymkappa in https://github.com/mempool/mempool/pull/1362
* Capitalize js package labels in docs by @hunicus in https://github.com/mempool/mempool/pull/1361
* Fix typo in hashrate widget by @nymkappa in https://github.com/mempool/mempool/pull/1366
* Fix docs navigation on mobile by @hunicus in https://github.com/mempool/mempool/pull/1354
* Merge node-bitcoin into the project by @softsimon in https://github.com/mempool/mempool/pull/1370
* Address value did not calculate self transfers by @softsimon in https://github.com/mempool/mempool/pull/1371
* Optimize RPC calls by @nymkappa in https://github.com/mempool/mempool/pull/1374
* Index asciiScriptSig and display it in /mining/blocks by @nymkappa in https://github.com/mempool/mempool/pull/1375
* Hide tabs in /graphs page is mining not available by @nymkappa in https://github.com/mempool/mempool/pull/1379
* Force disable mining dashboard if base_module not mempool by @nymkappa in https://github.com/mempool/mempool/pull/1380
* Updated blocks list in pool details page by @nymkappa in https://github.com/mempool/mempool/pull/1381
* Apply coinbase style to blocks list tooltip by @nymkappa in https://github.com/mempool/mempool/pull/1382
* Fix pagination on /mining/blocks by @nymkappa in https://github.com/mempool/mempool/pull/1376
* Fix javascript crash when disable hashrate/difficulty chart line by @nymkappa in https://github.com/mempool/mempool/pull/1383
* fix and improve block time predictions by @antonilol in https://github.com/mempool/mempool/pull/1373
* Use our forked repo of mining pool data by @nymkappa in https://github.com/mempool/mempool/pull/1390
* Show pools in main dashboard in mining dashboard is enabled by @nymkappa in https://github.com/mempool/mempool/pull/1398
* Don't navigate to root when sub network url is wrong. by @softsimon in https://github.com/mempool/mempool/pull/1400
* Configure syslog for keybase alerts from install script by @wiz in https://github.com/mempool/mempool/pull/1410
* Set build script to notify new location based Keybase channels by @wiz in https://github.com/mempool/mempool/pull/1411
* Install mempool crontab from install script by @wiz in https://github.com/mempool/mempool/pull/1412
* Create zfs filesystem for /backup and chown to mempool by @wiz in https://github.com/mempool/mempool/pull/1413
* Subscribe to blocks and mempool updates in the mining dashboard by @softsimon in https://github.com/mempool/mempool/pull/1415
* Update Cypress to v9.5.2 by @knorrium in https://github.com/mempool/mempool/pull/1418
* Address highlighting tests by @knorrium in https://github.com/mempool/mempool/pull/1417
* Enable full block indexing on all Bitcoin networks by @wiz in https://github.com/mempool/mempool/pull/1416
* Fix path in mempool crontab for daily backup script by @wiz in https://github.com/mempool/mempool/pull/1419
* Add minfee node setup to production install script by @wiz in https://github.com/mempool/mempool/pull/1420
* Use 10 minutes avg block time for halving calculation by @nymkappa in https://github.com/mempool/mempool/pull/1422
* Disable cluster mode in prod bisq backend config by @wiz in https://github.com/mempool/mempool/pull/1425
* If we have incomplete data for the day/week, don't index hashrate by @nymkappa in https://github.com/mempool/mempool/pull/1423
* Don't show coinbase tooltip on mining dashboard by @nymkappa in https://github.com/mempool/mempool/pull/1431
* Format Transaction vBytes per second (vB/s) tooltip value by @nymkappa in https://github.com/mempool/mempool/pull/1429
* Improve skeleton on pool detail page by @nymkappa in https://github.com/mempool/mempool/pull/1430
* More dynamic mining reward  by @nymkappa in https://github.com/mempool/mempool/pull/1427
* Set weekly hashrates timestamp to midnight by @nymkappa in https://github.com/mempool/mempool/pull/1424
* Fix git commit error by @knorrium in https://github.com/mempool/mempool/pull/1434
* Last hashrate indexing check needs to be in milliseconds by @softsimon in https://github.com/mempool/mempool/pull/1435
* Truncate hashrates after #1435 - Fix hashrate indexing logs by @nymkappa in https://github.com/mempool/mempool/pull/1437
* Added slug into `pools` table by @nymkappa in https://github.com/mempool/mempool/pull/1446
* Fix rounding issue in reward stats by @nymkappa in https://github.com/mempool/mempool/pull/1445
* Fix blocks list mobile layout by @nymkappa in https://github.com/mempool/mempool/pull/1428
* Remove unnecessary echart init option by @nymkappa in https://github.com/mempool/mempool/pull/1449
* Use relative pipe for pie chart click event by @nymkappa in https://github.com/mempool/mempool/pull/1450
* If pool slug does not exist, generate one on the fly, avoid crash by @nymkappa in https://github.com/mempool/mempool/pull/1451
* Disable glitchy angular tooltips animation by @nymkappa in https://github.com/mempool/mempool/pull/1458
* Use mining pool slug in urls by @nymkappa in https://github.com/mempool/mempool/pull/1456
* Use slug instead of id in mining blocks list component by @nymkappa in https://github.com/mempool/mempool/pull/1467
* Fix query to insert unknown mining pool by @nymkappa in https://github.com/mempool/mempool/pull/1470
* Use mining pool slug in block component by @nymkappa in https://github.com/mempool/mempool/pull/1468
* Pool addresses collapse - Cleanup mobile layout by @nymkappa in https://github.com/mempool/mempool/pull/1457
* Add data zoom on pool hashrate chart by @nymkappa in https://github.com/mempool/mempool/pull/1472
* Use slugs in cache warmer by @nymkappa in https://github.com/mempool/mempool/pull/1474
* Show block reward on blockchain blocks for all Bitcoin networks by @nymkappa in https://github.com/mempool/mempool/pull/1484
* Fix spam call to `/api/v1/mining/pool/{slug}` by @nymkappa in https://github.com/mempool/mempool/pull/1489
* Update pool detail page label - Fix no data text by @nymkappa in https://github.com/mempool/mempool/pull/1485
* Add missing mining API endpoint to cache warmer by @nymkappa in https://github.com/mempool/mempool/pull/1483
* Enable nginx warm cache for all /api/v1/mining API endpoints by @wiz in https://github.com/mempool/mempool/pull/1475
* Don't use `slugs` if it's not available in pools.json frontend by @nymkappa in https://github.com/mempool/mempool/pull/1490
* Apply smooth scrolling to docs only by @hunicus in https://github.com/mempool/mempool/pull/1491
* Subscribe to websocket blocks update for all graphs components by @nymkappa in https://github.com/mempool/mempool/pull/1493
* Remove unused `/api/v1/mining/difficulty/{interval}` endpoint by @nymkappa in https://github.com/mempool/mempool/pull/1482
* Fix some mobile UI issues on mining dashboard by @nymkappa in https://github.com/mempool/mempool/pull/1401
* Detect more lightning scripts by @antonilol in https://github.com/mempool/mempool/pull/1464
* Mining stats does not depend on the websocket blocks number by @nymkappa in https://github.com/mempool/mempool/pull/1496
* Return empty pool addresses on testnet and signet by @nymkappa in https://github.com/mempool/mempool/pull/1488
* Correcting wrong or missing op_codes display by @softsimon in https://github.com/mempool/mempool/pull/1500
* Correcting op_code coloring by @softsimon in https://github.com/mempool/mempool/pull/1501
* Avoid parralel hashrate indexing when initial query is too slow by @nymkappa in https://github.com/mempool/mempool/pull/1498
* Send 404 when accessing non existing mining pool by @nymkappa in https://github.com/mempool/mempool/pull/1487
* Rounding bitcoin api satoshis by @softsimon in https://github.com/mempool/mempool/pull/1486
* Update AS142052 link by @nymkappa in https://github.com/mempool/mempool/pull/1504
* Updated pool summary page to display more info on hashrate/blocks by @nymkappa in https://github.com/mempool/mempool/pull/1503
* If mining dashboard is enabled, set block miner to "Unknown" by @nymkappa in https://github.com/mempool/mempool/pull/1492
* Npm run start broke by @softsimon in https://github.com/mempool/mempool/pull/1510
* Use github api to fetch and update the pools database, once a week by @nymkappa in https://github.com/mempool/mempool/pull/1511
* fix RTL layout issues by @TechMiX in https://github.com/mempool/mempool/pull/1506
* Fix Lightning HTLC detection with options_anchors by @antonilol in https://github.com/mempool/mempool/pull/1514
* [Indexing] - Support 10 blocks depth reorgs by @nymkappa in https://github.com/mempool/mempool/pull/1369
* Add block fees graph by @nymkappa in https://github.com/mempool/mempool/pull/1512
* Add block rewards graph by @nymkappa in https://github.com/mempool/mempool/pull/1513
* Set zlevel for all graphs series by @nymkappa in https://github.com/mempool/mempool/pull/1495
* fix wrong display of other sighash types + p2sh redeemScript by @antonilol in https://github.com/mempool/mempool/pull/1502
* Add faq by @hunicus in https://github.com/mempool/mempool/pull/1473
* Cleanup mining related backend logs by @nymkappa in https://github.com/mempool/mempool/pull/1519
* Fix log rotation configuration for mempool backend logs by @wiz in https://github.com/mempool/mempool/pull/1499
* Refactor database pool use by @nymkappa in https://github.com/mempool/mempool/pull/1517
* Sponsor page revamped by @softsimon in https://github.com/mempool/mempool/pull/1505
* Create dependabot.yml by @naveensrinivasan in https://github.com/mempool/mempool/pull/1339
* Breaking out strtotime from locutus lib by @softsimon in https://github.com/mempool/mempool/pull/1518
* Pin actions by SHA and set permissions for workflow by @naveensrinivasan in https://github.com/mempool/mempool/pull/1341
* Allow syncing external backend assets using Tor by @knorrium in https://github.com/mempool/mempool/pull/1433
* Add try/catch liquid icon loading by @nymkappa in https://github.com/mempool/mempool/pull/1546
* Add mercury wallet in the about page by @nymkappa in https://github.com/mempool/mempool/pull/1555
* Wait for external assets file writers to complete by @nymkappa in https://github.com/mempool/mempool/pull/1558
* Add block fee rates percentiles chart by @nymkappa in https://github.com/mempool/mempool/pull/1521
* Use block count instead of oldest block for timespan selection by @nymkappa in https://github.com/mempool/mempool/pull/1548
* Update blocks list skeleton by @nymkappa in https://github.com/mempool/mempool/pull/1553
* Validate block hash chain after indexing and for new blocks by @nymkappa in https://github.com/mempool/mempool/pull/1554
* Remove loading indicator for blocks-extras API by @nymkappa in https://github.com/mempool/mempool/pull/1563
* Ignore case on coinbase tag regexes by @nymkappa in https://github.com/mempool/mempool/pull/1564
* Read bisq dump blocks line by line and parse manually by @nymkappa in https://github.com/mempool/mempool/pull/1569
* Update docker faq by @hunicus in https://github.com/mempool/mempool/pull/1571
* Clean local block cache before loading dump by @nymkappa in https://github.com/mempool/mempool/pull/1579
* Fix reward stats skeleton titles by @nymkappa in https://github.com/mempool/mempool/pull/1580
* Show current network hashrate and difficulty using core RPC by @nymkappa in https://github.com/mempool/mempool/pull/1592
* Revise main readme and docker install docs by @hunicus in https://github.com/mempool/mempool/pull/1599
* Add screenshot for 2.4.0 to readme by @hunicus in https://github.com/mempool/mempool/pull/1600
* Fix datababse typo by @knorrium in https://github.com/mempool/mempool/pull/1587
* Moving Docs and Faq to separate lazy loaded module by @softsimon in https://github.com/mempool/mempool/pull/1568
* Upgrading npm packages and by @softsimon in https://github.com/mempool/mempool/pull/1584
* Update pools table before fetching the first blocks by @nymkappa in https://github.com/mempool/mempool/pull/1565
* Change faq docker link since docker docs moved by @hunicus in https://github.com/mempool/mempool/pull/1610
* Add back overwritten sentence to main readme by @hunicus in https://github.com/mempool/mempool/pull/1609
* Run hashrate indexing after midnight by @nymkappa in https://github.com/mempool/mempool/pull/1590
* fix lightning force close label with CSV delay <= 16 by @antonilol in https://github.com/mempool/mempool/pull/1598
* Bump crypto-js from 4.0.0 to 4.1.1 in /backend by @dependabot in https://github.com/mempool/mempool/pull/1538
* Bump typescript from 4.4.4 to 4.6.4 in /backend by @dependabot in https://github.com/mempool/mempool/pull/1585
* Bump ws from 8.3.0 to 8.6.0 in /backend by @dependabot in https://github.com/mempool/mempool/pull/1593
* Bump express from 4.17.1 to 4.18.1 in /backend by @dependabot in https://github.com/mempool/mempool/pull/1594
* Refine production deployment doc by @hunicus in https://github.com/mempool/mempool/pull/1611
* Remove $ from commands in repo docs by @hunicus in https://github.com/mempool/mempool/pull/1618
* Add faq on address lookups by @hunicus in https://github.com/mempool/mempool/pull/1617
* Add graph download feature by @nymkappa in https://github.com/mempool/mempool/pull/1601
* Create indexing progress sticky notification by @nymkappa in https://github.com/mempool/mempool/pull/1596
* detect received lighting HTLC outputs by @antonilol in https://github.com/mempool/mempool/pull/1561
* Add block sizes vs weights graph by @nymkappa in https://github.com/mempool/mempool/pull/1597
* Update issue templates by @hunicus in https://github.com/mempool/mempool/pull/1630
* Fix the socks5 connection after updating the socks lib by @knorrium in https://github.com/mempool/mempool/pull/1633
* Modify minfee node bitcoin.conf to connect to external peers by @wiz in https://github.com/mempool/mempool/pull/1636
* Fix ELECTRUM_TLS_ENABLED Docker variable by @knorrium in https://github.com/mempool/mempool/pull/1640
* Added some missing alt tags on some img by @nymkappa in https://github.com/mempool/mempool/pull/1644
* Skip missing blocks during block hash chain validation by @nymkappa in https://github.com/mempool/mempool/pull/1591
* Update block API by @nymkappa in https://github.com/mempool/mempool/pull/1556
* Add simple faq on full mempool by @hunicus in https://github.com/mempool/mempool/pull/1639
* Update the recommended node version to v16.15.0 (LTS) by @knorrium in https://github.com/mempool/mempool/pull/1625
* Polish dashboards second widgets line by @nymkappa in https://github.com/mempool/mempool/pull/1629
* Delete useless log by @nymkappa in https://github.com/mempool/mempool/pull/1662
* Correcting and harmonizing i18n strings by @softsimon in https://github.com/mempool/mempool/pull/1627
* Minor i18n corrections by @softsimon in https://github.com/mempool/mempool/pull/1663
* Always use BTC unit in blocks list by @nymkappa in https://github.com/mempool/mempool/pull/1652
* Allow CTRL F an address on the transaction list component by @nymkappa in https://github.com/mempool/mempool/pull/1653
* Use passive listeners to improve scrolling performance by @nymkappa in https://github.com/mempool/mempool/pull/1658
* Cleanup mining API endpoints by @nymkappa in https://github.com/mempool/mempool/pull/1659
* Define avg block time to 10 min until we have at least 146 block in the current epoch by @nymkappa in https://github.com/mempool/mempool/pull/1661
* Fix for transaction inputs being fetched recursively by @softsimon in https://github.com/mempool/mempool/pull/1665
* Reset outspends cache when switching to new tx page. by @softsimon in https://github.com/mempool/mempool/pull/1632
* Tweaking the websocket retry timers by @softsimon in https://github.com/mempool/mempool/pull/1637
* pools-updater: Support secure Tor connection to sync data with Github by @ayanamidev in https://github.com/mempool/mempool/pull/1649
* Remove unused config from nginx by @ayanamidev in https://github.com/mempool/mempool/pull/1666
* Adding some missing i18n strings by @softsimon in https://github.com/mempool/mempool/pull/1664
* Upgrade Cypress to v9.6.1 by @knorrium in https://github.com/mempool/mempool/pull/1672
* Don't prepend apiBasePath for services backend resources by @wiz in https://github.com/mempool/mempool/pull/1670
* Index blocks.hash by @nymkappa in https://github.com/mempool/mempool/pull/1673
* Cache /block API response for 10 min on user side by @nymkappa in https://github.com/mempool/mempool/pull/1674
* Additional expiration header for mining pool API endpoints by @nymkappa in https://github.com/mempool/mempool/pull/1676
* Add mining api docs by @hunicus in https://github.com/mempool/mempool/pull/1654
* Moving graphs and mining dashboard to a lazy loaded module by @softsimon in https://github.com/mempool/mempool/pull/1682
* Add feedback for mining API docs by @hunicus in https://github.com/mempool/mempool/pull/1680
* Set /mining/blocks/xxx APIs expiration to 60 seconds instead of 5 min by @nymkappa in https://github.com/mempool/mempool/pull/1686
* Fixes broken fee rate calculation for mempool transactions by @softsimon in https://github.com/mempool/mempool/pull/1688
* Improving loading indicator UX by @softsimon in https://github.com/mempool/mempool/pull/1667
* Fixes for Liquid module routing by @softsimon in https://github.com/mempool/mempool/pull/1690
* Reward stats i18n fix by @softsimon in https://github.com/mempool/mempool/pull/1694
* Round miners reward to full dollar by @softsimon in https://github.com/mempool/mempool/pull/1695
* Fix websockets tab by @hunicus in https://github.com/mempool/mempool/pull/1697
* Lazy load tx inputs in Bitcoin Core mode by @softsimon in https://github.com/mempool/mempool/pull/1643
* Add escaped slug into logs when slug does not match any pool by @nymkappa in https://github.com/mempool/mempool/pull/1657
* Make sure to re-index skipped block when backend is offline for too long by @nymkappa in https://github.com/mempool/mempool/pull/1635
* Fix missing tx column in main dashboard on mobile by @nymkappa in https://github.com/mempool/mempool/pull/1708
* Hide graph selection button on non bitcoin networks by @nymkappa in https://github.com/mempool/mempool/pull/1707
* Add schildbach bitcoin wallet to about page by @hunicus in https://github.com/mempool/mempool/pull/1710
* Update case in some mining API endpoint response by @nymkappa in https://github.com/mempool/mempool/pull/1685
* Merge legacy and mining /blocks components and APIs by @nymkappa in https://github.com/mempool/mempool/pull/1696
* Block transactions list error handling by @softsimon in https://github.com/mempool/mempool/pull/1700
* Add role attributes for doc nav elements by @hunicus in https://github.com/mempool/mempool/pull/1701
* Replace all oldestIndexedBlockTimestamp with X-total-count header by @nymkappa in https://github.com/mempool/mempool/pull/1687
* Liquid empty miner UX fix by @softsimon in https://github.com/mempool/mempool/pull/1699
* Move manual install notes to separate docs by @hunicus in https://github.com/mempool/mempool/pull/1714
* NgBootstrap library import optimization by @softsimon in https://github.com/mempool/mempool/pull/1717
* Add faq on empty blocks by @hunicus in https://github.com/mempool/mempool/pull/1728
* Add loading spinner in /blocks page by @nymkappa in https://github.com/mempool/mempool/pull/1718
* Remove keybase link from about page by @hunicus in https://github.com/mempool/mempool/pull/1735
* Adjust stuck tx faqs for angry people by @hunicus in https://github.com/mempool/mempool/pull/1736
* Angular 13.3.10 update by @softsimon in https://github.com/mempool/mempool/pull/1733
* Mining dashboard still runs fine if Bitcoin Core becomes unavailable by @nymkappa in https://github.com/mempool/mempool/pull/1716
* Don't try to run pools parser if db is not enabled by @nymkappa in https://github.com/mempool/mempool/pull/1719
* Fix doc page titles by @hunicus in https://github.com/mempool/mempool/pull/1730
* Use block hash instead of block height in urls by @nymkappa in https://github.com/mempool/mempool/pull/1739
* Add `economyFee` field in /api/fees/recommended API by @nymkappa in https://github.com/mempool/mempool/pull/1738
* Upgrading packages by @softsimon in https://github.com/mempool/mempool/pull/1742
* Changed menu buttons to links by @softsimon in https://github.com/mempool/mempool/pull/1750
* Bump clipboard from 2.0.10 to 2.0.11 in /frontend by @dependabot in https://github.com/mempool/mempool/pull/1624
* Save bisq aggregate exchange rates in the database for each new block by @nymkappa in https://github.com/mempool/mempool/pull/1723
* Handle nonstandard inputs by @softsimon in https://github.com/mempool/mempool/pull/1751
* Change backend start syslog message from DEBUG to NOTICE by @wiz in https://github.com/mempool/mempool/pull/1763
* Remove fee calculation from the frontend by @nymkappa in https://github.com/mempool/mempool/pull/1741
* Only attempt to save fx rate if database is enabled by @nymkappa in https://github.com/mempool/mempool/pull/1764
* Use inline SVG for mempool.space logo by @wiz in https://github.com/mempool/mempool/pull/1752
* If bisq data folder is not ready, retry every 3 minutes instead of exit by @nymkappa in https://github.com/mempool/mempool/pull/1642
* Send fee info with init data by @softsimon in https://github.com/mempool/mempool/pull/1765
* Re-add hash field in the mysql block query by @nymkappa in https://github.com/mempool/mempool/pull/1769
* Rewamp the fee widget by @nymkappa in https://github.com/mempool/mempool/pull/1766
* Feature: Projected block visualization by @mononaut in https://github.com/mempool/mempool/pull/1774
* Minor refactor for projected block transactions by @softsimon in https://github.com/mempool/mempool/pull/1779
* Updated new fee widget design by @nymkappa in https://github.com/mempool/mempool/pull/1790
* Make node 16.15 required not recommended by @hunicus in https://github.com/mempool/mempool/pull/1784
* Skip blocks disk cache loading after db migration by @nymkappa in https://github.com/mempool/mempool/pull/1797
* Update dashboard screenshot for v2.4.0 release by @wiz in https://github.com/mempool/mempool/pull/1792
* Update /api/blocks docs by @hunicus in https://github.com/mempool/mempool/pull/1795
* Refactor pool ranking rxjs observable by @nymkappa in https://github.com/mempool/mempool/pull/1772
* Re-added missing cache version by @nymkappa in https://github.com/mempool/mempool/pull/1800
* Improve disk cache logging by @nymkappa in https://github.com/mempool/mempool/pull/1801
* Fix for mempool logo SVG issue by @softsimon in https://github.com/mempool/mempool/pull/1809
* Make sure blocks list rxjs observable triggers at least once by @nymkappa in https://github.com/mempool/mempool/pull/1808
* Cypress v10 upgrade by @knorrium in https://github.com/mempool/mempool/pull/1806
* stricter multisig check + detect bare multisig when spent by @antonilol in https://github.com/mempool/mempool/pull/1745
* Reload mempool visualization on reconnect by @softsimon in https://github.com/mempool/mempool/pull/1811
* Handle Error with basic retry while syncing external assets by @ayanamidev in https://github.com/mempool/mempool/pull/1691
* Add pull request template to discourage tx prs by @hunicus in https://github.com/mempool/mempool/pull/1825
* Update fee faq by @hunicus in https://github.com/mempool/mempool/pull/1819
* Add 'db-less' mining pool tagging support by @nymkappa in https://github.com/mempool/mempool/pull/1822
* Add feerate tooltips by @hunicus in https://github.com/mempool/mempool/pull/1820
* Change 'projected blocks' to 'mempool blocks' in feerate tooltips by @hunicus in https://github.com/mempool/mempool/pull/1827
* Change "projected block" to "mempool block" in feerate faq by @hunicus in https://github.com/mempool/mempool/pull/1830
* Fix pool import crash by @nymkappa in https://github.com/mempool/mempool/pull/1834
* Add missing sed substitutions in docker/backend/start.sh by @wiz in https://github.com/mempool/mempool/pull/1839
* Use ellipsis + tooltip combo to fix layout on long string by @nymkappa in https://github.com/mempool/mempool/pull/1855
* Release v2.4.0 by @wiz in https://github.com/mempool/mempool/pull/1858

* @antonilol made their first contribution in https://github.com/mempool/mempool/pull/1158
* @AaronDewes made their first contribution in https://github.com/mempool/mempool/pull/1194
* @Bosch-0 made their first contribution in https://github.com/mempool/mempool/pull/1316
* @dsbaars made their first contribution in https://github.com/mempool/mempool/pull/1360
* @naveensrinivasan made their first contribution in https://github.com/mempool/mempool/pull/1339
* @ayanamidev made their first contribution in https://github.com/mempool/mempool/pull/1649
* @mononaut made their first contribution in https://github.com/mempool/mempool/pull/1774

**Full Changelog**: https://github.com/mempool/mempool/compare/v2.3.0...v2.4.0