Bee is a Swarm client implemented in Go. It’s the basic building block for the Swarm network: a private; decentralized; and self-sustaining network for permissionless publishing and access to your (application) data.
BSD-3-CLAUSE License
Bot releases are visible (Hide)
Published by github-actions[bot] 12 months ago
Published by github-actions[bot] 12 months ago
Published by istae about 1 year ago
In this small but important release, the Bee team introduces a new db compaction command to recover disk space. To prevent any data loss, operators should run the compaction on a copy of the localstore directory and, if successful, replace the original localstore with the compacted copy. The command is available as a sub-command under db
as such:
bee db compact --data-dir=
The pushsync and retrieval protocols now feature a fallback mechanism of trying un-reachable and un-healthy peers in the case that no reachable or healthy peers are left.
We've also added new logging guidelines for contributors in the readme.
For questions, comments, and feedback, reach out on Discord.
For a full PR rundown please consult the v1.17.5
diff.
Published by github-actions[bot] about 1 year ago
Published by github-actions[bot] about 1 year ago
Published by github-actions[bot] about 1 year ago
Published by github-actions[bot] about 1 year ago
Published by github-actions[bot] about 1 year ago
Published by github-actions[bot] about 1 year ago
Published by github-actions[bot] about 1 year ago
Published by github-actions[bot] about 1 year ago
Published by istae about 1 year ago
For the past few weeks, the Bee team's focus has been on improving network health, observability, and user experience.
Node operators, can now mine an overlay address for specific neighborhoods for fresh nodes by using the new --target-neighborhood
option. The new Swarm Scanner neighborhoods page displays neighborhood sizes and is a great tool to be used in tandem with this new feature.
Uploads are now by default deferred, as they were before the v1.17.0 release.
Additionally, the default postage stamp batch type is now immutable.
Another behavioral change is that swap-enable
is now by default false
and the bee start
command without additional options starts the node in ultra-light mode. Full node operators must enable the option with swap-enable: true
if not already enabled for their nodes to continue to operate as normal.
We have also improved logging across many different services and protocols.
Pushsync and retrieval protocols now report error messages back to the origin node instead of the generic "stream reset" errors. As a result, the protocol version has been bumped, making this a breaking change. It is imperative that operators update their nodes asap.
Previously, nuking a node could cause syncing problems due to the fact that
syncing intervals were never reset. This issue has now been tackled by having nodes detect that a peer's localstore has been nuked. They are able to do this by comparing the peer's localstore epoch time across connections.
For questions, comments, and feedback, reach out on Discord.
bee start
cmd starts the node in ultra-light mode. ( #4326)For a full PR rundown please consult the v1.17.4
diff.
Published by github-actions[bot] about 1 year ago
The Bee team is excited to announce v1.17.3! 🎊
With this release, we introduce healthy peer filtering for retrieval requests to improve data download reliability and speed.
The behavior of the upload APIs are changed back to pre-1.17.0 so parallel uploads with the same batch are now allowed.
The deprecated bee-clef is now removed from all bee packaging and docker images so operators should update their setups accordingly.
The node during the initial bootup will go through a localstore recovery process that should take a few minutes to complete. A localstore leak was detected in the v1.17.0 release, so with this recovery process and the fix included in this release, disk space consumption should become stable.
Pullsync chunk intervals are reset to resync chunk data across all neighborhoods as the final step to bring the localstore release to a completely stable state.
The feeds API now features a start index hint to optimize the retrieval loop of the latest feed.
For questions, comments, and feedback, reach out on Discord.
For a full PR rundown please consult the v1.17.3
diff.
Published by github-actions[bot] about 1 year 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.
isHealthy
to redistributionstate (#4243).For a full PR rundown please consult the v1.17.2
diff.
Published by github-actions[bot] about 1 year 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.
/tags
endpoint is now consolidated on the main API. The debug API tags endpoint is deprecated. Also, the tag response fields have changed./chunk
endpoint is also deprecated. This endpoint was mainly present for testing and will no longer be supported.For a full PR rundown please consult the v1.17.0
diff.
Published by github-actions[bot] over 1 year ago
This one is a patch release to address a bug found in the new salud service.
Published by istae over 1 year ago
The bee team is excited to announce v1.16.0! 🎉
The team has been busy researching and testing ways to help swarm remain a reliable and healthy network, and to that end, we are happy to announce a brand new health service, salud.
With salud, nodes will periodically perform certain health checks on it's connected peers with data acquried from the status protocol. The checks as of this release are based on the duration of response to the status protocol msg, number of connected peers, the storage radius, and total batch commitment as computed by each peer.
For duration and number of connected peers, each peer must be within the 80th percentile to be deemed as healthy. Radius and batch commitment are measured in terms of the most common values as reported by each connected peer. Measurements are created anew for each peridoic health check.
A self check is also in place where if the node's own storage radius does not match with the rest of the networks', the node won't participate in the schelling game.
With this release, only the pushsync protocol utilizes the filtering of peers for requests based on the status of health.
For questions, comments, and feedback, reach out on discord.
For a full PR rundown please consult the v1.16.0
diff.
Published by istae over 1 year ago
The bee team is excited to announce v1.15.0!
With this release, we introduce a new pushsync feature to improve chunk syncing and replication in the network during uploading. Peers that forward chunk into the neighborhood will fire multiple requests to target multiple storer nodes. Forwarding will also terminate at the first peer within the neighborhood and will no longer be forwarded to the most closest peer within the network.
As a result of the change in protocol logic, the protocol version has been bumped so it's important that you upgrage your nodes to the latest version.
We've added two new fields to the status protocol response: total amount from the chainstate and mode of operation of the peer (light or full mode).
For questions, comments, and feedback, reach out on discord.
For a full PR rundown please consult the v1.15.0
diff.
Published by istae over 1 year ago
This one is a patch release to fix the innacurate the number of reported active nodes in the swarm scanner.
With this change, light nodes attempting to connect to a peer with a full topology bin won't get rejected.
For questions, comments, and feedback, reach out on discord.