github besu-eth/besu 26.7.0

4 hours ago

26.7.0

Breaking Changes

  • Sunsetting features is now complete - for more context on the reasoning behind these removals, read this blog post
    • Proof of Work consensus (PoW) removal is now complete:
      • Remove PoW mining infrastructure: PoW mining coordinator, executor, block creator/miner, nonce generators, PoW solver, and PoWObserver are deleted. nonceGenerator is removed from MiningConfiguration. Mainnet genesis files with ethash config can no longer mine PoW blocks. #10656
      • Remove Ethash and PoW validation code: EthHash algorithm, PoWHasher, ProofOfWorkValidationRule, CalculatedDifficultyValidationRule, EpochCalculator, and DirectAcyclicGraphSeed are deleted. powHasher is removed from ProtocolSpec/ProtocolSpecBuilder. #10659
      • Remove PoW RPC methods: miner_start, miner_stop, and eth_mining JSON-RPC methods are removed. getCoinbase() and setCoinbase() are removed from the MiningCoordinator interface. #10662
      • Remove PowAlgorithm enum and getPowAlgorithm() from GenesisConfigOptions. #10675

Upcoming Breaking Changes

  • --min-block-occupancy-ratio is deprecated and will be removed in a future release
  • Plugin API
    • PluginTransactionSelectorFactory.create(final SelectorsStateManager selectorsStateManager) is deprecated for removal
  • --Xmax-tracked-seen-txs-per-peer renamed to --Xmax-tracked-seen-txs (old name kept as deprecated alias will be removed in a future release)
  • BFT option xemptyblockperiodseconds has been taken out of experimental and been renamed emptyblockperiodseconds. The old config option is deprecated and will be removed in a future release.
  • --Xbft-legacy-protocol-encoding will be removed once Besu 25.x is no longer supported. #10499
  • --Xsnapsync-synchronizer-pivot-block-distance-before-caching is deprecated and will be removed in a future release; the flag is now a silent no-op.
  • --rpc-tx-feecap will treat a value of 0 as limiting fees to 0. Today it treats 0 as "do not cap fees". To achieve similar behaviour set it to a suitably large value to effectively prevent any fee capping.

Bug fixes

  • Fix eth_getBlockByNumber("safe"/"finalized") returning Unknown block on nodes with a complete chain but no peers. The FCU handler now only returns SYNCING when the head block is genuinely not found. #10658
  • --api-gas-price-blocks fixed to treat 0 as "sample zero blocks" #10642
  • Reverted: Return SYNCING from engine_newPayload when the parent block's world state is not immediately available in the Bonsai cache, preventing worker thread blocking during CL backfill or post-restart catch-up. #10600 since replaced by #10731

Additions and Improvements

  • Upgrade web3j dependencies to 5.0.3 #10627
  • Upgrade netty dependencies to 4.2.15.Final #10693
  • Besu now falls back to Proof of Stake when the genesis file declares no consensus mechanism (e.g. an empty "config": {}). #10266
  • Add HealthCheckService plugin API enabling custom health check implementations. The plugin-based /readiness response body is simplified to {"status":"UP"|"DOWN"} and no longer includes the previous {peers, sync} detail. #10167

Distribution checksums

f91f7f378faf1b804e4c9389904dd702d1b00d0033daebcfc2e145fe1c133863  besu-26.7.0.zip
21129fbd34468182ef134fca78989450f2bd8205e18ed87e75b1a420141ba209  besu-26.7.0.tar.gz

Don't miss a new besu release

NewReleases is sending notifications on new releases.