25.7.0
🚀 Release Highlights
- Gas limit increased to 45M by default 🚀
- Changes in Maven coordinates of Besu artifacts
- History expiry enabled by default for new SNAP nodes
- Parallel transaction processing enabled by default
- Breaking Changes: Cleanup of deprecated code—please review carefully!
--snapsync-server-enabledhas been promoted (but not yet default)- Experimental Bonsai Archive support is now available but remains experimental pending mainnet performance validation.
Breaking Changes
- Changes in Maven coordinates of Besu artifacts to avoid possible collisions with other libraries when packaging plugins. See Appendix A for a mapping. #8589 #8746
BesuContextis removed, since deprecated in favor ofServiceManagersince24.12.0- Remove the deprecated
--Xbonsai-trie-logs-pruning-window-size, use--bonsai-trie-logs-pruning-window-sizeinstead. #8823 - Remove the deprecated
--Xbonsai-limit-trie-logs-enabled, use--bonsai-limit-trie-logs-enabledinstead. #8704 - Remove the deprecated
--Xbonsai-trie-log-pruning-enabled, use--bonsai-limit-trie-logs-enabledinstead. #8704 - Remove the deprecated
--Xsnapsync-bft-enabled. SNAP sync is now supported for BFT networks. #8861 - Remove methods from gas calculator deprecated since 24.4
create2OperationGasCost,callOperationGasCost,createOperationGasCost, andcost#8817 - Sunsetting features - for more context on the reasoning behind the deprecation of these features, including alternative options, read this blog post
- Stratum mining has been removed (part of PoW) #8802
- PoW RPCs removed:
eth_getWork,eth_submitWork,eth_getHashrate,eth_submitHashrate,eth_hashrate
- Introduce history expiry behaviour for mainnet 8875
- SNAP sync will now download only headers for pre-checkpoint (pre-merge) blocks
--snapsync-synchronizer-pre-checkpoint-headers-only-enabledcan be set to false to force SNAP sync to download pre-checkpoint (pre-merge) blocks--history-expiry-prunecan be used to enable online pruning of pre-checkpoint (pre-merge) blocks as well as modifying database garbage collection parameters to free up disk space from the pruned blocks
Upcoming Breaking Changes
--Xbonsai-parallel-tx-processing-enabledis deprecated, use--bonsai-parallel-tx-processing-enabledinstead.--Xsnapsync-server-enabledis deprecated, use--snapsync-server-enabledinstead #8512- Sunsetting features - for more context on the reasoning behind the deprecation of these features, including alternative options, read this blog post
- Proof of Work consensus (PoW)
- Fast Sync
- Support for block creation on networks running a pre-Byzantium fork is deprecated for removal in a future release, after that to update Besu on nodes that build blocks, your network needs to be upgraded at least to the Byzantium fork. The main reason is to simplify world state management during block creation, since before Byzantium for each selected transaction, the receipt must contain the root hash of the modified world state, and this does not play well with the new plugin features and future work on parallelism.
--Xsnapsync-synchronizer-pre-merge-headers-only-enabledis deprecated and will be removed in a future release. Use--snapsync-synchronizer-pre-checkpoint-headers-only-enabledinstead.--Xhistory-expiry-pruneis deprecated and will be removed in a future release. Use--history-expiry-pruneinstead.
Additions and Improvements
- Introduce the
TransactionValidatorServiceto allow plugins to add custom validation rules #8793 - Implement rewardPercentile cap in eth_feeHistory #8748
- Expose a method to get blob gas price from plugins #8843
- Experimental Bonsai Archive support #7475
- Use eth/69 by default #8858
--snapsync-server-enabledNew option to enable serving snap sync data #8512- Introduce history expiry behaviour #8875
- SNAP sync will now download only headers for pre-checkpoint (pre-merge) blocks
--snapsync-synchronizer-pre-checkpoint-headers-only-enabledcan be set to false to force SNAP sync to download pre-checkpoint (pre-merge) blocks--history-expiry-prunecan be used to enable online pruning of pre-checkpoint (pre-merge) blocks as well as modifying database garbage collection parameters to free up disk space from the pruned blocks
Performance
- Increase mainnet gas limit to 45M #8824
- Enable parallel tx processing by default if Bonsai is used #8668
- Remove redundant serialization of json params #8847
- Improve ExtCodeHash performance #8811
- Improve ModExp precompile performance #8868
Fusaka
- EIP-7825 - Transaction gas limit cap #8700
- EIP-7823 - Modexp upper bounds #8632
- EIP-7892 - Max number of blobs per transaction #8761
- EIP-7934 - RLP Execution Block Size Limit #8765
- EIP-7951 - Precompile for secp256r1 Curve Support #8750
History Expiry
This release contains Mainnet-ready pre-merge History Expiry which is documented here: https://besu.hyperledger.org/public-networks/how-to/pre-merge-history-expiry
By default, a fresh sync with sync-mode=SNAP will only save the pre-merge block headers, not the block bodies.
There are also options available for pruning existing nodes, expect to save 300-500 GiB depending on the method you use.
We advise everyone to migrate from sync-mode=CHECKPOINT to sync-mode=SNAP and will be deprecating CHECKPOINT sync in the future.
e6a805b69d9a90278a811682a2f891d72803c235f0566d9e204dc3ae3b3af401 besu-25.7.0.zip
032515d065495aea824a25ef501b5543096931ad8048b4a12296a410b1cb8c12 besu-25.7.0.tar.gz