Skip to content

25.7.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 03 Jul 07:39
· 105 commits to main since this release
4e2efab

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-enabled has 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
  • BesuContext is removed, since deprecated in favor of ServiceManager since 24.12.0
  • Remove the deprecated --Xbonsai-trie-logs-pruning-window-size, use --bonsai-trie-logs-pruning-window-size instead. #8823
  • Remove the deprecated --Xbonsai-limit-trie-logs-enabled, use --bonsai-limit-trie-logs-enabled instead. #8704
  • Remove the deprecated --Xbonsai-trie-log-pruning-enabled, use --bonsai-limit-trie-logs-enabled instead. #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, and cost #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
    • Privacy RPC API groups removed: EEA and PRIV #8803
  • 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-enabled can be set to false to force SNAP sync to download pre-checkpoint (pre-merge) blocks
    • --history-expiry-prune can 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-enabled is deprecated, use --bonsai-parallel-tx-processing-enabled instead.
  • --Xsnapsync-server-enabled is deprecated, use --snapsync-server-enabled instead #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-enabled is deprecated and will be removed in a future release. Use --snapsync-synchronizer-pre-checkpoint-headers-only-enabled instead.
  • --Xhistory-expiry-prune is deprecated and will be removed in a future release. Use --history-expiry-prune instead.

Additions and Improvements

  • Introduce the TransactionValidatorService to 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-enabled New 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-enabled can be set to false to force SNAP sync to download pre-checkpoint (pre-merge) blocks
    • --history-expiry-prune can 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