github ethersphere/bee v1.10.0

latest releases: v2.2.0, v2.2.0-rc9, v2.2.0-rc8...
21 months ago

The last release was one of the most substantial upgrades to the Swarm network since the mainnet launch. With the storage incentives, nodes could stake BZZ and take part in the schelling game. This was disabled by default as we were testing the entire system integration on the testnet.

To prepare the network for the storage incentives, we have been testing all of our changes in the public testnet and in private networks operated internally by the team. We found a number of issues with our local storage and syncing protocols, and have made major improvements to chunk syncing and localstore with the end goal that the individual reserves of the bee node matches the collective reserve of its neighborhood to be able to succesfully participate in the schelling game/storage incentives.

One protocol that went under major overhaul has been pullsync. The protocol is now overall more resiliant to errors which should improve the syncing of data and as a result the retrievability of data in the network.

Due to the changes in pullsync protocol, this release will be a breaking release for full nodes who take part in syncing as there will be a protocol version bump. This release also includes new contracts, so it will include a bump in the handshake protocol.

A myriad of bug fixes and simplifications have been made to the localstore, specificially to improve reserve evictions and garbage collection. As a side effect of these changes, disk usage has improved so fewer db nukes is expected. We've also found inconsistencies in the internal state of the bee's local data, and as part of deploying the new version, a migration will automatically run during bootup to address this.

We also bring the new EIP-1559 transaction type for all blockchain transactions from the Bee side to improve the rate of transactions going through reliably on time.

Couple of issues in the smart contracts have been fixed and we have updated the contract addresses used in the testnet and mainnet.

There are a bunch of other changes related to observability, so new metrics! There are some API changes and so please check the API docs for more information.

Breaking changes

  • Rewrite of the puller and pullsync package. This was done to make syncing more resilient to errors and also conform with the new incentives workflow. (#3437, #3456, #3501, #3515, #3520, #3555, #3625)
  • The localstore package was heavily refactored. This includes some changes to how the node stores indexes related to the reserve and cache storage of the node. We also identified few incorrect entries that the localstore maintains and the nodes will perform a migration to get rid of these. (#3447, #3566, #3579, #3584, #3585, #3591, #3595, #3614, #3627, #3629)
  • For the wallet endpoint, fields now have better names, and features a new wallet address field. (#3571)
  • The default value of the initial deposit changed to 0. (#3489)
  • The staking API endpoints have changed a bit to be more consistent. (#3472)
  • Handshake protocol version bump due to new contracts. (#3659)

Hardening

  • Simplify parsing and validation of HTTP endpoints. (#3344)
  • Added more metrics around the storage incentives features. (#3449, #3474, #3587, #3628)
  • Enabled the parallel tests linter and fixed some of the tests to conform to it. The unit tests now run much faster. (#3432, 3436)
  • Remove the hacky config usage in kademlia package. (#3360)
  • API errors are now more meaningful. (#3450)
  • Bootnodes will no longer participate in Pushsync protocol. (#3616)

New features

  • Bee now uses the new EIP-1559 transactions. (#3504, #3502, #3559, #3562, #3617)
  • All blockchain transactional APIs now include the transaction hash in the response. (#3573)
  • A new API was added which allows nodes to withdraw their stakes if the contract is paused. (#3662)

Bugfixes

  • An issue causing a redirect loop in the browser on the /bzz endpoint was fixed. (#3457)
  • A bunch of issues were fixed in the smart contracts. This include a corresponding bee change to update the new addresses. (#3666)

For a full PR rundown please consult the v1.10.0 milestone.

Don't miss a new bee release

NewReleases is sending notifications on new releases.