Skip to content

Releases: hyperledger/besu

25.7.0

03 Jul 07:39
4e2efab
Compare
Choose a tag to compare

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

25.6.0

04 Jun 02:51
9459e4f
Compare
Choose a tag to compare

25.6.0

This is an optional update. Please note the breaking changes.

History Expiry

This release contains experimental history expiry features, documented here https://github.com/hyperledger/besu/releases/tag/25.6.0-RC1
Sepolia - if you're running on Sepolia, we'd love you to try out History Expiry and let us know how you go.
Mainnet - we do not recommend using these experimental features on Mainnet yet because testing on Sepolia is ongoing.

Breaking Changes

  • Sunset features - for more context on the reasoning behind the removal of these features, including alternative options, read this blog post
    • Remove onchain permissioning #8597
    • Remove Tessera Privacy feature #8369
  • Remove MetricSystem::createLabelledGauge deprecated since 24.12.0, replace it with MetricSystem::createLabelledSuppliedGauge #8299
  • Remove the deprecated --tx-pool-disable-locals option, use --tx-pool-no-local-priority instead. #8614
  • Remove the deprecated --Xsnapsync-synchronizer-flat-db-healing-enabled, use --Xbonsai-full-flat-db-enabled instead. #8415
  • Change in behavior, the non-standard strict parameter of the eth_estimateGas method changed its default from false to true, for more accurate estimations. It is still possible to force the previous behavior, explicitly passing the strict parameter in the request, set to false #8629

Upcoming Breaking Changes

  • --Xbonsai-limit-trie-logs-enabled is deprecated, use --bonsai-limit-trie-logs-enabled instead.
  • --Xbonsai-trie-log-pruning-enabled is deprecated, use --bonsai-limit-trie-logs-enabled instead.
  • --Xbonsai-trie-logs-pruning-window-size is deprecated, use --bonsai-trie-logs-pruning-window-size instead.
  • --Xsnapsync-bft-enabled is deprecated and will be removed in a future release. SNAP sync is supported for BFT networks.
  • 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.

Additions and Improvements

  • Add eth/69 protocol for optional use by using the --Xeth-capability-max=69 flag (currently defaults to 68) #8519
  • BlobDB GC early access config options:
    • --Xplugin-rocksdb-blockchain-blob-garbage-collection-enabled Adds ability to enable BlobDB GC for BLOCKCHAIN column family #8599
    • --Xplugin-rocksdb-blob-garbage-collection-age-cutoff, --Xplugin-rocksdb-blob-garbage-collection-force-threshold BlobDB GC config options #8599
  • Increase default target-gas-limit to 60M for Ephemery #8622
  • Increase default target-gas-limit to 60M for Hoodi #8705
  • Gas estimation eth_estimateGas:
    • Estimate gas on pending block by default #8627
    • Estimate gas is now strict by default #8629
  • Update ref test to 4.5.0 #8643
  • EVM skip unnecssary state access for CALL/LOG #8639

Fusaka Devnet

  • EIP-5920 - PAY opcode #8498
  • EIP-7892 - Blob Parameter Only (BPO) forks #8671
  • EIP-7883 - MODEXP gas cost increase #8707

Dependencies

  • Update discovery library to 25.4.0 #8635
  • Upgrade Gradle to 8.14 and related plugins #8638

Bug fixes

  • Fix besu -X unstable options help #8662
  • Prevent parsing of invalid ENR records from crashing DNSDaemon #8368
  • ENR records with Base64 padding at the end are not parsed correctly #8697

New Contributors

Full Changelog: 25.5.0...25.6.0

SHA-256

e9d1c27369e269e0412aa264f791379a0fd4b58f103d4016068fabba2149f466 besu-25.6.0.zip
7ab7b83a4b6c8388da6cbe47d4714c64e5257075eb4c7ffced8e49f0a564ac51 besu-25.6.0.tar.gz

Experimental Sepolia Pre-merge History Expiry (25.6.0-RC1)

30 May 01:09
9459e4f
Compare
Choose a tag to compare

Caution

This is NOT a Mainnet-ready release

Experimental Sepolia Pre-merge History Expiry (25.6.0-RC1)

On June 1st 2025, for Sepolia testnet, Besu is set to support expiry of pre-merge block bodies on sepolia as specified here https://eips.ethereum.org/EIPS/eip-7927

This is a test run to prepare for a yet to be confirmed Mainnet date.

Note, the potential disk space saving with history expiry is only ~1 GiB for Sepolia but a good chance to test the new features. Mainnet space savings will be 400-500 GiB.

If you are launching a new Sepolia node, sync without pre-merge blocks.

If you are updating an existing Sepolia full node, you have several options:

  1. Do nothing - The only impact will be during sync
  2. Offline prune - A few minutes downtime and fastest path to space savings
  3. Online prune - Restart required then pruning occurs over the next few hours/days
  4. Resync without pre-merge blocks - longest downtime but best space savings

Support for era1 sync for archive nodes is coming soon.

How to perform an offline prune

The simplest and fastest option for pruning pre-merge blocks is to perform an offline prune.

  1. Stop Besu
  2. Run the prune command and wait for it to exit
./besu --network=sepolia --data-path=/path/to/your/database storage prune-pre-merge-blocks
  1. Add --Xhistory-expiry-prune flag to Besu and restart - this is important otherwise you won't actually reclaim any space.
  2. Wait until all space has been reclaimed, suggest waiting 24-48 hours
  3. It's optional, but we recommend removing --Xhistory-expiry-prune and restarting Besu.

--Xhistory-expiry-prune will apply some default database garbage collection options to help with freeing up disk space, as described here. These underlying GC options can be tweaked separately if necessary. Note this is the same flag used to activate the online pruner, but it will have no effect if you've already used the offline prune command.

Extra prune-pre-merge-blocks options

--threads will default to one less than the number of processors available on your system, so it is safe to omit
--prune-range-size will default to 10000 and can be adjusted if desired, although this may impact performance of the prune

e.g. ./besu --network=sepolia --data-path=/path/to/your/database --Xhistory-expiry-prune storage prune-pre-merge-blocks --threads=4 --prune-range-size=10000

How to perform an online prune

An alternative option for pruning is online pruning, which can be tuned to minimise impact on a running besu system

./besu --network=sepolia --Xhistory-expiry-prune

--Xhistory-expiry-prune will enable online pruning of pre-merge blocks and print progress in the logs, e.g.

Pruned pre-merge blocks up to 380000

When online prune is complete you will see this log message

Done pruning pre-merge blocks.

Note, --Xhistory-expiry-prune doubles up as a way to activate online pruning as well as the garbage collection settings that works for both online and offline pruning mechanisms.

Extra options

--Xpre-merge-pruning-quantity=100 is the default value and will tune the online pruning to remove 100 blocks from the beginning of the chain for every new block added. During testing on a 4 CPU machine, values up to 100 had neglible impact on besu's normal functioning.

Sync without pre-merge blocks

The final option for avoiding storage of pre-merge blocks is to delete your database and perform a fresh SNAP sync with the --Xsnapsync-synchronizer-pre-merge-headers-only-enabled option, e.g.

./besu --network=sepolia --sync-mode=SNAP --Xsnapsync-synchronizer-pre-merge-headers-only-enabled

Consider using RocketPool's https://rescuenode.com to minimise downtime if you're a solo staker (LSTs like Lido CSM should talk to the RocketPool grants committee).

Eth/69

Alongside pre-merge history expiry, EIP-7642 adds the Eth/69 protocol which broadcasts the new earliest block in the STATUS message. This can be enabled by starting besu with the --Xeth-capability-max=69 option. This usually defaults to allow all available protocol versions, but is currently defaulting to 68 to prevent unwanted Eth/69 activation.

This is optional and not required for history expiry sync or prune.

Further notes

Troubleshooting

Some of the same cli command troubleshooting tips may apply to prune-pre-merge-blocks: https://besu.hyperledger.org/public-networks/how-to/bonsai-limit-trie-logs#troubleshoot

sync-mode=CHECKPOINT

Some users may have sync-mode=CHECKPOINT instead of SNAP. Nothing will break however if you perform a fresh sync then you will delete the full pre-merge blocks instead of retaining the headers.
Once history expiry is live, we advise everyone to migrate from CHECKPOINT -> SNAP and will be deprecating CHECKPOINT sync in the future.

Mainnet readiness

Caution

This is NOT a Mainnet-ready release

Once Sepolia testing is complete, we will release a mainnet-ready version of history expiry for Besu. This will make the SNAP sync history expiry behaviour default.
The pruning features will be promoted from experimental to production-ready, e.g. --Xhistory-expiry-prune -> --history-expiry-prune


SHA 256

c38700c7adb333370967f5c336b511c694fd5994dfb0030a41e816574c2b8a65 besu-25.6.0-RC1.zip
9d53a47ad1a6bde924d86c6c2d7855b22f9e480de61624543aef4c8c5efa20d4 besu-25.6.0-RC1.tar.gz

25.5.0

15 May 06:05
b8cd4c8
Compare
Choose a tag to compare

25.5.0

Breaking Changes

  • Changes to gas estimation algorithm for eth_estimateGas and eth_createAccessList #8478 - if you require the previous behavior, specify --estimate-gas-tolerance-ratio=0.0

Upcoming Breaking Changes

  • MetricSystem::createLabelledGauge is deprecated and will be removed in a future release, replace it with MetricSystem::createLabelledSuppliedGauge
  • --Xsnapsync-synchronizer-flat-db-healing-enabled is deprecated, use --Xbonsai-full-flat-db-enabled instead.
  • --Xbonsai-limit-trie-logs-enabled is deprecated, use --bonsai-limit-trie-logs-enabled instead.
  • --Xbonsai-trie-log-pruning-enabled is deprecated, use --bonsai-limit-trie-logs-enabled instead.
  • --Xbonsai-trie-logs-pruning-window-size is deprecated, use --bonsai-trie-logs-pruning-window-size instead.
  • --Xsnapsync-bft-enabled is deprecated and will be removed in a future release. SNAP sync is supported for BFT networks.
  • Sunsetting features - for more context on the reasoning behind the deprecation of these features, including alternative options, read this blog post
    • Tessera privacy
    • Smart-contract-based (onchain) permissioning
    • Proof of Work consensus
    • Fast Sync
  • Transaction indexing will be disabled by default in a future release for snap sync and checkpoint sync modes. This will break RPCs that use transaction hash for historical queries.
  • Support for block creation on networks running a pre-Byzantium fork is deprecated for removal in a future release, after that in order 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.

Additions and Improvements

  • Sepolia checkpoint block has been updated to the merge block #8584
  • Add experimental --profile=PERFORMANCE for high spec nodes: increases rocksdb cache and enables parallel transaction processing #8560
  • Refine gas estimation algorithm for eth_estimateGas and eth_createAccessList #8478 including a new option to specify --estimate-gas-tolerance-ratio
  • Increase default target-gas-limit to 60M for Holesky and Sepolia #8594
  • Add support for Pyroscope to Docker image #8510

Dependencies

  • update jc-kzg-4844 dependency from 2.0.0 to 2.1.1

Bug fixes

  • Fix block import tracing, refactor BlockProcessor interface #8549
  • Shorten and standardise log labels in AbstractEngineNewPayload and AbstractEngineForkchoiceUpdated #8568

4a834cdfb6a3b1be50a50122b1b1391c979c305bbe0831b29223c24900c6603f besu-25.5.0.zip
5afdb8004e5badcd142198e50f98bcdb629a22d21bbad2330316cd242d43d750 besu-25.5.0.tar.gz

25.4.1

16 Apr 16:34
4993d22
Compare
Choose a tag to compare

Important

This is the Pectra Mainnet-ready release.

This is a mandatory update, you must update your Mainnet node before the activation of Pectra scheduled for epoch 364032 on 07 May 2025 at 10:05:11 AM UTC.
Please note the upcoming breaking changes.

Known issues

  • The configuration overview printed in the log contains the long version instead of the usual short version, this has not impact on any functionality.
  • The long version is also written into VERSION_METADATA.json in place of the short version, this has no impact for Mainnet and other named networks, only affects users private networks, that use custom genesis, that have not set version-compatibility-protection=false, and such users should skip this release and wait for the next one with the fix.

Breaking Changes

  • --compatibility-eth64-forkid-enabled has been removed. #8541

Upcoming Breaking Changes

  • MetricSystem::createLabelledGauge is deprecated and will be removed in a future release, replace it with MetricSystem::createLabelledSuppliedGauge
  • --Xsnapsync-synchronizer-flat-db-healing-enabled is deprecated, use --Xbonsai-full-flat-db-enabled instead.
  • --Xbonsai-limit-trie-logs-enabled is deprecated, use --bonsai-limit-trie-logs-enabled instead.
  • --Xbonsai-trie-log-pruning-enabled is deprecated, use --bonsai-limit-trie-logs-enabled instead.
  • --Xbonsai-trie-logs-pruning-window-size is deprecated, use --bonsai-trie-logs-pruning-window-size instead.
  • --Xsnapsync-bft-enabled is deprecated and will be removed in a future release. SNAP sync is supported for BFT networks.
  • --tx-pool-disable-locals has been deprecated, use --tx-pool-no-local-priority, instead.
  • Sunsetting features - for more context on the reasoning behind the deprecation of these features, including alternative options, read this blog post
    • Tessera privacy
    • Smart-contract-based (onchain) permissioning
    • Proof of Work consensus
    • Fast Sync
  • Transaction indexing will be disabled by default in a future release for snap sync and checkpoint sync modes. This will break RPCs that use transaction hash for historical queries.
  • Support for block creation on networks running a pre-Byzantium fork is deprecated for removal in a future release, after that in order 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.

Additions and Improvements

  • Add support for eth_simulateV1. #8406
  • New metric besu_peers_peer_count_by_client to report the count of peers by client name #8515- Add Prague fork time for mainnet. #8521
  • Add Prague fork time for mainnet. #8521
  • Default ExtraData to "besu+version" rather than empty. #8536
  • Add block import tracer plugin provider, used during block import #8524
  • Tune and make configurable the PeerTransactionTracker #8537

Bug fixes

  • Fix for storage proof key - if the key is zero use 0x0 not 0x #8499
  • Fix ephemery genesis since genesisHash changed #8539

New Contributors

Full Changelog: 25.4.0...25.4.1

b185ecd441c6aba213ad598db2482b6daaaae18eb35d9e8a9866d6db279da2eb besu-25.4.1.zip
1223c9d00c9bac7388cefa769a7387ebc67e97dd498970fbc8b8942cbc0d7efd besu-25.4.1.tar.gz

25.4.0

08 Apr 03:26
112b9bc
Compare
Choose a tag to compare

Important

This is NOT a Pectra Mainnet-ready release. The next release likely will be.

This is an optional update. Please note the upcoming breaking changes.
This release is mostly stability improvements ahead of the hard fork.

Upcoming Breaking Changes

  • MetricSystem::createLabelledGauge is deprecated and will be removed in a future release, replace it with MetricSystem::createLabelledSuppliedGauge
  • --Xsnapsync-synchronizer-flat-db-healing-enabled is deprecated, use --Xbonsai-full-flat-db-enabled instead.
  • --Xbonsai-limit-trie-logs-enabled is deprecated, use --bonsai-limit-trie-logs-enabled instead.
  • --Xbonsai-trie-log-pruning-enabled is deprecated, use --bonsai-limit-trie-logs-enabled instead.
  • --Xbonsai-trie-logs-pruning-window-size is deprecated, use --bonsai-trie-logs-pruning-window-size instead.
  • --Xsnapsync-bft-enabled is deprecated and will be removed in a future release. SNAP sync is supported for BFT networks.
  • --tx-pool-disable-locals has been deprecated, use --tx-pool-no-local-priority, instead.
  • Sunsetting features - for more context on the reasoning behind the deprecation of these features, including alternative options, read this blog post
    • Tessera privacy
    • Smart-contract-based (onchain) permissioning
    • Proof of Work consensus
    • Fast Sync
  • Transaction indexing will be disabled by default in a future release for snap sync and checkpoint sync modes. This will break RPCs that use transaction hash for historical queries.
  • Support for block creation on networks running a pre-Byzantium fork is deprecated for removal in a future release, after that in order 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.
  • --compatibility-eth64-forkid-enabled has been deprecated and will be removed in the next release. #8492

Additions and Improvements

  • Add Hoodi discovery DNS #8446
  • Decode deposit log data without Web3j #8394
  • Tune layered txpool default configuration for upcoming gas limit and blob count increases #8487
  • Removed support for Ethereum protocol versions eth/62, eth/63, eth/64, and eth/65. #8492
  • Explicitly add depositContractAddress to mainnet.json #8410

Performance

  • Consensys/tuweni 2.7.0 reduces boxing/unboxing overhead on some EVM opcodes, like PushX and Caller #8330, #8461
  • Precompile Caching, enable with --cache-precompiles #8095

Dependencies

Bug fixes

  • Fix QBFT and IBFT transitions that change the mining beneficiary #8387
  • eth_getLogs - empty topic is a wildcard match #8420
  • Upgrade spring-security-crypto to address CVE-2025-22228 #8448
  • Fix restoring txpool from disk when blob transactions are present #8481
  • Fix for bonsai db inconsistency on abnormal shutdown #8500
  • Fix to add stateroot mismatches to bad block manager #8207

5d11ef3b55cca8b060051ab910e0a89a76eae4f6a2d3d2bfb718ee742307fcaf besu-25.4.0.zip
6abbc7472c9c2137e9e82b4d8fb569f25f9f85d4a330eea6b0dbb6f8a67340af besu-25.4.0.tar.gz

New Contributors

Full Changelog: 25.3.0...25.4.0

25.3.0

18 Mar 06:32
5b6cd5f
Compare
Choose a tag to compare

This is a strongly recommended update for all users, including Mainnet.
It contains bug fixes, dependency and security updates.

Highlights include:

  • Add Hoodi as new named testnet using --network=hoodi #8428
  • Increase mainnet and Sepolia gas limit to 36M #8249
  • Parallel EVM: Improve conflict detection by considering slots to reduce false positives #7923
  • Add era1 format to blocks import subcommand #7935
  • Add IBFT1 to QBFT migration capability #8262

Changelog

Breaking Changes

NOTE: This release breaks native Windows compatibility for mainnet ethereum configurations. As the prague(pectra) hardfork require
BLS12-381 precompiles and besu does not currently have a pure java implementation of bls12-381, only platforms which
have support in besu-native can run mainnet ethereum configurations. Windows support via WSL should still continue to work.

  • k8s (KUBERNETES) Nat method is removed. Use docker or none instead. #8289
  • Change Invalid block, unable to parse RLP RPC error message to Invalid block param (block not found) #8328
  • Mainnet ethereum now REQUIRES native crypto libraries, so only linux and macos(darwin) are supported mainnet configurations #8418

Upcoming Breaking Changes

  • MetricSystem::createLabelledGauge is deprecated and will be removed in a future release, replace it with MetricSystem::createLabelledSuppliedGauge
  • --Xsnapsync-synchronizer-flat-db-healing-enabled is deprecated, use --Xbonsai-full-flat-db-enabled instead.
  • --Xbonsai-limit-trie-logs-enabled is deprecated, use --bonsai-limit-trie-logs-enabled instead.
  • --Xbonsai-trie-log-pruning-enabled is deprecated, use --bonsai-limit-trie-logs-enabled instead.
  • --Xbonsai-trie-logs-pruning-window-size is deprecated, use --bonsai-trie-logs-pruning-window-size instead.
  • --Xsnapsync-bft-enabled is deprecated and will be removed in a future release. SNAP sync is supported for BFT networks.
  • --tx-pool-disable-locals has been deprecated, use --tx-pool-no-local-priority, instead.
  • Sunsetting features - for more context on the reasoning behind the deprecation of these features, including alternative options, read this blog post
    • Tessera privacy
    • Smart-contract-based (onchain) permissioning
    • Proof of Work consensus
    • Fast Sync
  • Transaction indexing will be disabled by default in a future release for snap sync and checkpoint sync modes. This will break RPCs that use transaction hash for historical queries.
  • Support for block creation on networks running a pre-Byzantium fork is deprecated for removal in a future release, after that in order 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.

Additions and Improvements

Prague

  • Increase mainnet and Sepolia gas limit to 36M #8249
  • Update Holesky and Sepolia deposit contract addresses #8346

Plugins

  • Allow plugins to propose transactions during block creation #8268
  • Add support for transaction permissioning rules in Plugin API #8365

Parallelization

  • Improve conflict detection by considering slots to reduce false positives #7923

Dependencies

Other improvements

  • Add TLS/mTLS options and configure the GraphQL HTTP service#7910
  • Update eth_getLogs to return a Block not found error when the requested block is not found. #8290
  • Change Invalid block, unable to parse RLP RPC error message to Invalid block param (block not found) #8328
  • Add IBFT1 to QBFT migration capability #8262
  • Support pending transaction score when saving and restoring txpool #8363
  • Upgrade to execution-spec-tests v4.1.0 including better EIP-2537 coverage for BLS #8402
  • Add era1 format to blocks import subcommand #7935
  • Add Hoodi as new named testnet #8428

Bug fixes

  • Add missing RPC method debug_accountRange to RpcMethod.java so this method can be used with --rpc-http-api-method-no-auth #8153
  • Add a fallback pivot strategy when the safe block does not change for a long time, to make possible to complete the initial sync in case the chain is not finalizing #8395
  • Fix issue with new QBFT/IBFT blocks being produced under certain circumstances. #8308

SHA 256

125563b6b892859a55f31429578d43b990977a4a96a9e78ef051b267a0c50c07 besu-25.3.0.zip
3935093edeb54773a3cd10c32b03e4ac12a1af307f8377a6d2e24d7cbcf70af2 besu-25.3.0.tar.gz

25.2.2

05 Mar 15:48
Compare
Choose a tag to compare

25.2.2

This is a hotfix release for Pectra Sepolia testnets
You need to update IF (and ONLY IF) you are running Besu on Sepolia
Identical to 25.2.1 with one change:

  • Pectra - Sepolia: Fix for deposit contract log decoding #8383

27bf8ae3d81bdd86590c9da86b3754c3df0a5e12a3c7eeb20628fc4fa1d1ebad besu-25.2.2.zip
760e7bdceea2f363bd9ee89b96999a7c4eb72852db5382cc97506203c6a53a5b besu-25.2.2.tar.gz

25.2.1

25 Feb 00:29
Compare
Choose a tag to compare

25.2.1

This is a hotfix release for Pectra testnets (Holesky and Sepolia).
You need to update IF (and ONLY IF) you are running Besu on Holesky or Sepolia
Identical to 25.2.0 with one change:

  • Pectra - update Holesky and Sepolia deposit contract addresses #8346

45c04bbe2173f4ba3c4c5315f92958be6573a296b713f56509d5471ae97925f1 besu-25.2.1.zip
7ece6c885b02c4aef68efd03193e32cd74adc4a81db2cb07cd234d548d4dd0a2 besu-25.2.1.tar.gz

25.2.0

12 Feb 21:55
cbabf87
Compare
Choose a tag to compare

This is an optional update for Mainnet users. This is a required update for Holesky and Sepolia users for the upcoming Pectra hardfork.

Pectra scheduled for:

  • Holesky: Mon, Feb 24 at 21:55:12 UTC
  • Sepolia: Wed, Mar 5 at 07:29:36 UTC

Please note the breaking changes in this release and the upcoming breaking changes.

Breaking Changes

  • rpc-gas-cap default value has changed from 0 (unlimited) to 50M. If you require rpc-gas-cap greater than 50M, you'll need to set that explicitly. #8251

Upcoming Breaking Changes

  • MetricSystem::createLabelledGauge is deprecated and will be removed in a future release, replace it with MetricSystem::createLabelledSuppliedGauge
  • k8s (KUBERNETES) Nat method is now deprecated and will be removed in a future release. Use docker or none instead.
  • --Xsnapsync-synchronizer-flat-db-healing-enabled is deprecated, use --Xbonsai-full-flat-db-enabled instead.
  • --Xbonsai-limit-trie-logs-enabled is deprecated, use --bonsai-limit-trie-logs-enabled instead.
  • --Xbonsai-trie-log-pruning-enabled is deprecated, use --bonsai-limit-trie-logs-enabled instead.
  • --Xbonsai-trie-logs-pruning-window-size is deprecated, use --bonsai-trie-logs-pruning-window-size instead.
  • Sunsetting features - for more context on the reasoning behind the deprecation of these features, including alternative options, read this blog post
    • Tessera privacy
    • Smart-contract-based (onchain) permissioning
    • Proof of Work consensus
    • Fast Sync
  • Support for block creation on networks running a pre-Byzantium fork is deprecated for removal in a future release, after that in order 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.

Additions and Improvements

  • Add a tx selector to skip txs from the same sender after the first not selected #8216
  • rpc-gas-cap default value has changed from 0 (unlimited) to 50M #8251

Prague

  • Add timestamps to enable Prague hardfork on Sepolia and Holesky test networks #8163
  • Update system call addresses to match devnet-6 values #8209

Plugins

  • Extend simulate transaction on pending block plugin API #8174

Bug fixes

  • Fix the simulation of txs with a future nonce #8215
  • Bump to besu-native 1.1.2 for ubuntu 20.04 native support#8264

Full changelog:
25.1.0...25.2.0

294a6aad21b12dde882ee02415d790a6fb1519109fec523993e5e58f16dba558 besu-25.2.0.zip
5bd58be7ba6131c7c7ff46e2578d1b6e8f57243e4c9e5cd8d31ef7bbcfc35e3a besu-25.2.0.tar.gz