github ethersphere/bee v2.7.0

12 hours ago

The Bee team is pleased to announce the v2.7.0 release! 🎉

This update brings support for multiple underlay addresses, AutoTLS for secure WebSocket connections, improved feed resolution, and significant performance and reliability improvements.

The release also includes various bug fixes, API changes, and an upgrade to Go 1.25, so make sure to check out the full list below.

For questions, comments, and feedback, reach out on Discord.

Features

  • Nodes can now advertise multiple underlay addresses, enabling better connectivity for diverse network configurations (e.g. in-browser nodes, multi-homed servers). Backward compatibility with v2.6.0 nodes is maintained (#5204)

  • Added AutoTLS support for secure WebSocket connections, allowing nodes to automatically obtain and use TLS certificates. This introduces the following new configuration flags (#5187):

    p2p-wss-enable: false
    p2p-wss-addr: ":1635"
    nat-wss-addr: ""
    autotls-domain: "libp2p.direct"
    autotls-registration-endpoint: "https://registration.libp2p.direct"
    autotls-ca-endpoint: "https://acme-v02.api.letsencrypt.org/directory"
  • Both feed versions (legacy and wrapped) now race together automatically, removing the need for manual version selection. A new Swarm-Feed-Resolved-Version response header indicates which version was resolved (#5287)

  • Added reserveCapacityDoubling field to /reservestate endpoint for better reserve state visibility (#5139)

  • Added bootup time metrics for monitoring node startup performance (#5162)

  • Added metrics for ReserveSample performance analysis (#5177)

  • Added metrics for overdraft refresh logs in pushsync to reduce log spam and improve observability (#5297)

  • Improved storer performance by using buffered channels in the sampling pipeline, reducing sample generation time by 15–30% (#5170)

  • Added funding URL for mainnet users when chequebook deployment requires funds (#5284)

Bug fixes

  • Fixed a panic when storage incentives are disabled (#5150)
  • Fixed peers being incorrectly marked as healthy in underpopulated bins (#5145)
  • Fixed postage snapshot import incorrectly running on ultra light nodes (#5169)
  • Fixed gas price handling by replacing SuggestGasPrice with custom SuggestedFeeAndTip for proper EIP-1559 compliance (#5144)
  • Fixed legacy gasPrice to EIP-1559 dynamic fee mapping that was causing overpayment (#5225)
  • Fixed uncompressed ETH message signature handling (#5197)
  • Fixed ENS error handling to provide clearer failure information (#5213)
  • Added erasure ReDecoder for evicted chunks, fixing reliability issues during long-lived erasure-coded downloads (#5097)
  • Fixed pin eviction guard to prevent pinned content from being incorrectly evicted (#5222)
  • Fixed EstimateGas to use block-specific estimation for more accurate results (#5252)
  • Added chain availability check to prevent errors when the blockchain backend is unreachable (#5227)
  • Fixed joiner redundancy at multiple levels for improved erasure coding reliability (#5292)
  • Fixed chain backend being incorrectly used for ultra light nodes (#5310)

Improvements

  • Upgraded to Go v1.25 with modernized codebase, incorporating the latest language features, performance improvements, and security patches (#5231, #5236, #5248)

Important

NAT address validation: nat-addr and the new nat-wss-addr are now validated on startup. Previously nat-addr was not validated at all, which could lead to silent misconfigurations. Ensure your values are correct before upgrading. (#5257)

API Changes

  • Added reserveCapacityDoubling to /reservestate response (#5139)
  • Removed swarm-feed-legacy-resolve query parameter; both feed versions now race automatically. Added Swarm-Feed-Resolved-Version response header (#5287)
  • Removed body from POST /tags (#5246)

New Contributors

Full Changelog: v2.6.0...v2.7.0

Don't miss a new bee release

NewReleases is sending notifications on new releases.