24.12.0
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 toServiceManager
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 metricbesu_blockchain_difficulty_total
is losing the_total
suffix -
The
_created
timestamps are not returned by default, you can set the env varBESU_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 withMetricSystem::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 andeth_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 callingeth_estimateGas
andeth_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
andeth_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