24.5.1
What's Changed
There's a lot in this release, notably
- early access Snap Sync Server
- reduction in storage size of receipt
- optional
v
fields for type 1 and type 2 transactions
Note there are 2 known issues which we are still working on (details below).
Breaking Changes
- RocksDB database metadata format has changed to be more expressive, the migration of an existing metadata file to the new format is automatic at startup. Before performing a downgrade to a previous version it is mandatory to revert to the original format using the subcommand
besu --data-path=/path/to/besu/datadir storage revert-metadata v2-to-v1
. - BFT networks won't start with SNAP or CHECKPOINT sync (previously Besu would start with this config but quietly fail to sync, so it's now more obvious that it won't work) #6625, #6667
- Forest pruning has been removed, it was deprecated since 24.1.0. In case you are still using it you must now remove any of the following options:
pruning-enabled
,pruning-blocks-retained
andpruning-block-confirmations
, from your configuration, and you may want to consider switching to Bonsai.
Upcoming Breaking Changes
- Version 24.5.x will be the last series to support Java 17. Next release after versions 24.5.x will require Java 21 to build and run.
- Receipt compaction will be enabled by default in a future version of Besu. After this change it will not be possible to downgrade to the previous Besu version.
- PKI-backed QBFT will be removed in a future version of Besu. Other forms of QBFT will remain unchanged.
- In a future release,
--Xbonsai-limit-trie-logs-enabled
will be renamed to--bonsai-limit-trie-logs-enabled
instead. Additionally, this limit will change to be enabled by default.- If you do not want the limit enabled (eg you have
--bonsai-historical-block-limit
set < 512), you need to explicitly disable it using--Xbonsai-limit-trie-logs-enabled=false
or increase the limit.
- If you do not want the limit enabled (eg you have
Known Issues
- [Frequency: occasional < 10%] Chain download halt. Only affects new syncs (new nodes syncing from scratch). Symptom: Block import halts, despite having a full set of peers and world state downloading finishing. Generally restarting besu will resolve the issue. We are tracking this in #6884
- [Frequency: occasional < 10%] Low peer numbers. More likely to occur on testnets (holesky and sepolia) but also can occur on mainnet. Symptom: peer count stays at 0 for an hour or more. Generally restarting besu will resolve the issue. We are tracking this in #6805
Additions and Improvements
- Update "host allow list" logic to transition from deprecated
host()
method to suggestedauthority()
method.#6878 txpool_besuPendingTransactions
change parameternumResults
to optional parameter #6708- Extend
Blockchain
service #6592 - Add bft-style
blockperiodseconds
transitions to Clique #6596 - Add
createemptyblocks
transitions to Clique #6608 - RocksDB database metadata refactoring #6555
- Make layered txpool aware of
minGasPrice
andminPriorityFeePerGas
dynamic options #6611 - Update commons-compress to 1.26.0 #6648
- Update Vert.x to 4.5.4 #6666
- Refactor and extend
TransactionPoolValidatorService
#6636 - Introduce
TransactionSimulationService
#6686 - Transaction call object to accept both
input
anddata
field simultaneously if they are set to equal values #6702 eth_call
for blob tx allows for emptymaxFeePerBlobGas
#6731- Extend error handling of plugin RPC methods #6759
- Added engine_newPayloadV4 and engine_getPayloadV4 methods #6783
- Reduce storage size of receipts #6602
- Dedicated log marker for invalid txs removed from the txpool #6826
- Prevent startup with BONSAI and privacy enabled #6809
- Remove deprecated Forest pruning #6810
- Experimental Snap Sync Server #6640
- Upgrade Reference Tests to 13.2 #6854
- Update Web3j dependencies #6811
- Add
tx-pool-blob-price-bump
option to configure the price bump percentage required to replace blob transactions (by default 100%) #6874 - Log detailed timing of block creation steps #6880
- Expose transaction count by type metrics for the layered txpool #6903
- Expose bad block events via the BesuEvents plugin API #6848
- Add RPC errors metric #6919
- Add
rlp decode
subcommand to decode IBFT/QBFT extraData to validator list #6895 - Allow users to specify which plugins are registered #6700
- Layered txpool tuning for blob transactions #6940
Bug fixes
- Fix txpool dump/restore race condition #6665
- Make block transaction selection max time aware of PoA transitions #6676
- Don't enable the BFT mining coordinator when running sub commands such as
blocks export
#6675 - In JSON-RPC return optional
v
fields for type 1 and type 2 transactions #6762 - Fix Shanghai/QBFT block import bug when syncing new nodes #6765
- Fix to avoid broadcasting full blob txs, instead of only the tx announcement, to a subset of nodes #6835
- Snap client fixes discovered during snap server testing #6847
- Correctly initialize the txpool as disabled on creation #6890
- Fix worldstate download halt when using snap sync during initial sync #6981
- Fix chain halt due to peers only partially responding with headers. Also worldstate halts caused by a halt in the chain sync #7027
Download Info
77e39b21dbd4186136193fc6e832ddc1225eb5078a5ac980fb754b33ad35d554 besu-24.5.1.tar.gz
13d75b6b22e1303f39fd3eaddf736b24ca150b2bafa7b98fce7c7782e54b213f besu-24.5.1.zip
New Contributors
- @RoboCopsGoneSock made their first contribution in #6677
- @friedemannf made their first contribution in #6702
- @MASDXI made their first contribution in #6708
- @wellweek made their first contribution in #6730
- @suraneti made their first contribution in #6562
- @standstaff made their first contribution in #6741
- @Savid made their first contribution in #6744
- @lyfsn made their first contribution in #6758
- @StevenMia made their first contribution in #6951
- @goodactive made their first contribution in #6971
Full Changelog: 24.3.3...24.5.0-RC2