Releases: besu-eth/besu
26.2.0
26.2.0
This is a recommended update for all users.
Breaking Changes
- ETC Classic support in Besu is removed. This includes all ETC related hardforks including Mordor and Spiral. #9671
- Forest db subcommands
x-backup-stateandx-restore-stateare removed #9821 - Omit totalDifficulty from post-merge blockResults #9836
- Chain pruning CLI options have been redesigned with new behavior: #9637
--Xchain-pruning-enablednow accepts three strategy values instead of boolean:ALL- prunes both blocks and BALs (replaces the old--Xchain-pruning-enabled=true)BAL- prunes only BALs, keeps all blocks forever (new mode, now the default)NONE- disables all pruning (replaces the old--Xchain-pruning-enabled=false)
--Xchain-pruning-blocks-retainedbehavior changes:- In
ALLmode: controls block retention (previously the only mode) - In
BALmode: has no effect as blocks are never pruned - Default value changed from
7200to113056blocks (Weak Subjectivity Period: 3533 epochs × 32 slots)
- In
- New flag
--Xchain-pruning-bals-retainedsets the number of BALs to retain:- Defaults to the value of
--Xchain-pruning-blocks-retainedwhen not specified - Must be >=
113056(configurable via--Xchain-pruning-retained-minimum) - In
ALLmode: should typically be less than or equal to--Xchain-pruning-blocks-retained - In
BALmode: controls BAL retention independently
- Defaults to the value of
--Xchain-pruning-frequencynow controls both block and BAL pruning operations (previously only controlled block pruning)- Renamed
--Xchain-pruning-blocks-retained-limitto--Xchain-pruning-retained-minimum(applies to both blocks and BALs)- New default value:
113056blocks (3533 epochs × 32 slots, based on Weak Subjectivity Period) - Previous default:
7200blocks
- New default value:
- Fast Sync is no longer supported, snap sync can be used instead #9814
- CHECKPOINT sync is deprecated. Selecting CHECKPOINT sync now performs a SNAP sync: #9814
- eth_simulateV1 returns BLOCK_NOT_FOUND instead of null success response when called with a future block #9837
- eth_simulateV1: when validation is enabled, map UPFRONT_COST_EXCEEDS_BALANCE (-38014) error code to -32602 #9837
Upcoming Breaking Changes
- RPC changes to enhance compatibility with other ELs
- Block number parameter in RPCs will only support hex values. Support for non-hex (decimal) block number parameters is deprecated.
- This affects several RPCs, including
admin_logsRemoveCache,debug_getRawHeader,eth_call,eth_simulateV1,trace_calland more.
- Holesky network is deprecated #9437
- 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)
- Clique Block Production (mining) - you will still be able to sync existing Clique networks, but not be a validator or create new Clique networks.
Additions and Improvements
- Support substring and glob matching for
--test-nameinblock-testevmtool subcommand #9790 - Improve performance of snap sync chain download #9510 and #9621
- Add ability to pass a custom tracer to block simulation #9708
- Add support for
4byteTracerindebug_trace*methods to collect function selectors from internal calls via PR #9642. Thanks to @JukLee0ira. - Update assertj to v3.27.7 #9710
- Update vertx to 4.5.24 #9645
- Add byte-level metrics for P2P message exchange #9666
- Add IPv6 dual-stack support for DiscV5 peer discovery (enabled via
--Xv5-discovery-enabled): new--p2p-host-ipv6,--p2p-interface-ipv6, and--p2p-port-ipv6CLI options enable a second UDP discovery socket;--p2p-ipv6-outbound-enabledcontrols whether IPv6 is preferred for outbound connections when a peer advertises both address families #9763; RLPx now also binds a second TCP socket on the IPv6 interface so IPv6-only peers can establish connections #9873
Performance
- EVM optimisations - Improves 70% of EEST benchmarks #9775
- EVM optimisations - Improve SAR, SHR and SHL opcodes performance #9796
Bug fixes
- Fix epoch reset not clearing DROP votes in Clique/IBFT/QBFT consensus #9870
- Fix DiscV5 ENR
udp/udp6fields: when--p2p-port=0is used, the OS-assigned UDP port is now correctly propagated to the ENR after the socket is bound; in dual-stack mode both UDP sockets resolve before the ENRseqis incremented #9888 - Fix DiscV5 ENR
tcp/tcp6fields: previously these reflected the UDP discovery bind port instead of the actual RLPx listening port; ENR initialisation is now deferred until the RLPx TCP port is known #9873 - Fix QBFT Shanghai support by reintroducing NotApplicableWithdrawals withdrawals validator #9830
- Fix callTracer handling of failed CREATE operations, including correct input field extraction and proper error reporting for both soft failures and revert reasons
- Upgrade netty to 4.2.10-Final - Fixes
setsockopt() failed: Protocol not available#9783 - Allow nonce to be max value when
isAllowFutureNonceis true #9759
90b78a6739c37c6edffe362587231c51ce1b816b1f13c7aad94547e1a3a86e10 besu-26.2.0.zip
0b9535001e0081a5bd7c861a1c6444914ae7f0869355588e260d97ae5a59a914 besu-26.2.0.tar.gz
26.1.0
26.1.0
This is a recommended update for all users.
Breaking Changes
- Remove experimental CLI flag
--Xenable-extra-debug-tracers. Call tracer (callTracer) is now always available fordebug_trace*methods. - RPC changes to enhance compatibility with other ELs
- RPCs using filter parameter including
eth_getLogsandtrace_filterreturn an error iffromBlockis greater thantoBlock, or iftoBlockextends beyond chain head (previously returned an empty list) #9604
- RPCs using filter parameter including
- Plugin API changes to BlockHeader, Log, LogWithMetadata, TransactionProcessingResult and TransactionReceipt to use specific types for LogsBloomFilter, LogTopic and Log #9556
Upcoming Breaking Changes
- RPC changes to enhance compatibility with other ELs
- Block number parameter in RPCs will only support hex values. Support for non-hex (decimal) block number parameters is deprecated.
- This affects several RPCs, including
admin_logsRemoveCache,debug_getRawHeader,eth_call,eth_simulateV1,trace_calland more.
- ETC Classic and Mordor network support in Besu is deprecated #9437
- Holesky network is deprecated #9437
- Sunsetting features - for more context on the reasoning behind the deprecation of these features, including alternative options, read this blog post
- ETC (Ethereum Classic) network support
- Proof of Work consensus (PoW)
- Clique Block Production (mining) - you will still be able to sync existing Clique networks, but not be a validator or create new Clique networks.
- Fast Sync
--history-expiry-pruneis deprecated and will be removed in a future release
Additions and Improvements
- Update to Netty 4.2.9.Final #9587
- Update to log4j 2.25.3 #9600
- Add
engine_getBlobsV3method #9582 - Verify plugins on start #9601
- Add EIP-7778 to Amsterdam #9664
- Treat EndOfRLPException as invalid packet in peer discovery, meaning you will no longer see these exceptions, unless you enable DEBUG logs #9597
Performance
- Optimise ADD Opcode: ADD 86% faster, using new UInt256 implementation #9477
- Optimise EIP-196 AltBn128: EcAdd 33-128% faster, EcMul 8% faster #9570
- Improve
getBlobsV2by disabling HTTP response compression for engine API, with up to 10× throughput improvement observed for large numbers of blobs. #9667 - Replace BytesTrieSet with HashSet, improves CREATE, CREATE2, SELFDESTRUCT and jumpdest analysis by up to 48% #9641
- Parallelize state root computation for Bonsai #9576
Bug fixes
- Fix promotion to prioritized layer for gas price fee markets #9635
- Fix callTracer to properly capture nested calls and populate revertReason field when transactions revert #9651
- Enhance payload selection with tx count and creation time tiebreakers #9657
- Fix mining beneficiary for BFT networks when set to zero address #9679
356bae18a4c08a2135aa006e62a550b52428e1d613c08aa97c40ec8b908ae6cf besu-26.1.0.zip
de6356bf2db9e7a68dc3de391864dc373a0440f51fbf6d78d63d1e205091248e besu-26.1.0.tar.gz
New Contributors
- @eeemmmmmm made their first contribution in #9595
- @avorylli made their first contribution in #9592
- @cuiweixie made their first contribution in #9599
- @0xEllie made their first contribution in #9210
Full Changelog: 25.12.0...26.1.0
25.12.0
25.12.0
Breaking Changes
- Remove these deprecated CLI options #9385
- Remove
--Xbonsai-parallel-tx-processing-enableddeprecated since 25.7.0. Use--bonsai-parallel-tx-processing-enabledinstead. - Remove
--Xsnapsync-server-enableddeprecated since 25.7.0. Use--snapsync-server-enabledinstead. - Remove
--Xsnapsync-synchronizer-pre-merge-headers-only-enableddeprecated since 25.7.0. Use--snapsync-synchronizer-pre-checkpoint-headers-only-enabledinstead. - Remove
--Xhistory-expiry-prunedeprecated since 25.7.0. Use--history-expiry-pruneinstead.
- Remove
- RPC changes to enhance compatibility with other ELs
- Use error code 3 for execution reverted #9365
- eth_createAccessList now returns success result if execution reverted #9358
- Return null result if block not found for
debug_accountAt,debug_setHead,eth_call,eth_getBlockReceipts,eth_getProof,eth_simulateV1,eth_getBalance,eth_getCode,eth_getStorageAt,eth_getTransactionCount#9303
- Remove PoW specific RPCs:
eth_getMinerDataByBlockHash,eth_getMinerDataByBlockNumber,miner_setCoinbase,miner_setEtherbase#9481,eth_coinbase#9487 - Remove PoW CLI options:
--miner-enabled,--miner-coinbase#9486
Upcoming Breaking Changes
- ETC Classic and Mordor network support in Besu is deprecated #9437
- Holesky network is deprecated #9437
- Sunsetting features - for more context on the reasoning behind the deprecation of these features, including alternative options, read this blog post
- ETC (Ethereum Classic) network support
- Proof of Work consensus (PoW)
- Clique Block Production (mining) - you will still be able to sync existing Clique networks, but not be a validator or create new Clique networks.
- Fast Sync
Additions and Improvements
- Update to vertx 4.5.22 #9375
- Add
opcodesoptional parameter to RPC methods:debug_standardTraceBlockToFile,debug_standardTraceBadBlockToFile,debug_traceBlockByNumber,debug_traceBlockByHash,debug_traceTransaction,debug_traceBlock,debug_traceCallfor tracing specified opcodes #9335 - Use Eclipse Temurin OpenJDK JRE in Besu docker image #9392
- Add Linea named networks for
linea_mainnetandlinea_sepolia#9436, #9518 - Add
eth_subscribeandeth_unsubscribesupport to IPC service #9504 - Add experimental
callTracertracer option todebug_trace*methods. Enabled using--Xenable-extra-debug-tracers=trueoption. Issue #8326 implemented via PR #8960 and #9072.
Performance
- 5-6x faster toFastHex calculation for engine_getBlobsV2 #9426
- Optimise
engine_getPayload*methods andengine_getBlobsV2#9445 - Optimise performances of AND, OR, XOR and NOT opcodes #9489
Bug fixes
- Fix non-deterministic sub-protocol registration during IBFT2 to QBFT consensus migration #9516
- Fix loss of colored output in terminal when using
--color-enabled=trueoption #8908 - Fix an issue where Besu does not support
0x80as transaction type when decoding eth/69 receipts #9520
fa02fc7d9f7965036caea0b86efdcfdddb9e982416c8fb026b580815a1ee2de7 besu-25.12.0.zip
11a880ad19cbfa30edb71a0a990310c704d6f6625601e6125507092b07db51a5 besu-25.12.0.tar.gz
New Contributors
- @jintukumardas made their first contribution in #9250
- @taxmeifyoucan made their first contribution in #9354
- @Bilogweb3 made their first contribution in #9440
- @MqllR made their first contribution in #9496
- @julien-marchand made their first contribution in #9505
- @saeeddawod made their first contribution in #9516
Full Changelog: 25.11.0...25.12.0
25.11.0
25.11.0 - Fusaka Mainnet Release
Important
This is the Fusaka Mainnet-ready release. This is a mandatory update for Mainnet users.
- Adds Osaka, BPO1, and BPO2 fork times for Mainnet
- Increases the Mainnet gas limit to 60M.
All Mainnet nodes must be updated before the activation of the Fusaka fork:
| Network | Fork Name | Time (UTC) | Epoch | Start Slot | Unix Timestamp |
|---|---|---|---|---|---|
| Mainnet | Fusaka | 2025-12-03 21:49:11 | 411392 | 13,164,544 | 1764798551 |
| Mainnet | BPO 1 | 2025-12-09 14:21:11 | 412672 | 13,205,504 | 1765290071 |
| Mainnet | BPO 2 | 2026-01-07 01:01:11 | 419072 | 13,410,304 | 1767747671 |
Upcoming Breaking Changes
- Deprecated CLI options
--Xbonsai-parallel-tx-processing-enabledis deprecated since 25.7.0. Use--bonsai-parallel-tx-processing-enabledinstead.--Xsnapsync-server-enabledis deprecated since 25.7.0. Use--snapsync-server-enabledinstead.--Xsnapsync-synchronizer-pre-merge-headers-only-enabledis deprecated since 25.7.0. Use--snapsync-synchronizer-pre-checkpoint-headers-only-enabledinstead.--Xhistory-expiry-pruneis deprecated since 25.7.0. Use--history-expiry-pruneinstead.
- 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
Additions and Improvements
- Add Osaka, BPO1 and BPO2 fork times for mainnet #9380
- Increase mainnet gas limit to 60M #9339
- Add blockTimestamp to receipt logs for
eth_getBlockReceiptsandeth_getTransactionReceiptresults #9294 - Upgrade to execution-spec-tests v5.3.0 #9301
- Update to netty 4.2.7.Final #9330
- Ability to enable/disable stack, storage and returnData tracing data in debug_traceStandardBlockToFile and debug_traceStandardBadBlockToFile endpoints #9183
- Update to tuweni 2.7.2 #9338
- Support blob fee market when zeroBaseFee enabled for forks with blobs #9344
New Contributors
Full Changelog: 25.10.0...25.11.0
a91b07434e7c4a57bb336888f5262b6e92518bf5fd8323624f74b0b5637c28d5 besu-25.11.0.zip
d38533bb4c02dd1363ddf48552ba2acaabf9ec7dafde208393b43adbfeb70946 besu-25.11.0.tar.gz
25.10.0
25.10.0 - Fusaka Testnet Release
Important
This is an optional update for Mainnet users. This is a recommended update for Holesky, Sepolia and Hoodi users for the upcoming Fusaka hardfork. There will be another release before the Mainnet Fusaka hardfork.
Fusaka Hardfork details: https://eips.ethereum.org/EIPS/eip-7607#activation
- Holešky scheduled to fork on 2025-10-01 08:48:00
- Sepolia scheduled to fork on 2025-10-14 07:36:00
- Hoodi scheduled to fork on 2025-10-28 18:53:12
Upcoming Breaking Changes
- Deprecated CLI options
--Xbonsai-parallel-tx-processing-enabledis deprecated since 25.7.0. Use--bonsai-parallel-tx-processing-enabledinstead.--Xsnapsync-server-enabledis deprecated since 25.7.0. Use--snapsync-server-enabledinstead.--Xsnapsync-synchronizer-pre-merge-headers-only-enabledis deprecated since 25.7.0. Use--snapsync-synchronizer-pre-checkpoint-headers-only-enabledinstead.--Xhistory-expiry-pruneis deprecated since 25.7.0. Use--history-expiry-pruneinstead.
- 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
Breaking Changes
Additions and Improvements
- Update spring security framework (toml parsing) #9153
- Update grpc and guava #9150
- Implement optional sender balance checks in the layered txpool #9176
- Add
--cache-last-block-headersflag to cache the last n block headers persisted to the blockchain #9223 - Manage unexpected exceptions during block creation #9208
- Add
--cache-last-block-headers-preload-enabledflag to enable preloading the block headers cache during startup time #9248 - Upgrade to execution-spec-tests v5.2.0 #9226, #9242
- Add blockTimestamp to
eth_getLogsresult #9278 - Add
--ethstats-report-intervalCLI option to control ethstats reporting frequency instead of using hardcoded 5-second interval #9271 - Performance improvements to EQ opcode #9229
- Update jc-kzg dependency #9261
- Add
isCancelledmethod toTransactionEvaluationContext. That way selectors could check if the block creation has been cancelled or in timeout #9285 - Performance improvements for MOD related opcodes #9188 thanks to @thomas-quadratic
Bug fixes
- Fix eth_subscribe RPC failing returning a block response #9212
- Fix ethstats integration failing to provide block updates to ethstats server #9220
New Contributors
- @nethoxa made their first contribution in #9231
- @jintukumardas made their first contribution in #9250
- @dhvogel made their first contribution in #9271
- @isuniverseok-ua made their first contribution in #9280
- @thomas-quadratic made their first contribution in #9188
- @moodmosaic made their first contribution in #9188
Full Changelog: 25.9.0...25.10.0
a67ba604f278b784cb427a1ad514c97c680cb83cd09594143e34428bafc7ff62 besu-25.10.0.zip
bc9d0b2d2206c0565b57e23069e20751836595bd3fa0e0b9fc263388ff6c0bb6 besu-25.10.0.tar.gz
25.10.0-RC2
25.10.0-RC2
Important
This RC is a recommended update for Holesky and Sepolia users for the Fusaka hardfork.
This RC is still pending burn in for mainnet.
This RC includes an update for a dependency used in PeerDAS.
There is likely to be another release before Hoodi's Fusaka fork.
Upcoming Breaking Changes
- Deprecated CLI options
--Xbonsai-parallel-tx-processing-enabledis deprecated since 25.7.0. Use--bonsai-parallel-tx-processing-enabledinstead.--Xsnapsync-server-enabledis deprecated since 25.7.0. Use--snapsync-server-enabledinstead.--Xsnapsync-synchronizer-pre-merge-headers-only-enabledis deprecated since 25.7.0. Use--snapsync-synchronizer-pre-checkpoint-headers-only-enabledinstead.--Xhistory-expiry-pruneis deprecated since 25.7.0. Use--history-expiry-pruneinstead.
- 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
Additions and Improvements
Full Changelog: 25.9.0...25.10.0-RC2
725ff15187f8b37caa860d383f4f78b36a99e904ec835f7390087dae9449a17a besu-25.10.0-RC2.zip
8ceffc213596ca5cef3a821020b00026f0f82316e2ec519cc9152407c3c6418a besu-25.10.0-RC2.tar.gz
25.10.0-RC1
25.10.0-RC1
Important
This RC is an optional update for Holesky and Sepolia users. 25.9.0 remains the official Fusaka Testnet release.
You only need to upgrade to this release if you're experiencing the eth_subscribe or ethstats known issue from 25.9.0.
This RC is still pending burn in for mainnet.
Fusaka Hardfork details: https://eips.ethereum.org/EIPS/eip-7607#activation
- Holešky scheduled to fork on 2025-10-01 08:48:00
- Sepolia scheduled to fork on 2025-10-14 07:36:00
- Hoodi scheduled to fork on 2025-10-28 18:53:12
Breaking Changes
Upcoming Breaking Changes
- Deprecated CLI options
--Xbonsai-parallel-tx-processing-enabledis deprecated since 25.7.0. Use--bonsai-parallel-tx-processing-enabledinstead.--Xsnapsync-server-enabledis deprecated since 25.7.0. Use--snapsync-server-enabledinstead.--Xsnapsync-synchronizer-pre-merge-headers-only-enabledis deprecated since 25.7.0. Use--snapsync-synchronizer-pre-checkpoint-headers-only-enabledinstead.--Xhistory-expiry-pruneis deprecated since 25.7.0. Use--history-expiry-pruneinstead.
- 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
Additions and Improvements
- Update spring security framework (toml parsing) #9153
- Update grpc and guava #9150
- Implement optional sender balance checks in the layered txpool #9176
- Add
--cache-last-block-headersflag to cache the last n block headers persisted to the blockchain #9223 - Manage unexpected exceptions during block creation #9208
- Upgrade to execution-spec-tests v5.2.0 #9226, #9242
Bug fixes
- Fix eth_subscribe RPC failing to return a block response #9212
- Fix ethstats integration failing to provide block updates to ethstats server #9220
Full Changelog: 25.9.0...25.10.0-RC1
f0390f431612771485a68e4e9e2e177f35243aacc2eec91d4cc00e4f25cf5df1 besu-25.10.0-RC1.zip
9e62ffe9722ea1e20913d1428db0e4039c070298876857528b78e23e8ef1d7b6 besu-25.10.0-RC1.tar.gz
25.9.0
25.9.0 - Fusaka Testnet Release
Important
This is an optional update for Mainnet users. This is a required update for Holesky, Sepolia and Hoodi users for the upcoming Fusaka hardfork. There is likely to be another release before Hoodi and maybe before Sepolia.
Fusaka Hardfork details: https://eips.ethereum.org/EIPS/eip-7607#activation
- Holešky scheduled to fork on 2025-10-01 08:48:00
- Sepolia scheduled to fork on 2025-10-14 07:36:00
- Hoodi scheduled to fork on 2025-10-28 18:53:12
Known issues
Affects users of eth_subscribe (WebSocket) eg SSV, and ethstats integration
- symptom:
io.vertx.core.json.EncodeException: Failed to encode as JSON: Java 8 optional type - fixes and more info: #9212 and #9220
- if you experience this issue, you can downgrade to the previous released version of Besu, or build off main if that is an option for your environment.
- fixes will be included in the next Besu release.
Breaking Changes
- Remove deprecated option
--bonsai-maximum-back-layers-to-load(deprecated since 23.4.0). Use--bonsai-historical-block-limitinstead
Upcoming Breaking Changes
- Deprecated CLI options
--Xbonsai-parallel-tx-processing-enabledis deprecated since 25.7.0. Use--bonsai-parallel-tx-processing-enabledinstead.--Xsnapsync-server-enabledis deprecated since 25.7.0. Use--snapsync-server-enabledinstead.--Xsnapsync-synchronizer-pre-merge-headers-only-enabledis deprecated since 25.7.0. Use--snapsync-synchronizer-pre-checkpoint-headers-only-enabledinstead.--Xhistory-expiry-pruneis deprecated since 25.7.0. Use--history-expiry-pruneinstead.
- 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
Additions and Improvements
- Update log4j #9131
- Update netty #9156
- Expose new method to query hardfork by block number Plugin API #9115
- Support loading multiple transaction selector plugins #8743
- Configurable limit for how much time plugins are allowed take, to propose transactions, during block creation #9184
- Add Osaka, BPO1 and BPO2 fork times for holesky, hoodi and sepolia #9196
Performance
- Add jmh benchmarks for some compute-related opcodes #9069
- Improve EcRecover precompile performance #9053
- Improve CallDataCopy worst case scenario #9152
- Improve EEST mod_vul_guido_3_even use case #9158
- Improve FCU performance in case of long non finality issues #9193
New Contributors
Full Changelog: 25.8.0...25.9.0
e8f93cd8f9ca4f56346c2cc04b93437f25dbf455b387f72c0e3a0fdd4bc930f1 besu-25.9.0.zip
8f881667ae5e62970270d8184e6555657b12b3f9fa1c77114f7f8497118f6bc6 besu-25.9.0.tar.gz
25.8.0
25.8.0
This is a required update for all users.
Highlights
Performance updates
- Sync is faster
- Sync uses less memory and CPU
- Block creation is faster
Security updates
- Dependency updates including fixing CVEs
Breaking Changes
- Change in behavior for
eth_estimateGasto improve accuracy when used on a network with a base fee market.- if there are no gas pricing parameters specified in the request, then gas price for the transaction is set to the base fee value #8888
- however, if you specify gas price of 0, the estimation will fail if the baseFee is > 0
- Remove PoAMetricsService and IbftQueryService which have been deprecated since 2019 and are replaced by PoaQueryService and BftQueryService respectively #8940
- Remove deprecated
Quantity.getValuemethod (deprecated since 2019) #8968 - Support for block creation on networks running a pre-Byzantium fork is removed, after being deprecated for a few months. If still running a pre-Byzantium network, it needs to be updated to continue to produce blocks #9005
- Remove support for Ethereum protocol version
eth/67. #9008. - Abort startup if boolean command line options are specified more than once #8898
- Ubuntu 20.04 is no longer supported. You need at least 22.04 (required for native libraries).
- Improve performance of OperandStack resizes for deep stacks (> 100 elements). Impacts general EVM performance while working with deep stacks #8869
Upcoming Breaking Changes
- Deprecated CLI options
--Xbonsai-parallel-tx-processing-enabledis deprecated since 25.7.0. Use--bonsai-parallel-tx-processing-enabledinstead.--Xsnapsync-server-enabledis deprecated since 25.7.0. Use--snapsync-server-enabledinstead.--Xsnapsync-synchronizer-pre-merge-headers-only-enabledis deprecated since 25.7.0. Use--snapsync-synchronizer-pre-checkpoint-headers-only-enabledinstead.--Xhistory-expiry-pruneis deprecated since 25.7.0. Use--history-expiry-pruneinstead.
- 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
Additions and Improvements
- Improve transaction simulation and gas estimation when no gas pricing is present #8888
- Add option to trace reference tests during execution #8878
- Expose methods to query hardfork by block header or for the next block in the Plugin API #8909
- Add
WorldStateServiceto the plugin API #9024 - Wait for peers before starting Backward Sync #9003
- LUKSO Mainnet Pectra Hardfork #9070
Dependencies
- Generate distribution dependencies catalog #8987
- Update commons dependencies #9114
- resolves CVE-2025-48924
- resolves CVE-2020-15250
- Update Netty #9112
- resolves CVE-2025-55163
Performance
- Improve the sync performance by not RLP decoding bodies during sync. This means we are using less memory and CPU, allowing us to increase the parallelism of the download pipeline, which has been increased from 4 to 8. Can be reduced again with
--Xsynchronizer-downloader-parallelism=4#8959 - Enable decoding for large RPC requests #8877
- Add
--attempt-cache-bustto evmtool benchmark subcommand #8985 - Add gas usage metric to eth_call #9019
- Improve P256Verify precompile performance #9035
Fusaka devnets
Bug fixes
- Fix bug with
eth_estimateGason QBFT - use zero address when doing simulation againstpendingblock #9031 - Fix bug with bonsai when parallel transaction processing is enabled #9113
e6e1bf8756768a1c6c3b193c29cc76c816cf8b4186b9fa4209c84d0ed3d9afd7 besu-25.8.0.zip
93715c6cf21e1455bed1e16a5a7444aa69604d23ef337f90ef7a508a5deeba4a besu-25.8.0.tar.gz
25.7.0
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
- 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