Skip to content

Releases: hyperledger/besu

24.12.2

16 Dec 01:58
Compare
Choose a tag to compare

24.12.2

This is a hotfix release based on 24.12.1. You only need to upgrade if you're already using the account state overrides parameter for eth_call - this functionality was introduced in 24.12.0.

The only difference compared with 24.12.1 is a hotfix for the serialization of account state overrides for eth_call when movePrecompileToAddress is present.

Operational Change / Risk in 24.12.x Series Releases

  • We've noticed when upgrading besu to 24.12.0 that some nodes can freeze up to 2 hours when opening RocksDB database. It is related to a change in one default configuration on RocksDB (besu database layer), as we moved from version 8.3.2 in 24.10.0 to version 9.7.3 in 24.12.0. This change triggers some compaction work depending on the size of the database to apply the new configuration (recommended). All the upgraded nodes don't face the freeze, as the compaction can still happen in the background, but some users reported up to 2 hours freeze. You can find the details in this issue : facebook/rocksdb#13208

Bug fixes

  • Fix serialization of state overrides when movePrecompileToAddress is present #8204 - only relevant for eth_call account state overrides. This functionality was introduced in 24.12.0.

ea6b429fc0bfa1e6d0469c1aa0c48268ea00a1043c7874dfdbdc9714cf8baf28 besu-24.12.2.zip
13b48efbe0a14c8f1c957ce45acc1832876412ab9ccbe3cbd0d6631ace34ed11 besu-24.12.2.tar.gz

24.12.1

13 Dec 00:39
Compare
Choose a tag to compare

24.12.1 Hotfix

This is a hotfix to address publishing besu maven artifacts. There are no issues with 24.12.0 other than incomplete artifact publishing, and there is no functional difference between 24.12.0 and 24.12.1 release binaries.

in 24.12.x series releases Besu has switched to a platform bill-of-materials style publishing. If your project uses besu deployment artifacts, note that you will need to alter your dependencies to use platform dependencies instead.

Operational Change / Risk in 24.12.x Series Releases

  • We've noticed when upgrading besu to 24.12.0 that some nodes can freeze up to 2 hours when opening RocksDB database. It is related to a change in one default configuration on RocksDB (besu database layer), as we moved from version 8.3.2 in 24.10.0 to version 9.7.3 in 24.12.0. This change triggers some compaction work depending on the size of the database to apply the new configuration (recommended). All the upgraded nodes don't face the freeze, as the compaction can still happen in the background, but some users reported up to 2 hours freeze. You can find the details in this issue : facebook/rocksdb#13208

Bug fixes

  • Fix BOM pom publication to Artifactory #8201

87bbd9d175048ce9b42d2470354ce33ca8637a1bcb5e9cb13bd8e0f975a1eaa2 besu-24.12.1.zip
b7816b4207c240df50c7cb6416e7a1a5053c50400df803767e76b058758d78fa besu-24.12.1.tar.gz

24.12.0

12 Dec 02:16
101bd06
Compare
Choose a tag to compare

24.12.0

This is an optional update.

This release includes some breaking changes. If you are monitoring Besu with Grafana, you will need to update to the latest Dashboard from https://grafana.com/grafana/dashboards/16455-besu-full/. Also please carefully read the following notes before you update your node.

Operational Change / Risk in 24.12.x Series Releases

  • We've noticed when upgrading besu to 24.12.0 that some nodes can freeze up to 2 hours when opening RocksDB database. It is related to a change in one default configuration on RocksDB (besu database layer), as we moved from version 8.3.2 in 24.10.0 to version 9.7.3 in 24.12.0. This change triggers some compaction work depending on the size of the database to apply the new configuration (recommended). All the upgraded nodes don't face the freeze, as the compaction can still happen in the background, but some users reported up to 2 hours freeze. You can find the details in this issue : facebook/rocksdb#13208

Breaking Changes

  • Removed Retesteth rpc service and commands #7833
  • TLS for P2P (early access feature) has been removed #7942
  • In the plugin API, BesuContext has been renamed to ServiceManager to better reflect its function, plugins must be updated to work with this version
  • With the upgrade of the Prometheus Java Metrics library, there are the following changes:
    • Gauge names are not allowed to end with total, therefore the metric besu_blockchain_difficulty_total is losing the _total suffix

    • The _created timestamps are not returned by default, you can set the env var BESU_OPTS="-Dio.prometheus.exporter.includeCreatedTimestamps=true" to enable them

    • Some JVM metrics have changed name to adhere to the OTEL standard (see the table below), Besu Full Grafana dashboard is updated to support both names

      Old Name New Name
      jvm_memory_bytes_committed jvm_memory_committed_bytes
      jvm_memory_bytes_init jvm_memory_init_bytes
      jvm_memory_bytes_max jvm_memory_max_bytes
      jvm_memory_bytes_used jvm_memory_used_bytes
      jvm_memory_pool_bytes_committed jvm_memory_pool_committed_bytes
      jvm_memory_pool_bytes_init jvm_memory_pool_init_bytes
      jvm_memory_pool_bytes_max jvm_memory_pool_max_bytes
      jvm_memory_pool_bytes_used jvm_memory_pool_used_bytes

Upcoming Breaking Changes

  • Plugin API will be deprecating the BesuContext interface to be replaced with the ServiceManager interface.
  • 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
  • --host-whitelist has been deprecated in favor of --host-allowlist since 2020 and will be removed in a future release
  • 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

Additions and Improvements

  • Fine tune already seen txs tracker when a tx is removed from the pool #7755
  • Support for enabling and configuring TLS/mTLS in WebSocket service. #7854
  • Create and publish Besu BOM (Bill of Materials) #7615
  • Update Java dependencies #7786
  • Add a method to get all the transaction in the pool, to the TransactionPoolService, to easily access the transaction pool content from plugins #7813
  • Upgrade RocksDB JNI library from version 8.3.2 to 9.7.3 #7817
  • Add a method to check if a metric category is enabled to the plugin API #7832
  • Add a new metric collector for counters which get their value from suppliers #7894
  • Add account and state overrides to eth_call #7801 and eth_estimateGas #7890
  • Add RPC WS options to specify password file for keystore and truststore #7970
  • Prometheus Java Metrics library upgraded to version 1.3.3 #7880
  • Add histogram to Prometheus metrics system #7944
  • Improve newPayload and FCU logs #7961
  • Proper support for pending block tag when calling eth_estimateGas and eth_createAccessList #7951

Bug fixes

  • Fix registering new metric categories from plugins #7825
  • Fix CVE-2024-47535 7878
  • Fix QBFT prepared block based proposal validation #7875
  • Correct default parameters for frontier transactions in eth_call and eth_estimateGas #7965
  • Correctly parse nonce as hex in eth_call account overrides #7999

edd686efaf4a6b0bcd4457dbd5f195554094209f505cfe311c270cad6060004f besu-24.12.0.zip
74d20b2a4b3da659f608d65c09ab95d2187dc2c54372d9f7330bf5190d5e7124 besu-24.12.0.tar.gz

24.10.0

17 Oct 23:31
141eb4b
Compare
Choose a tag to compare

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 in CallParameters #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

16 Sep 17:09
b18d150
Compare
Choose a tag to compare

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 in DebugMetrics when handling nested metric structures. Previously, Double values within these structures were incorrectly cast to Map 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

10 Sep 17:52
2881994
Compare
Choose a tag to compare

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

19 Aug 18:02
ac9f8bb
Compare
Choose a tag to compare

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, use besu 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

01 Aug 05:14
51bb6c7
Compare
Choose a tag to compare

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, use besu 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

11 Jul 20:39
3a73dcc
Compare
Choose a tag to compare

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, use besu 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

12 Jun 07:03
8425b1e
Compare
Choose a tag to compare

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