github ethersphere/bee v1.17.2

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

With the last release we upgraded the mainnet to use the new storage layer. However, seeing the results from the redistribution game, we found some issues in it that were previously missed. The main problem we saw was that some of the pullsync indexes were being overwritten and hence, although the nodes have the chunks, they were not able to sync them with the network. This is now fixed, but we will need to do a migration to reconstruct the pullsync indexes on the nodes.

We also found that the cache implementation was over-complicated, which resulted in some bugs, so this has been simplified as well. There will be another smaller migration to update the cache indexes. Node operators are requested to update their setups as soon as possible. The migrations can take up to 20-30 mins depending on the setup, so please be prepared for this as well. We also strongly advise against concurrently upgrading nodes which are running on the same physical drive since it could drasticly increase migration time.

There is another simplification on the reserve eviction and postage batch expiration interactions. In the previous design, the salud health service would check whether reserve sizes (defined as the number of chunks in reserve at storage depth) were similar within some range of tolerance, and mark the node as unhealthy if the difference in reserve size surpassed that tolerance. In the current design, we don't expect the reserve sizes to match on neighbours as this size is now defined as the total number of reserve chunks on the node, regardless of depth. This can include chunks from lower storage depths which are not yet evicted. However, this should not stop the nodes from producing matching samples for the redistribution as we only consider the storage-depth and above chunks for the sample. To address this issue we have removed the reserve-size related checks in the salud service. Nodes will no longer mark themselves as unhealthy if their reserve sizes are off, and each node can now unreserve at its own speed.

New features

  • Added isHealthy to redistributionstate (#4243).

Hardening

  • Simplify batch expiration and unreserve interaction. (#4245)
  • Simplify cache handling. (#4242)
  • Remove reserve size self-health check. (#4255)

Bugfixes

  • BinID handling fixed. (#4248)
  • Synchronize chunkstore invasive operations. (#4253)

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

Don't miss a new bee release

NewReleases is sending notifications on new releases.