Releases: hyperledger/besu
24.10.0
24.10.0
This is a recommended update for mainnet users.
This release includes some breaking changes. Please carefully read the following notes before you update your node.
Key Highlights
- For engine_getBlobsV1 - Keep track of blobs that are part of multiple transactions
- Fix RocksDBException during snap sync
- Add
--ephemery
network support for Ephemery Testnet - thanks @gconnect!
For Private Networks
- Early access support for empty block period in QBFT with
xemptyblockperiodseconds
- thanks @amsmota!
Breaking Changes
- Besu will now fail to start if any plugins encounter errors during initialization. To allow Besu to continue running despite plugin errors, use the
--plugin-continue-on-error
option. #7662
Upcoming Breaking Changes
- k8s (KUBERNETES) Nat method is now deprecated and will be removed in a future release
--host-whitelist
has been deprecated in favor of--host-allowlist
since 2020 and will be removed in a future release
Additions and Improvements
- Remove privacy test classes support #7569
- Add Blob Transaction Metrics #7622
- Early access support for
xemptyblockperiodseconds
in QBFT #6965 - LUKSO Cancun Hardfork #7686
- Add configuration of Consolidation Request Contract Address via genesis configuration #7647
- Interrupt pending transaction processing on block creation timeout #7673
- Align gas cap calculation for transaction simulation to Geth approach #7703
- Expose chainId in the
BlockchainService
7702 - Add support for
chainId
inCallParameters
#7720 - Add
--ephemery
network support for Ephemery Testnet #7563 thanks to @gconnect - Add configuration of Consolidation Request Contract Address via genesis configuration #7647
Bug fixes
- Fix mounted data path directory permissions for besu user #7575
- Fix for
debug_traceCall
to handle transactions without specified gas price. #7510 - Corrects a regression where custom plugin services are not initialized correctly. #7625
- Fix for IBFT2 chains using the BONSAI DB format #7631
- Fix reading
tx-pool-min-score
option from configuration file #7623 - Fix an unhandled PeerTable exception #7733
- Fix RocksDBException: Busy leading to MerkleTrieException: Unable to load trie node value #7745
- If a BFT validator node is syncing, pause block production until sync has completed #7657
- Fix eth_feeHistory rewards when bounded by configuration #7750
- For engine_getBlobsV1 - Keep track of blobs that are part of multiple transactions #7723
2c3833aae5c7461d6bbb54dc5f25ad105bcc591b6385284b5afda0907909c601 besu-24.10.0.zip
0648e108614861b04537a4017d63bddf5bae88c738bccd5942f76c6d544dcac2 besu-24.10.0.tar.gz
24.9.1
24.9.1
Upcoming Breaking Changes
Breaking Changes
- Receipt compaction is enabled by default. It will no longer be possible to downgrade Besu to versions prior to 24.5.1.
Additions and Improvements
- Add 'inbound' field to admin_peers JSON-RPC Call #7461
- Add pending block header to
TransactionEvaluationContext
plugin API #7483 - Add bootnode to holesky config #7500
- Implement engine_getClientVersionV1 #7512
- Performance optimzation for ECMUL (1 of 2) #7509
- Performance optimzation for ECMUL (2 of 2) #7543
- Include current chain head block when computing
eth_maxPriorityFeePerGas
#7485 - Remove (old) documentation updates from the changelog #7562
- Update Java and Gradle dependecies #7571
- Layered txpool: new options
--tx-pool-min-score
to remove a tx from pool when its score is lower than the specified value #7576 - Add
engine_getBlobsV1
method to the Engine API #7553
Bug fixes
- Fix tracing in precompiled contracts when halting for out of gas #7318
- Correctly release txpool save and restore lock in case of exceptions #7473
- Fix for
eth_gasPrice
could not retrieve block error #7482 - Correctly drops messages that exceeds local message size limit #5455
- DebugMetrics: Fixed a
ClassCastException
occurring inDebugMetrics
when handling nested metric structures. Previously,Double
values within these structures were incorrectly cast toMap
objects, leading to errors. This update allows for proper handling of both direct values and nested structures at the same level. Issue# #7383 evmtool
was not respecting the--genesis
setting, resulting in unexpected trace results. #7433- The genesis config override
contractSizeLimit
was not wired into code size limits #7557 - Fix incorrect key filtering in LayeredKeyValueStorage stream #7535
- Layered txpool: do not send notifications when moving tx between layers #7539
- Layered txpool: fix for unsent drop notifications on remove #7538
- Honor block number or tag parameter in eth_estimateGas and eth_createAccessList #7502
c0b949490459370b88ed96b8e3050449074aa7ad59786344f0ab42bc13e9f0c3 besu-24.9.1.tar.gz
cf8fb04a83d4efe990975d597d4145929852368f9c50c4ec6094790fa3ce95ea besu-24.9.1.zip
docker pull docker.io/hyperledger/besu:24.9.1
24.9.0
24.9.0
Due to a GitHub Actions pipeline defect, this release is deprecated in favour of https://github.com/hyperledger/besu/releases/tag/24.9.1
5b54f51de9d86251b1b4dfd1d991b21dc29b2a52298be0b8831211baa2be18b1 besu-24.9.0.tar.gz
15eedef6849a7614bb13793cae40c4723ae26c95fb162957459930792437dfe8 besu-24.9.0.zip
24.8.0
24.8.0
24.8.0 is a small but mighty release that is strongly recommended for all Mainnet users. It contains an important stack handling update as well as improvements to the RPC service, plug-in API, and support for tracing private transactions. There are some breaking changes upcoming, so carefully review the notes as usual. More details available below:
Upcoming Breaking Changes
- 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.
- --Xbonsai-limit-trie-logs-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
besu storage x-trie-log
subcommand is deprecated, usebesu storage trie-log
instead- Allow configuration of Withdrawal Request Contract Address via genesis configuration #7356
Breaking Changes
- Remove long-deprecated
perm*whitelist*
methods #7401
Additions and Improvements
- Expose set finalized/safe block in plugin api BlockchainService. These method can be used by plugins to set finalized/safe block for a PoA network (such as QBFT, IBFT and Clique).#7382
- In process RPC service #7395
- Added support for tracing private transactions using
priv_traceTransaction
API. #6161 - Wrap WorldUpdater into EVMWorldupdater #7434
- Bump besu-native to 0.9.4 #7456
Bug fixes
- Correct entrypoint in Docker evmtool #7430
- Fix protocol schedule check for devnets #7429
- Fix behaviour when starting in a pre-merge network #7431
Release artifacts
9671157a623fb94005357bc409d1697a0d62bb6fd434b1733441bb301a9534a4 besu-24.8.0.tar.gz
9ee217d2188e8da89002c3f42e4f85f89aab782e9512bd03520296f0a4dcdd90 besu-24.8.0.zip
docker pull docker.io/hyperledger/besu:24.8.0
24.7.1
Breaking Changes
- Remove deprecated sync modes (X_SNAP and X_CHECKPOINT). Use SNAP and CHECKPOINT instead #7309
- Remove PKI-backed QBFT (deprecated in 24.5.1) Other forms of QBFT remain unchanged. #7293
- Do not maintain connections to PoA bootnodes #7358. See #7314 for recommended alternative behaviour.
Upcoming Breaking Changes
- 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.
- --Xbonsai-limit-trie-logs-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
besu storage x-trie-log
subcommand is deprecated, usebesu storage trie-log
instead
Additions and Improvements
--Xsnapsync-bft-enabled
option enables experimental support for snap sync with IBFT/QBFT permissioned Bonsai-DB chains #7140- Add support to load external profiles using
--profile
#7265 privacy-nonce-always-increments
option enables private transactions to always increment the nonce, even if the transaction is invalid #6593- Added
block-test
subcommand to the evmtool which runs blockchain reference tests #7293 - removed PKI backed QBFT #7310
- Implement gnark-crypto for eip-2537 #7316
- Improve blob size transaction selector #7312
- Added EIP-7702 #7237
- Implement gnark-crypto for eip-196 #7262
- Add trie log pruner metrics #7352
- Force bonsai-limit-trie-logs-enabled=false when sync-mode=FULL instead of startup error #7357
--Xbonsai-parallel-tx-processing-enabled
option enables executing transactions in parallel during block processing for Bonsai nodes- Reduce default trie log pruning window size from 30,000 to 5,000 #7365
- Add option
--poa-discovery-retry-bootnodes
for PoA networks to always use bootnodes during peer refresh, not just on first start #7314
Bug fixes
- Fix
eth_call
deserialization to correctly ignore unknown fields in the transaction object. #7323 - Prevent Besu from starting up with sync-mode=FULL and bonsai-limit-trie-logs-enabled=true for private networks #7357
- Add 30 second timeout to trie log pruner preload #7365
- Avoid executing pruner preload during trie log subcommands #7366
Release Artifacts
59ac352a86fd887225737a5fe4dad1742347edd3c3fbed98b079177e4ea8d544 besu-24.7.1.tar.gz
e616f8100f026a71a146a33847b40257c279b38085b17bb991df045cccb6f832 besu-24.7.1.zip
docker pull docker.io/hyperledger/besu:24.7.1
24.7.0
24.7.0
Upcoming Breaking Changes
- 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.
- --Xbonsai-limit-trie-logs-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
besu storage x-trie-log
subcommand is deprecated, usebesu storage trie-log
instead
Breaking Changes
Xp2p-peer-lower-bound
has been removed. #7247
Additions and Improvements
- Support for eth_maxPriorityFeePerGas #5658
- Improve genesis state performance at startup #6977
- Enable continuous profiling with default setting #7006
- A full and up to date implementation of EOF for Prague #7169
- Add Subnet-Based Peer Permissions. #7168
- Reduce lock contention on transaction pool when building a block #7180
- Update Docker base image to Ubuntu 24.04 #7251
- Add LUKSO as predefined network name #7223
- Refactored how code, initcode, and max stack size are configured in forks. #7245
- Nodes in a permissioned chain maintain (and retry) connections to bootnodes #7257
- Promote experimental
besu storage x-trie-log
subcommand to production-ready #7278 - Enhanced BFT round-change diagnostics #7271
Bug fixes
- Validation errors ignored in accounts-allowlist and empty list #7138
- Fix "Invalid block detected" for BFT chains using Bonsai DB #7204
- Chain download halt fix(#7162), fixes related issues: #7109 #6884
96cf47defd1d8c10bfc22634e53e3d640eaa81ef58cb0808e5f4265998979530 besu-24.7.0.tar.gz
7e92e2eb469be197af8c8ca7ac494e7a2e7ee91cbdb02d99ff87fb5209e0c2a0 besu-24.7.0.zip
docker pull docker.io/hyperledger/besu:24.7.0
24.5.4
The same as 24.5.2 with the only change being to fix the inability to build from source.
Bug fixes
- Rectify build from source failure with updated 0.8.4 artifacts from besu-native #7210
2d2082bd2ebebdc24a45007dd3c9c45ea9b430ef8a4b6025be4ef3376317f5d7 besu-24.5.4.tar.gz
9d8774a69f90986477aabd2d7713ed22df1e2f29ed6b62a1889ac21675026f83 besu-24.5.4.zip
docker pull docker.io/hyperledger/besu:24.5.4
24.6.0
Breaking Changes
- Java 21 has been enforced as minimum version to build and run Besu.
- With --bonsai-limit-trie-logs-enabled by default in this release, historic trie log data will be removed from the database unless sync-mode=FULL. It respects the --bonsai-historical-block-limit setting so shouldn't break any RPCs, but may be breaking if you are accessing this data from the database directly. Can be disabled with --bonsai-limit-trie-logs-enabled=false
- In profile=ENTERPRISE, use sync-mode=FULL (instead of FAST) and data-storage-format=FOREST (instead of BONSAI) #7186
- If this breaks your node, you can reset sync-mode=FAST and data-storage-format=BONSAI
Upcoming Breaking Changes
- 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.
- --Xbonsai-limit-trie-logs-enabled (and --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
- 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.
Additions and Improvements
- Add two counters to DefaultBlockchain in order to be able to calculate TPS and Mgas/s #7105
- Enable --Xbonsai-limit-trie-logs-enabled by default, unless sync-mode=FULL #7181
- Promote experimental --Xbonsai-limit-trie-logs-enabled to production-ready, --bonsai-limit-trie-logs-enabled #7192
- Promote experimental --Xbonsai-trie-logs-pruning-window-size to production-ready, --bonsai-trie-logs-pruning-window-size #7192
admin_nodeInfo
JSON/RPC call returns the currently active EVM version #7127- Improve the selection of the most profitable built block #7174
Bug fixes
- Make
eth_gasPrice
aware of the base fee market #7102
fa86e5c6873718cd568e3326151ce06957a5e7546b52df79a831ea9e39b857ab besu-24.6.0.tar.gz
8b2d3a674cd7ead68b9ca68fea21e46d5ec9b278bbadc73f8c13c6a1e1bc0e4d besu-24.6.0.zip
docker pull docker.io/hyperledger/besu:24.6.0
24.5.2
Additions and Improvements
- Remove deprecated Goerli testnet #7049
- Default bonsai to use full-flat db and code-storage-by-code-hash #6984
- New RPC methods miner_setExtraData and miner_getExtraData #7078
- Disconnect peers that have multiple discovery ports since they give us bad neighbours #7089
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
Bug fixes
- Fix parsing
gasLimit
parameter when its value is >Long.MAX_VALUE
#7116 - Skip validation of withdrawals when importing BFT blocks since withdrawals don't apply to BFT chains #7115
New Contributors
- @knowmost made their first contribution in #7005
- @seanyoung made their first contribution in #7054
Full Changelog: 24.5.1...24.5.2
4049bf48022ae073065b46e27088399dfb22035e9134ed4ac2c86dd8c5b5fbe9 besu-24.5.2.tar.gz
23966b501a69e320e8f8f46a3d103ccca45b53f8fee35a6543bd9a260b5784ee besu-24.5.2.zip
docker pull docker.io/hyperledger/besu:24.5.2
24.5.0
Due to a GitHub Actions quirk, this release is deprecated in favour of https://github.com/hyperledger/besu/releases/tag/24.5.1