github ethersphere/bee v2.8.0

8 hours ago

Bee v2.8.0 is a feature release that strengthens how nodes verify each other. The headline change extends a peer's signed address record so that the overlay nonce and a timestamp are now part of the signature, and adds an optional on-chain chequebook check before a peer is trusted. The release also hardens P2P address handling, improves transaction reliability, and refreshes the toolchain (Go 1.26, latest libp2p).

💬 Join us on Discord if you have questions or feedback!

Important

📢 Network-wide upgrade required

v2.8.0 raises the handshake protocol from 14.0.0 to 15.0.0 and the hive gossip protocol from 1.1.0 to 2.0.0. Older nodes can no longer handshake or exchange peer records with v2.8.0 nodes, so plan to upgrade across your fleet.

The new chequebook verification is opt-in and off by default. To enable it on a full node, set --chequebook-verification (requires --chequebook-enable and a chain backend) and optionally tune --chequebook-min-balance (default 11 BZZ). With the flag off, nodes behave as before and skip the on-chain checks.

New Features

  • Stronger peer address records — A peer's address record (BzzAddress) now also carries a signed timestamp and the peer's chequebook contract address, and the overlay nonce is now part of the signature. Nodes verify this signature before storing a record received over hive gossip, and reject records with stale or future-dated timestamps. This makes it harder to impersonate peers or flood the network with fake identities.

  • Optional on-chain chequebook check — When --chequebook-verification is enabled, a peer is only trusted after three on-chain checks pass: the chequebook's owner matches the peer's Ethereum address, the contract code matches the expected chequebook contract, and the balance is at least --chequebook-min-balance. A node also keeps each chequebook tied to a single peer.

  • Caps on peer address lists — Peer underlay addresses are now sorted by preferred transport and trimmed to a maximum count and byte size, keeping handshake and gossip messages bounded.

  • Configurable blockchain RPC HTTP transport — Added configuration for the HTTP transport used by the blockchain RPC client. (#5420)

Bug Fixes

  • Improved transaction gas estimation — More reliable gas estimation and clearer error handling. (#5344)
  • Faster node shutdown — Reduced the time it takes a node to shut down. (#5408)
  • Deduplicate concurrent reserve sampling — Concurrent ReserveSample calls are now coalesced to avoid redundant work. (#5373)
  • Fix transaction monitor data race — Prevented concurrent map access in the transaction monitor. (#5309)
  • Add stabilization detector to the node — Wired the stabilization detector into the node so it is correctly initialized. (#5414)
  • Quieter puller logs — Stopped the puller from emitting very large log lines built from joined errors. (#5331)
  • p2p-forge logging — Redirected the p2p-forge logger output to stdout. (#5393)
  • Fix flaky topology tests — Stabilized the oversaturated topology and block-list stream tests. (#5345)

Improvements

  • Stamp issuer write coalescing — Coalesces stamp issuer writes to reduce redundant disk writes. (#5392)
  • Prefer TCP for bootnode discovery — Bootnode discovery now prefers TCP for more reliable connections. (#5406)
  • Less noisy pullsync logs — Removed an uninformative pullsync log line. (#5398)

Maintenance

  • Toolchain update — Updated to Go 1.26 and golangci-lint 2.11.3. (#5377)
  • libp2p upgrade — Upgraded to the latest libp2p release. (#5379)
  • Postage snapshot — Updated the postage snapshot to v0.0.7.

What's Changed

Full Changelog: v2.7.1...v2.8.0

Don't miss a new bee release

NewReleases is sending notifications on new releases.