Skip to content

Releases: hyperledger/besu

24.1.2

14 Feb 16:45
a28394b
Compare
Choose a tag to compare

24.1.2 - Besu is Dencun Ready

This release is the minimum version that is required for the upcoming Ethereum Mainnet Dencun upgrade on March 13th. You must upgrade to this version (or greater) before then, or your node will no longer follow the chain. This is also a required version for Besu nodes on Ethereum Classic. This release does not contain other fixes or improvements. We plan on releasing more fixes, improvements, and features in our next release.

  • Fix ETC Spiral upgrade breach of consensus #6524
  • Adds timestamp to enable Cancun upgrade on mainnet #6545

Full Changelog: 24.1.1...24.1.2

Download Links
https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/24.1.2/besu-24.1.2.zip sha256 9033f300edd81c770d3aff27a29f59dd4b6142a113936886a8f170718e412971

https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/24.1.2/besu-24.1.2.tar.gz sha256 082db8cf4fb67527aa0dd757e5d254b3b497f5027c23287f9c0a74a6a743bf08

Release 24.1.1

26 Jan 01:42
Compare
Choose a tag to compare

24.1.1

Breaking Changes

  • New EXECUTION_HALTED error returned if there is an error executing or simulating a transaction, with the reason for execution being halted. Replaces the generic INTERNAL_ERROR return code in certain cases which some applications may be checking for #6343
  • The Besu Docker images with openjdk-latest tags since 23.10.3 were incorrectly using UID 1001 instead of 1000 for the container's besu user. The user now uses 1000 again. Containers created from or migrated to images using UID 1001 will need to chown their persistent database files to UID 1000 #6360 - thanks @h4l
  • The deprecated --privacy-onchain-groups-enabled option has now been removed. Use the --privacy-flexible-groups-enabled option instead. #6411
  • The time that can be spent selecting transactions during block creation is not capped at 5 seconds for PoS and PoW networks, and for PoA networks, at 75% of the block period specified in the genesis, this to prevent possible DoS in case a single transaction is taking too long to execute, and to have a stable block production rate, but it could be a breaking change if an existing network used to have transactions that takes more time to executed that the newly introduced limit, if it is mandatory for these network to keep processing these long processing transaction, then the default value of block-txs-selection-max-time or poa-block-txs-selection-max-time needs to be tuned accordingly. #6423

Deprecations

Additions and Improvements

  • Optimize RocksDB WAL files, allows for faster restart and a more linear disk space utilization #6328
  • Disable transaction handling when the node is not in sync, to avoid unnecessary transaction validation work #6302
  • Introduce TransactionEvaluationContext to pass data between transaction selectors and plugin, during block creation #6381
  • Upgrade dependencies #6377
  • Upgrade com.fasterxml.jackson dependencies #6378
  • Upgrade Guava dependency #6396
  • Upgrade Mockito #6397
  • Upgrade tech.pegasys.discovery:discovery #6414
  • Options to tune the max allowed time that can be spent selecting transactions during block creation are now stable #6423

Bug fixes

  • INTERNAL_ERROR from eth_estimateGas JSON/RPC calls #6344
  • Fix Besu Docker images with openjdk-latest tags since 23.10.3 using UID 1001 instead of 1000 for the besu user #6360 - thanks @h4l
  • Fluent EVM API definition for Tangerine Whistle had incorrect code size validation configured #6382
  • Correct mining beneficiary for Clique networks in TraceServiceImpl #6390
  • Fix to gas limit delta calculations used in block production. Besu should now increment or decrement the block gas limit towards its target correctly (thanks @arbora) #6425
  • Ensure Backward Sync waits for initial sync before starting a session #6455
  • Silence the noisy DNS query errors #6458

Download Links

https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/24.1.1/besu-24.1.1.zip / sha256 e23c5b790180756964a70dcdd575ee2ed2c2efa79af00bce956d23bd2f7dc67c
https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/24.1.1/besu-24.1.1.tar.gz / sha256 4b0ddd5a25be2df5d2324bff935785eb63e4e3a5f421614ea690bacb5b9cb344

Errata

Note, due to a CI race with the release job, the initial published version of 24.1.1 were overwritten by artifacts generated from the same sources, but differ in their embedded timestamps. The initial SHAs are noted here but are deprecated:
https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/24.1.1/besu-24.1.1.zip / sha256 b6b64f939e0bb4937ce90fc647e0a7073ce3e359c10352b502059955070a60c6
https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/24.1.1/besu-24.1.1.tar.gz / sha256 cfcae04c30769bf338b0740ac65870f9346d3469931bb46cdba3b2f65d311e7a

24.1.0

10 Jan 20:55
ab4882c
Compare
Choose a tag to compare

24.1.0 Quarterly

This release is a strongly recommended update for all Mainnet users. 24.1.0 is a required release for the upcoming Ethereum testnet forks, the first of which is Goerli on the 17th of January. This release supports Sepolia and Holesky forks as well. This is also a required update for all ETC node operators as it contains the configurations for the Spiral hard fork. 24.1.0 contains some optional, but useful features for private networks.

This release includes the latest hotfix for the Mainnet halt Besu experienced on January 6th. A post-mortem of that bug can be found here. This release contains many related Bonsai fixes.

Deprecations

  • Forest pruning (pruning-enabled options) is deprecated and will be removed soon. To save disk space consider switching to Bonsai data storage format #6230

Additions and Improvements

  • Add error messages on authentication failures with username and password #6212
  • New Sequenced transaction pool. The pool is an evolution of the legacy pool and is likely to be more suitable to enterprise or permissioned chains than the layered transaction pool. Select to use this pool with --tx-pool=sequenced. Supports the same options as the legacy pool #6274
  • Set Ethereum Classic mainnet activation block for Spiral network upgrade #6267
  • Add custom genesis file name to config overview if specified #6297
  • Update Gradle plugins and replace unmaintained License Gradle Plugin with the actively maintained Gradle License Report #6275
  • Cancun forkids for non-mainnets #6322

Bug fixes

  • Hotfix for selfdestruct preimages on bonsai #6359
  • Fix trielog shipping issue during self destruct #6340
  • Mitigation for trielog failure #6315

Download Links

https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/24.1.0/besu-24.1.0.zip / sha256 d36c8aeef70f0a516d4c26d3bc696c3e2a671e515c9e6e9475a31fe759e39f64
https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/24.1.0/besu-24.1.0.tar.gz / sha256 602b04c0729a7b17361d1f0b39f4ce6a2ebe47932165add666560fe594d9ca99

23.10.3-hotfix

07 Jan 00:45
f3751af
Compare
Choose a tag to compare

23.10.3-hotfix

This is a hotfix for a selfdestruct defect that occurred on mainnet at block 18947893

  • Hotfix for selfdestruct preimages on bonsai [#6359]((#6359)
  • mitigation for trielog failure [#6315]((#6315)

This release fixes the root of the problem, but Besu needs to be resynced in order to repair the state. The fastest way to do this is to trigger a backward sync in Besu. After installing the hotfix, your CL client will need to have its beacon state reset and restored using checkpoint sync. Recovering from a deleted beacon chain is much faster if you have Checkpoint Sync setup, which is CL client specific.

Instructions on how to delete the beacon db, depends on your client. For example for Teku, you need to remove the beacon folder in the Teku data path. For other clients, refer to their documentation.

Most users should be good to go. If this doesn't work, please try the below instructions and report your problem to the Hyperledger Discord at https://discord.gg/hyperledger

Try the same process again, but force Besu to set its head back to a block prior to the problem block. This will require API access, and for this to work you have to enabled the DEBUG API with the following startup options:

--rpc-http-api=ETH,NET,WEB3,DEBUG

See RPC APIs for more details, changes to that param will require Besu to be restarted.

Once Besu is up and you have access to DEBUG apis, you can shutdown your CL client and clear its database. With Besu still up, set its head back to block 18947892 (0x1211F34 in hex) using the following API call:

curl -X POST --data '{"jsonrpc":"2.0","method":"debug_setHead","params":["0x1211F34"],"id":1}' http://localhost:8545

Then restart your CL. Your CL should optimistically sync the beacon chain using a checkpoint from the network, and this will trigger a backward sync in Besu.

If your client still isn't progressing, you can try to resync only the world state. It can take hours, but it is faster from a resync from scratch

curl -X POST --data '{"jsonrpc":"2.0","method":"debug_resyncWorldState","params":[],"id":1}' http://localhost:8545

Download Links

https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/23.10.3-hotfix/besu-23.10.3-hotfix.zip / sha256 1c37762909858a40eca749fb85b77fb4d1e918f247aff56d518144828bd85378
https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/23.10.3-hotfix/besu-23.10.3-hotfix.tar.gz / sha256 8e38e9fd0c16e049aa324effc96f9ec31dc06e82ea4995e9dd75d571394667af

23.10.3

06 Jan 16:13
4852f69
Compare
Choose a tag to compare

23.10.3

Additions and Improvements

  • Implement debug_traceCall #5885
  • Transactions that takes too long to evaluate, during block creation, are dropped from the txpool #6163
  • New option tx-pool-min-gas-price to set a lower bound when accepting txs to the pool #6098
  • Update OpenJDK latest Docker image to use Java 21 #6189
  • Allow a transaction selection plugin to specify custom selection results #6190
  • Add rpc-gas-cap to allow users to set gas limit to the RPC methods used to simulate transactions#6156
  • Fix the unavailability of address field when returning an Account entity on GraphQL in case of unreachable world state #6198
  • Update OpenJ9 Docker image to latest version #6226
  • Add error messages on authentication failures with username and password #6212
  • Add rocksdb usage to the storage subcommand to allow users and dev to check columns families usage #6185
  • Ethereum Classic Spiral network upgrade #6078

Bug fixes

  • Fix Docker image name clash between Besu and evmtool #6194
  • Fix logIndex in eth_getTransactionReceipt JSON RPC method #6206

Download Links

https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/23.10.3/besu-23.10.3.zip / sha256 da7ef8a6ceb88d3e327cacddcdb32218d1750b464c14165a74068f6dc6e0871a
https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/23.10.3/besu-23.10.3.tar.gz / sha256 73c834cf32c7bbe255d7d8cc7ca5d1eb0df8430b9114935c8dcf3a675b2acbc2

23.10.2

15 Nov 19:41
96f967f
Compare
Choose a tag to compare

Hyperledger Besu 23.10.2

23.10.2 is an optional upgrade for Ethereum public and private networks. It is a required update for Ethereum Classic Mordor network users (not for ETC mainnet yet), as it contains the configuration for the Spiral network upgrade (#6078). It is recommended for Mainnet and private networks as there are several patches to vulnerable dependencies.

Upcoming Changes

  • After we made the new layered TX pool default for all nodes in 23.10.0, it caused some confusion and configuration issues among private network users. We know many of you are currently using the legacy pool, as it is better suited for larger nonce-gaps and gas free networks. This is a formal announcement of an upcoming naming change from this pool to better reflect its usage in private networks. This will have accompanying configuration changes as well, so stay tuned for the 24.1.0 release notes. Thank you for your patience as we update the two transaction pool implementations.

Breaking Changes

  • TX pool eviction in the legacy TX pool now favours keeping oldest transactions (more likely to evict higher nonces, less likely to introduce nonce gaps) #6106 and #6146

Additions and Improvements

  • Ethereum Classic Spiral upgrade for the Mordor network #6078
  • Add a method to read from a Memory instance without altering its inner state #6073
  • Accept input and data field for the payload of transaction-related RPC methods #6094
  • Add APIs to set and get the min gas price a transaction must pay for being selected during block creation #6097
  • TraceService: return results for transactions in block #6087
  • New option --min-priority-fee that sets the minimum priority fee a transaction must meet to be selected for a block. #6080 #6083
  • Implement new miner_setMinPriorityFee and miner_getMinPriorityFee RPC methods #6080
  • Clique config option createemptyblocks to not create empty blocks #6082
  • Upgrade EVM Reference Tests to v13 (Cancun) #6114
  • Add yParity to GraphQL and JSON-RPC for relevant querise. 6119
  • Force tx replacement price bump to zero when zero base fee market is configured or --min-gas-price is set to 0. This allows for easier tx replacement in networks where there is not gas price. #6079
  • Introduce the possibility to limit the time spent selecting pending transactions during block creation, using the new experimental option Xblock-txs-selection-max-time on PoS and PoW networks (by default set to 5000ms) or Xpoa-block-txs-selection-max-time on PoA networks (by default 75% of the min block time) #6044
  • Remove LowestInvalidNonceCache from legacy transaction pool to make it more private networks friendly #6148
  • Optimization: Delete leftPad when capturing the stack before and after a frame execution #6102

Bug fixes

Download Links

https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/23.10.2/besu-23.10.2.zip
597ab71898d379180106baf24878239ed49acefea5772344fd359b0ff13fe19f
https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/23.10.2/besu-23.10.2.tar.gz
255818a5c6067a38aa8b565d8f32a49a172a7536a1d370673bbb75f548263c2c

23.10.1

26 Oct 17:04
287f0c2
Compare
Choose a tag to compare

23.10.1

Additions and Improvements

  • New option --tx-pool-priority-senders to specify a list of senders, that has the effect to prioritize any transactions sent by these senders from any source #5959
  • Cache last n blocks by using a new Besu flag --cache-last-blocks=n #6009
  • Optimize performances of RPC method eth_feeHistory #6011 #6035
  • Logging summary of plugins at Info as part of the config overview #5964 #6049
  • Layered tx pool memory improvements #5985 #5974
  • Update Bouncy Castle to 1.76, and force the use of the jdk18on variant #5748
  • Add GraphQL support for new fields in Cancun #5923 #5975
  • Add new configuration options to the EVM Fluent APIs #5930

Deprecations

  • --tx-pool-disable-locals has been deprecated for removal in favor of --tx-pool-no-local-priority, no semantic change, only a renaming #5959

Bug Fixes

  • Fix regression with t8n tool filling #5979
  • Fix EOF and EIP-4788 regressions in reference tests #6060

Download Links

23.10.1 build was updated during a build of 23.10.2.RC, which is on the way. Existing artifacts are correct at those URLs, but their SHAs have changed.

https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/23.10.1/besu-23.10.1.tar.gz / sha256: e27645f345583f3ee447e5418302382c6f8335d2da8707bdd20033aabd86ce4c
498afb6cb4d8e5cdeae0a00db000bd2f4ed97aa833b0467ffed9668ad326f335

https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/23.10.1/besu-23.10.1.zip / sha256: fb173acb93c72fbb74a6542051691ca2d3d5f54ea2f51026467a512f3a22106b
6a591bb4ae6f3df7371fee7676dcd1d34925c5c2e7790cc783037e4b0d8b6292

23.10.0

10 Oct 17:55
da905d1
Compare
Choose a tag to compare

23.10.0

Layered Transaction Pool: the new default transaction pool implementation

With this release the previously experimental Layered txpool is marked stable and enabled by default, so please read the following instructions if you used to tune txpool behavior, otherwise you can simply go with the default and enjoy the improved performance of the new txpool. More detailed information about the implementation of the Layered TxPool can be found here.

Upgrading to Layered Transaction Pool

If you do not specify any txpool option, then you can skip this section.
If you have tuned the txpool using one of these options: tx-pool-retention-hours, tx-pool-limit-by-account-percentage or tx-pool-max-size,
then you need to update your configuration as described below:

  • tx-pool-retention-hours: simply remove it, since it is not applicable in the Layered txpool, old transactions will eventually expire when the memory cache is full.
  • tx-pool-limit-by-account-percentage: replace it with tx-pool-max-future-by-sender, which specify the max number of sequential transactions of single sender are kept in the txpool, by default it is 200.
  • tx-pool-max-size: the Layered txpool is not limited by a max number of transactions, but by the estimated memory size the transactions occupy, so you need to remove this option, and to tune the max amount of memory* use the new option tx-pool-layer-max-capacity as described below.

You can still opt-out of the Layered txpool, setting tx-pool=legacy in config file or via cli argument, but be warned that the Legacy implementation will be deprecated for removal soon, so start testing the new implementation.

Configuring the Layered Transaction Pool

By default, the txpool is tuned for mainnet usage, but if you are using private networks or want to otherwise tune it, these are the new options:

  • tx-pool-max-future-by-sender: specify the max number of sequential transactions of a single sender are kept in the txpool, by default it is 200, increase it to allow a single sender to fit more transactions in a single block. For private networks, this can safely be set in the hundreds or thousands if you want to ensure future transactions (with large nonce gaps) remain in the pool.
  • tx-pool-layer-max-capacity: set the max amount of memory* in bytes, a single memory limited layer can occupy, by default is 12.5MB, keep in mind that there are 2 memory limited layers, so the expected memory consumption is twice the value specified by this option, so 25MB by default. Increase this value if you have spare RAM and the eviction rate is high for your network.
  • tx-pool-max-prioritized: set the max number of transactions allowed in the first layer, that only contains transactions that are candidate for inclusion in the next block creation task. It makes sense to limit the value to the max number of transactions that fit in a block in your network, by default is 2000.

*: the memory used by the txpool is an estimation, we are working to make it always more accurate.

Breaking Changes

  • Removed support for Kotti network (ETC) #5816
  • Layered transaction pool implementation is now stable and enabled by default, so the following changes to experimental options have been done #5772:
    • --Xlayered-tx-pool is gone, to select the implementation use the new --tx-pool option with values layered (default) or legacy
    • --Xlayered-tx-pool-layer-max-capacity, --Xlayered-tx-pool-max-prioritized and --Xlayered-tx-pool-max-future-by-sender just drop the Xlayered- and keep the same behavior

Additions and Improvements

  • Add access to an immutable world view to start/end transaction hooks in the tracing API#5836
  • Layered transaction pool implementation is now stable and enabled by default. If you want still to use the legacy implementation, use --tx-pool=legacy.
    By default, the new transaction pool is capped at using 25MB of memory, this limit can be raised using --layered-tx-pool-layer-max-capacity options #5772
  • Tune G1GC to reduce Besu memory footprint, and new besu-untuned start scripts to run without any specific G1GC flags #5879
  • Reduce engine_forkchoiceUpdatedV? response time by asynchronously process block added events in the transaction pool #5909

Bug Fixes

  • do not create ignorable storage on revert storage-variables subcommand #5830
  • fix duplicate key errors in EthScheduler-Transactions #5857
  • Don't put control characters, escaped or otherwise, in t8n stacktraces #5910

Download Links

https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/23.10.0/besu-23.10.0.tar.gz / sha256: 3c75f3792bfdb0892705b378f0b8bfc14ef6cecf1d8afe711d8d8687ed6687cf

https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/23.10.0/besu-23.10.0.zip / sha256: d5dafff4c3cbf104bf75b34a9f108dcdd7b08d2759de75ec65cd997f38f52866

23.7.3

27 Sep 04:46
aff1f97
Compare
Choose a tag to compare

23.7.3 - Holesky 2.0 Hotfix

This is an optional release, it is only required if you are running a Holesky node.

Additions and Improvements

  • Update Holesky config for re-launch #5890

Download Links

https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/23.7.3/besu-23.7.3.tar.gz / sha256: c12ca6a9861557e0bf8f27076f8c8afcce6f1564687e5f02bfdc96c2b18846ff

https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/23.7.3/besu-23.7.3.zip / sha256: 136596454f647c706130e3e2983bdbb4a1cbfaf2bbf6e999466754f9213c11f6

23.7.2

05 Sep 23:06
7f959f2
Compare
Choose a tag to compare

23.7.2

Additions and Improvements

  • Add new methods to OperationTracer to capture contexts enter/exit #5756
  • Add Holešky as predefined network name #5797

Breaking Changes

  • Add ABI-decoded revert reason to eth_call and eth_estimateGas responses #5705

Additions and Improvements

  • Add missing methods to the Transaction interface #5732
  • Add benchmark subcommand to evmtool #5754
  • JSON output is now compact by default. This can be overridden by the new --json-pretty-print-enabled CLI option. #5766
  • New eth_getBlockReceipts JSON-RPC method to retrieve all transaction receipts for a block in a single call #5771
  • Add new methods to OperationTracer to capture contexts enter/exit #5756

Bug Fixes

  • Make smart contract permissioning features work with london fork #5727
  • Add type to PendingTransactionDetail, fix eth_subscribe #5729
  • EvmTool "run" mode did not reflect contracts created within the transaction. #5755
  • Fixing snapsync issue with forest during the heal step #5776

Download Links

https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/23.7.2/besu-23.7.2.tar.gz / sha256: f74b32c1a343cbad90a88aa59276b4c5eefea4643ee542aba2bbf898f85ae242
https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/23.7.2/besu-23.7.2.zip / sha256: a233c83591fc277e3d1530c84bb5ea896abad717d796b5e3b856c79199132b75