Skip to content

24.12.0

Compare
Choose a tag to compare
@github-actions github-actions released this 12 Dec 02:16
· 31 commits to main since this release
101bd06

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