Skip to content

Releases: hyperledger/besu

22.7.1 - Ready to Merge

22 Aug 18:11
c5ddf2b
Compare
Choose a tag to compare

22.7.1 - Mandatory Upgrade for The Merge on Ethereum Mainnet!

Hi folks! This is the big one... This update includes configurations that make Besu compatible with the Mainnet Merge! Make sure you read up on the Merge here to understand what is happening to both your node and the network (and check out this page to make sure you are prepared). The date for the Merge is likely to be the 15th of September and can be tracked here.

Since Besu releases on a two-weekly cadence, we anticipate one more (likely optional) release prior to the Merge with last minute fixes, cleanup, and more so stay tuned for that. Make sure your nodes are in sync prior to the 15th if you want to participate in history!

Additions and Improvements

  • Introduce a cap to reputation score increase #4230
  • Add experimental CLI option for --Xp2p-peer-lower-bound #4200
  • Improve pending blocks retrieval mechanism #4227
  • set mainnet terminal total difficulty #4260

Bug Fixes

  • Fixes off-by-one error for mainnet TTD fallback #4223
  • Fix off-by-one error in AbstractRetryingPeerTask #4254
  • Refactor and fix retrying get block switching peer #4256
  • Fix encoding of key (short hex) in eth_getProof #4261
  • Fix for post-merge networks fast-sync #4224, #4276

Download links

22.7.0

03 Aug 17:04
6eaa5b5
Compare
Choose a tag to compare

Release Notes

22.7.0 is our Quarterly release with some big fixes over the previous 22.4.4. This is a recommended update for all users on public networks and those using Bonsai. This release also make many improvements to underlying peering code for better peering on public networks. There are a number of fixes around Merge-related code and the robustness of Besu as a whole.

With the stability of Bonsai in 22.7.0 and some planned optimizations, we are anticipating changing it to the default storage format at some point in the future. We will have more to share on this in the coming months, but nothing more at this time.

This update also includes tweaks and optimizations for memory management, RocksDB, peering default values, and more. See the changelog below and in the last few release candidates for more details.

Bug Fixes

  • Empty headers are now accepted correctly (per Ethereum p2p Spec) when in a range of headers #4189
  • Transaction handling will now function correctly when the TTD boundary has been crossed in a Merged network (used to require a restart) #4186
  • Pandas will now only print once when Merging, not on every startup (sorry panda fans) #4194
  • Fix for ENR request order handling when peering #4179

Optimizations, Features, & Improvements

  • New flag (--engine-rpc-enabled) for forcing the Engine API to be present on a network with no TTD set #4190
  • Upgrade to Gradle 7.5 #4196
  • Upgrade spotless to 6.8.0 #4195
  • Changes to peer handling with DNS peers for peering improvements #4178

Download links

22.7.0-RC3

27 Jul 19:14
604855e
Compare
Choose a tag to compare
22.7.0-RC3 Pre-release
Pre-release

22.7.0-RC3

Known/Outstanding issues:

  • Besu requires a restart post-merge to re-enable remote transaction processing #3890
  • Investigation/improvement of peering performance is ongoing for post-merge test networks Ropsten and Kiln

Additions and Improvements

  • Engine API: Change expiration time for JWT tokens to 60s #4168
  • Sepolia mergeNetSplit block #4158
  • Goerli TTD #4160
  • Several logging improvements

Bug Fixes

  • fix for stack overflow when searching for TTD block #4169
  • fix for chain stuck issue #4175

Download links

22.7.0-RC2

20 Jul 20:50
02d8345
Compare
Choose a tag to compare
22.7.0-RC2 Pre-release
Pre-release

Improvements

  • JEMalloc included in this release. jemalloc is an alternative memory allocator that better handles concurrency and memory fragmentation. Like many other projects, we have discovered that besu benefits from using a modern alternative malloc implementation. In the latest release we have included a preference for the jemalloc library, and have found it to manage rocksdb memory much more effectively. In addition to adding this preference in the *nix besu startup script, jemalloc has been baked into our docker images by default. If you are not running docker besu in a docker container, linux users can leverage jemalloc simply by installing the jemalloc library (which most distributions have a package for)
  • RocksDB configuration changes. We have spent time researching how to configure our database technology (RocksDB) to gain better performance and address some recent regressions. We are seeing improvements on Block Import times and memory usage in total, so please update to this build if you are experiencing memory challenges.
  • Add a block to the bad blocks if it did not descend from the terminal block #4080
  • Backward sync exception improvements #4092
  • Remove block header checks during backward sync, since they will be always performed during block import phase #4098
  • Optimize the backward sync retry strategy #4095

Bug Fixes

  • Changed max message size in the p2p layer to 16.7MB from 10MB to improve peering performance #4120
  • Fixes for parent stateroot mismatch when using Bonsai storage mode (please report if you encounter this bug on this version) #4094
  • Above Bonsai related fixes have addressed situations where the event log was not indexed properly #3921
  • Fixes related to backward sync and reorgs #4097
  • Checkpoint sync with more merge friendly checkpoint blocks #4085
  • Fixes around RocksDB performance and memory usage #4128
  • Fix for RPC performance parallelization to improve RPC performance under heavy load #3959
  • Fix for post-Merge peering after PoW is removed in our logic for weighting peers #4116
  • Various logging changes to improve UX- Return the correct latest valid hash in case of bad block when calling engine methods #4056
  • Add a PoS block header rule to check that the current block is more recent than its parent #4066
  • Fixed a trie log layer issue on bonsai during reorg #4069
  • Fix transition protocol schedule to return the pre Merge schedule when reorg pre TTD #4078
  • Remove hash to sync from the queue only if the sync step succeeds #4105
  • The build process runs successfully even though the system language is not English #4102
  • Avoid starting or stopping the BlockPropagationManager more than once #4122

Download links

22.4.4

08 Jul 16:38
eefa93f
Compare
Choose a tag to compare

22.4.4

This release resolves known issues in 22.4.3 with respect to snap-sync and state root mismatch/worldstate unavailable issues. Certain configurations may still experience excessive off-heap memory consumption by rocksdb, which will be addressed by a future release in the 22.7.x series.

Additions and Improvements

  • Do not require a minimum block height when downloading headers or blocks #3911
  • When on PoS the head can be only be updated by ForkchoiceUpdate #3994
  • Add TTD and DNS to Sepolia config #4024

Bug Fixes

  • Fixed a snapsync issue that can sometimes block the healing step #3920
  • remove peer block height requirements for block fetching #3911
  • allow upgrade whether websockets enabled or not #4019
  • jwt auth on websockets #4039
  • Fixed a state root mismatch issue on bonsai that may appear occasionally #4041
  • Fixed a trie log layer issue on bonsai during reorg #4069

Download links
https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/22.4.4/besu-22.4.4.tar.gz
sha256: e7cfb082f6d7985e760fa2cd1e18c266777fafb48137d2a9c3b68ec3f6d2a732
https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/22.4.4/besu-22.4.4.zip
sha256: 84a7bee8fc35c78fd6d9e7bbdc5cd28c577d95487480bb03b9642a3111b71bc3

22.7.0-RC1

06 Jul 04:58
e79cf0e
Compare
Choose a tag to compare

Additions and Improvements

  • Do not require a minimum block height when downloading headers or blocks #3911
  • When on PoS the head can be only be updated by ForkchoiceUpdate #3994
  • Version information available in metrics #3997
  • Add TTD and DNS to Sepolia config #4024
  • Add terminal block hash and number to Ropsten genesis file #4026
  • Return type with value 0x0 when serializing legacy transactions #4027
  • Ignore ForkchoiceUpdate if newHead is an ancestor of the chain head #4055

Bug Fixes

  • Fixed a snapsync issue that can sometimes block the healing step #3920
  • Support free gas networks in the London fee market #4003
  • Limit the size of outgoing eth subprotocol messages. #4034
  • Fixed a state root mismatch issue on bonsai that may appear occasionally #4041

Download links

https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/22.7.0-RC1/besu-22.7.0-RC1.tar.gz
sha256: 60ad8b53402beb62c24ad791799d9cfe444623a58f6f6cf1d0728459cb641e63
https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/22.7.0-RC1/besu-22.7.0-RC1.zip
sha256: 7acfb3a73382bf70f6337e83cb7e9e472b4e5a9da88c5ed2fbd9e82fcf2046dc

22.4.3

16 Jun 18:48
963da3d
Compare
Choose a tag to compare

Additions and Improvements

  • [EXPERIMENTAL] Add checkpoint sync --sync-mode="X_CHECKPOINT" #3849
  • Support finalized and safe as tags for the block parameter in RPC APIs #3950
  • Added verification of payload attributes in ForkchoiceUpdated #3837
  • Add support for Gray Glacier hardfork #3961

Bug Fixes

  • alias engine-rpc-port parameter with the former rpc param name #3958

As we develop new and required functionality for the Merge, the team has discovered some regressions. For transparency for our production users and testers, we have provided the following known issues below.

Known Issues:

  • Under certain circumstances your node may encounter a state root mismatch, a resync is required to fix this. We are actively looking at fixes. #3891
  • On certain machines, RocksDB may cause an out of memory error. We are in the process of finalizing configuration changes to address these memory challenges. #3963
  • Related to the peering issue, sometimes a SnapSync may fail to complete or hang. If your node appears stuck, a restart of the node will fix this issue and should continue the sync. We are looking at both fixes and improvements to the logs to help users understand what is happening during a sync. #3746

Most of the above issues can be solved with a restart, and are not specific to 22.4.3. If you are a tester and encounter these bugs and would like to help provide feedback, please reach out on Discord with your configuration and details. This may help us. As always, Hyperledger Besu is an open-source project and we are always looking for direct contributions. Thank you for your patience and support!

https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/22.4.3/besu-22.4.3.tar.gz
sha256: f263e82c8dbe9aa23ac2863f82aea62a11b71d3deb9a415432e0fa604ff4a77c
https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/22.4.3/besu-22.4.3.zip
sha256: 144f4c407193cb66897ac5999b215507333df6b418c84d607bd68e16a179ab64

22.4.2

27 May 21:44
c8e0f88
Compare
Choose a tag to compare

22.4.2

Additions and Improvements

  • Engine API Update: Replace deprecated INVALID_TERMINAL_BLOCK with INVALID last valid hash 0x0 #3882
  • Deprecate experimental merge flag and engine-rpc-enabled flag #3875
  • Update besu-native dependencies to 0.5.0 for linux arm64 support
  • Update ropsten TTD to 100000000000000000000000

Bug Fixes

  • Stop backward sync if genesis block has been reached #3869
  • Allow to backward sync to request headers back to last finalized block if present or genesis #3888

Download link

https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/22.4.2/besu-22.4.2.zip
sha256: e8e9eb7e3f544ecefeec863712fb8d3f6a569c9d70825a4ed2581c596db8fd45
https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/22.4.2/besu-22.4.2.tar.gz
sha256: 9db0c37440cb56bcf671b8de13e0ecb6235171a497bdad91020b8c4a9dac2a27

22.4.1

20 May 07:24
12a0ba9
Compare
Choose a tag to compare

Additions and Improvements

  • GraphQL - allow null log topics in queries which match any topic #3662
  • multi-arch docker builds for amd64 and arm64 #2954
  • Filter Netty native lib errors likewise the pure Java implementation #3807
  • Add ropsten terminal total difficulty config #3871

Bug Fixes

  • Stop the BlockPropagationManager when it receives the TTD reached event #3809
  • Correct getMixHashOrPrevRandao to return the value present in the block header #3839

Download Links

22.4.0

04 May 07:52
5ec9de8
Compare
Choose a tag to compare

Breaking Changes

  • Version 22.4.x will be the last series to support Java 11. Version 22.7.0 will require Java 17 to build and run.
  • In the Besu EVM Library all references to SHA3 have been renamed to the more accurate name Keccak256, including class names and comment. #3749
  • Removed the Gas object and replaced it with a primitive long #3674
  • Column family added for backward sync #3638
    • Note that this added column family makes this a one-way upgrade. That is, once you upgrade your db to this version, you cannot roll back to a previous version of Besu.

Bug Fixes

  • Fix nullpointer on snapsync #3773
  • Introduce RocksDbSegmentIdentifier to avoid changing the storage plugin #3755

Download Links