github ethersphere/bee v2.8.1

4 hours ago

Bee v2.8.1 is a non-disruptive release focused on performance, data durability, and developer experience, with some operational cleanup. There are no breaking P2P protocol changes. Nodes on v2.8.0 can upgrade at any time without network-wide coordination. Highlights include opt-in SIMD-accelerated chunk hashing, a critical crash-safety fix for the chunk store, substantially reduced blockchain RPC traffic, and client-side stamping for browser-friendly uploads.

πŸ“– Read the release announcement on the Swarm blog.

πŸ’¬ Join us on Discord (#node-operators) if you have questions or feedback!

Important

πŸ“’ Upgrade notes

  • Dev mode removed β€” the bee dev command is gone. For local development, migrate to Bee Factory or run against the Sepolia testnet configuration.
  • Bee v2.6.0 compatibility removed β€” nodes running v2.6.0 or older must first upgrade to v2.8.0, and only then to v2.8.1 (or reinstall fresh).
  • SIMD hashing is opt-in β€” on Linux x86-64, enable hardware-accelerated BMT hashing with --use-simd-hashing. With the flag off, behavior is unchanged.

New Features

  • SIMD-accelerated chunk hashing β€” Opt-in hardware-accelerated BMT hashing on Linux x86-64 (--use-simd-hashing), reducing CPU cost during uploads and other hashing-intensive operations. (#5381)

  • Client-side stamping over WebSocket β€” The /chunks/stream endpoint now accepts pre-stamped chunks: omit the Swarm-Postage-Batch-Id header to enter per-chunk-stamp mode. This enables browser-based uploads where keys never leave the client, parallel stamping across Web Workers, and per-chunk batch selection. (#5256)

  • Reduced blockchain RPC traffic β€” The node now estimates progress from the average block time between syncs and uses a larger block page size when syncing from a snapshot, substantially cutting the number of RPC calls β€” good news for operators on paid RPC providers. block-sync-interval now defaults to 10. (#5394, #5504, #5494)

  • Postage snapshot on --resync β€” Resyncing postage events now bootstraps from the postage snapshot (unless explicitly skipped) and live sync resumes exactly where the snapshot replay stopped, making --resync much faster and cheaper. (#5519, #5517, #5499)

  • Content-Type auto-detection on upload β€” POST /bzz detects the file content type when the header is not sent. (#5361)

  • API additions (backward-compatible):

    • /soc now honors Swarm-Tag, Swarm-Pin and Swarm-Deferred-Upload headers. (#5461)
    • New GET /batches/{batch_id} endpoint. (#5462)
    • New PATCH /stamps/{batch_id} endpoint to update a batch label. (#5472, #5512)
    • GET /chainstate now returns minimumValidityBlocks. (#5465)
    • Postage stamp responses now include batch utilization. (#5466)
    • GET /wallet works even when swap or the chequebook is disabled. (#5468)
    • /status and /status/peers now include bootnodes. (#5457)
    • SOC responses expose the owner public key. (#5492)

Bug Fixes

  • Crash-safe chunk store β€” Fixed a data-integrity issue in sharky affecting nodes interrupted mid-write. After an unclean shutdown, chunks are now validated against their content hashes during recovery and corrupted data is removed automatically β€” no manual intervention needed. (#5409)
  • Soft-fail on insufficient stake β€” Nodes with insufficient stake no longer fail at startup; stake height is auto-updated via the API. (#5315)
  • Cleaner redundancy retrieval β€” Retrieval with redundancy now exhausts its strategies and fails cleanly instead of returning incomplete results; the default redundancy level was also fixed. (#5470, #5383, #5505)
  • Hardened P2P message handling β€” Improved validation of hive and pullsync messages against malformed peer input. (#5500)
  • Efficient peer handshakes β€” Nodes sign their address record once per session and reuse it, re-signing only when the advertised addresses or chequebook details change, avoiding needless signing work, disk writes and gossip churn. (#5493)
  • Nested config resolution β€” Environment variables and priority ordering now work correctly for nested config keys such as blockchain-rpc. (#5443, #5514)
  • Postage safety β€” Fail fast when the stored postage block is ahead of the chain tip, guard against a nil postage contract in /chainstate during startup, and prevent a dirty stamper store. (#5460, #5511, #5515)
  • Manifest fix β€” Infer refBytesSize at marshal time when it was never set. (#5484)
  • OpenAPI alignment β€” The Swarm/SwarmCommon spec now matches the actual handler behavior. (#5452)
  • Legacy stamp format support β€” Restored reading of the legacy stamp store format. (#5498)
  • Pusher fixes β€” Stamp removal is now synchronous and a data race in push chunk handling was fixed. (#5446, #5447)

Removals

  • Dev mode removed β€” bee dev is no longer available; use Bee Factory or the Sepolia testnet instead. (#5436)
  • v2.6.0 backward compatibility removed β€” Upgrade from v2.6.0 or older requires going through v2.8.0 first. (#5415)

Maintenance

  • go-ethereum upgrade β€” Bumped to 1.17.3, picking up upstream security fixes. (#5319, #5467)
  • libp2p upgrade β€” Bumped to v0.48.0, with quic-go updated alongside. (#5430, #5489)
  • Docker β€” Environment variables in the Docker setup updated for compatibility with the latest configuration. (#5416)
  • Postage snapshot β€” Updated the postage snapshot to v0.0.8. (#5525)
  • Codebase hygiene β€” gofumpt formatting applied across the codebase, flaky tests stabilized, and CI workflows refreshed. (#5439, #5429, #5433)

What's Changed

Full Changelog: v2.8.0...v2.8.1

Don't miss a new bee release

NewReleases is sending notifications on new releases.