github ethersphere/bee v1.17.0

latest releases: v2.3.0-rc8, v2.3.0-rc7, v2.3.0-rc6...
15 months ago

Bee v1.17.0 is finally here. This release will be the most significant update to the bee client in a long time and will be a breaking release due to protocol and API changes. The Bee team has been working on the new storage layer for quite some time now. The new storage layer is the repayment of a massive technical debt for the team as the old local storage component was not in a good state and was no longer maintainable. Follow all the communication on our discord to know all the details!

The goal of this upgrade is not for any performance benefits at the moment, but to ensure all existing functionality is retained and the storage component is simplified and hence improving maintainability.

The API changes are mostly consolidations and minor changes to the response types. Users are advised to go through the API docs and update their libraries/tooling accordingly.

As mentioned earlier, this will be a breaking release on the protocols-side as well. Pullsync, hive, retrieval, and handshake versions will be bumped. As a result, all node operators are requested to update their nodes to the latest release as soon as possible. The nodes will also do a full resync of the postage stamp contract events to properly flush out all expired content from their reserves once they upgrade to the new storage layer.

The upgrade, when first deployed, will begin to migrate data from the old localstore to the new and in the best case should finish in a few minutes but may take longer on slower devices. Because data migration is involved, it is higly advised to back up everything before the upgrade.

Warning for multiple node operators: the upgrade should be done by one node at a time for nodes that share the same physical disk as the initial migration from the old localstore to the new may take up to 30 minutes on older/slower hardware.

New features

  • Support multiple stamps on chunks. Chunks uploaded with different stamps will be tracked separately in the network. This means the chunk will only be removed from the network once all the stamps associated with it are gone.
  • Stewardship PUT endpoint now allows users to configure a stamp to use for re-upload. This would allow users to re-upload their pinned content with new stamps if the old one was expired.

Breaking changes

  • /tags endpoint is now consolidated on the main API. The debug API tags endpoint is deprecated. Also, the tag response fields have changed.
  • DELETE /chunk endpoint is also deprecated. This endpoint was mainly present for testing and will no longer be supported.

Hardening

  • Pinning data is now managed separately. As a result the pinned and reserve content will no longer affect each other.
  • Self-health check based on reserve size of neighborhood. (#4110)
  • Synchronize interval state storing. (#4115)
  • Prune out-of-depth oversaturated bins based on peer health. (#4092)
  • Cleanup mutex handling in batchstore and reserve. (#4159)

Bugfixes

  • Unreserve batch incorrectly unpins chunks. Also other issues related to pinning. (#3037, #3224, #3302, #3514)
  • Reduce light-node disk usage. (#2990)
  • Reuploading content without increasing bucket collision counters. (#2851)
  • Upload related memory leak. (#4009)

For a full PR rundown please consult the v1.17.0 diff.

Don't miss a new bee release

NewReleases is sending notifications on new releases.