Releases: hyperledger/besu-docs
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
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(hyperledger/besu#7162), fixes related issues: #7109 #6884
23.10.0
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 behaviour,
otherwise you can simply go with the default and enjoy the improved performance of the new txpool.
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 withtx-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 optiontx-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 valueslayered
(default) orlegacy
--Xlayered-tx-pool-layer-max-capacity
,--Xlayered-tx-pool-max-prioritized
and--Xlayered-tx-pool-max-future-by-sender
just drop theX
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
23.7.2
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
andeth_estimateGas
responses #5705
Additions and Improvements
- Add missing methods to the
Transaction
interface #5732 - Add
benchmark
subcommand toevmtool
#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
23.7.1
23.7.1
Breaking Changes
- Removed deprecated GoQuorum permissioning interop #5607
- Removed support for version 0 of the database as it is no longer used by any active node. #5698
Additions and Improvements
evmtool
launcher binaries now ship as part of the standard distribution. #5701- EvmTool now executes the
execution-spec-tests
via thet8n
andb11r
. See the README in EvmTool for more instructions. - Improve lifecycle management of the transaction pool #5634
- Add extension points in AbstractCreateOperation for EVM libraries to react to contract creations #5656
- Update to Tuweni 2.4.2. #5684
- Decouple data field from Enum JsonRpcError by creating new enum holder RpcErrorType#5629
- Update to bouncycastle 1.75 #5675
- Extend OperationTracer with new methods #5662
- Eip 6780 selfdestruct #5430
- Add new debug_getRawTransaction to the DEBUG engine #5635
Bug Fixes
- Use the node's configuration to determine if DNS enode URLs are allowed in calls to
admin_addPeer
andadmin_removePeer
#5584 - Align the implementation of Eth/68
NewPooledTransactionHashes
to other clients, using unsigned int for encoding size. #5640 - Failure at startup when enabling layered txpool before initial sync done #5636
- Remove miner-related option warnings if the change isn't using Ethash consensus algorithm #5669
- Fix for pending transactions reference leak #5693
- Address a performance regression observed in import testing #5734
- Update native libraries that have JPMS friendly module names #5749
Download Links
https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/23.7.1/besu-23.7.1.tar.gz / sha256: 85dce66c2dbd21b4e5d3310770434dd373018a046b78d5037f6d4955256793cd
https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/23.7.1/besu-23.7.1.zip / sha256: dfac11b2d6d9e8076ab2f86324d48d563badf76fd2a4aadc4469a97aef374ef5
23.4.1
Besu release: https://github.com/hyperledger/besu/releases/tag/23.4.1
What's Changed
- Unix timestamp (milliseconds) by @macfarla in #1322
- Add jemalloc as linux prereq by @alexandratran in #1319
- Bump mkdocs-material from 9.1.8 to 9.1.11 in /CI by @dependabot in #1320
- python version bump by @macfarla in #1324
- Add missing quotes in trace call example by @Gabriel-Trintinalia in #1325
- Bump mkdocs-material from 9.1.11 to 9.1.12 in /CI by @dependabot in #1329
- Rename --bonsai-historical-block-limit by @alexandratran in #1328
- remove snippet by @alexandratran in #1330
- fix missing bootnodes link by @alexandratran in #1332
- Bump mkdocs-material from 9.1.12 to 9.1.14 in /CI by @dependabot in #1333
- Document
--ethstats-cacert-file
by @alexandratran in #1331 - Bump mkdocs-material from 9.1.14 to 9.1.15 in /CI by @dependabot in #1336
Full Changelog: 23.4.0...23.4.1
23.4.0
This quarterly update should be carefully reviewed by private network users before upgrading. This quarterly release contains a lot of new improvements but many breaking changes. We have deprecated GoQuorum-compatible privacy modes in this release, as well as IBFT1.0. If you require these, please consider migrating to new consensus algorithms or waiting for future releases.
Highlights in this release include:
- RocksDB 8 upgrade that improves the performance of the underlying database.
- Many logging and metrics improvements across the client.
- EVM performance improvements.
- An improved gas estimation algorithm.
- Fixes for QBFT and IBFT using zeroBaseFee
- RPC fixes
- Many more.
Lastly, this release formalizes a deprecation notice for GoQuorum -compatible permissioning modes in Besu. These will be removed in the 23.7 series, unless otherwise stated.
23.1.3
23.1.2
23.1.2
This update is a mainnet-compatible Shanghai/Capella upgrade and is recommended for all Mainnet users. This update contains a small number of overall improvements and fixes but a large refactor of Bonsai. We have heard your issues loud and clear with the storage format and have taken the time to craft a new architecture that keeps the benefits (low storage, lightweight nodes) without the tradeoffs (worldstate issues, exceptions processing transactions, broken databases). Expect more details on this in a forthcoming blog post. We have also continued our cleanup of backwards sync and RPC.
Breaking Changes
Additions and Improvements
- Schedule Shanghai (Shapella) fork for Mainnet #5230
- Increase default from 1000 to 5000 for
--rpc-max-logs-range
#5209 - Bonsai-safe refactor #5123
- Safe tracing #5197
Bug Fixes
- Persist backward sync status to support resuming across restarts #5182