Releases: ethersphere/bee
v2.5.0-rc3
v2.5.0-rc2
Changelog
- 14193f9 fix: rename BEE_RESERVE_CAPACITY_DOUBLING variable using underscores (#4988)
- dcdc1d7 fix(openapi): leave only one tag for /gsoc/subscribe/{address} (#4989)
- 9a79c52 fix(openapi): correct response type for PATCH /tags/{uid} (#4979)
- 172cc7f feat: fgprof off-cpu profiling (#4984)
- c4ebaa5 fix(kademlia): closest peer must first detect if the peer should be s… (#4985)
v2.5.0-rc1
Changelog
- cda61e5 fix: stewardship with erasure encoding (#4955)
- ffd67d0 fix(api): replace ethereum with chain_address in /addresses response (#4978)
- 936b149 fix(openapi): correct OpenAPI response (#4972)
- a83d640 fix: set level in ctx (#4973)
- 92057ff perf: various improvements in pusher, pushsync, salud, reacher (#4958)
- 5456d14 fix: save tags when using chunk/stream (#4920)
- c70cbfb fix(api): resolve header overwriting and delimiter issue in Access-Control-Expose-Headers (#4960)
- e058ad5 fix(cmd): set sepolia block-time to 12s (#4969)
- 7df2cc3 fix(api): return empty array for pins instead of null (#4971)
- 941f4fc docs: update default value for swarm-deferred-upload (#4956)
- 7e1c81e fix: update openapi spec (#4945)
- dec3c3b chore(bmt): remove dead code (#4943)
- 1a92dce Special msg (#4952)
- 904f186 fix(pushsync): multiplexer freeze (#4950)
- fd88cbc fix: add TestGetWrappedChunk (#4932)
- 57bc1a8 feat: adds @istae and @acha-bill as required approvers for commits (#4939)
- c7503d4 Reverts "get wallet endpoint available if swap not enabled" (#4938)
- b8e5c2d fix: feed wrap should download the wrapped chunk from the network (#4929)
- fc11edd docs: update bee configs (#4911)
- 1d3b3d6 chore: official abi release (#4921)
- 8a541d3 chore: fix some comments and method name (#4916)
- 5244a9b test: unskip TestWithBlocklistStreams test (#4912)
- 337ea0d fix: enable paralleltest lint check in package postage (#4913)
- 110bb51 fix: change api access log level to debug (#4876)
- 873db54 fix: enable more paralel tests lint check (#4914)
- 0d36247 Fix/bytes api content type (#4915)
- 4dc554e chore(pkg): fix some function names in comment (#4905)
- 2f2ef4a fix(kademlia): always connect to bootnodes on startup to identify them (#4910)
- 440ff5c fix: exclude bootnode from protocol requests (#4909)
- 23445a1 chore: bump handshake version and reset reserve epoch timestamp (#4903)
- a276067 feat: gsoc subscribe (#4901)
- 9e388ed fix: add warmup allowing pullsync to commence (#4898)
- 102fa58 chore: update service package to mitigate CVE-2022-29583 (#4895)
- daefec6 chore: abi rc7 version bump (#4897)
- be17cd2 chore: add docker-build target to Makefile with support for configurable build flags (#4893)
- ef966b1 chore: set beelocal branch to update-k3s-1.30.3 and go 1.23 upgrade (#4878)
- fb6c2e8 feat: add commited depth field to status protocol (#4892)
- e161ee8 chore: abi rc6 (#4887)
- 336ff77 perf: sampler optimization (#4882)
- 78bea5c fix: reserve returns proximity for neightborhood stats (#4881)
- 243bd3c chore: upgrade abi (#4879)
- f5ba590 fix(api): add api initialization notice (#4869)
- 13fc473 fix: various swip21 fixes (#4874)
- c127b31 fix: rename ethereum in log (#4875)
- cc37fe7 fix: blocklist (#4871)
- c75fa3f fix: update height if staked when height decreases (#4873)
- 253d382 fix: check if reserve is configured (#4837)
- 0e42d83 fix: check all transactions in monitor check pending with timeout (#4867)
- e7bc895 fix(redistribution): reveal with correct depth, swip21 (#4865)
- 74db3d4 fix: show rchash duration response in seconds (#4862)
- eb0a89d feat(staking): change height on restart (#4856)
- 1f0c3f6 fix: get wallet endpoint available if swap not enabled (#4859)
- 8b50ae6 feat: provide reserve capacity height to the staking contract (#4857)
- 646f02d feat: add status neighborhoods endpoint (#4853)
- d52e3fc feat(sample): swip21 changes (#4848)
- e4e4520 fix: Eliminate local transaction nonce cache. (#4839)
- a8066a2 feat: make reserve capacity configurable and dynamic (#4847)
- 88ba195 fix: add overlay to api service so it shows earlier in the api request (#4843)
- 47e1f98 fix(node): close localstore if migration errors out (#4841)
- 19481d9 fix(reserve): reset binIDs as well (#4818)
- 10b1a4d chore: reduce log noise at default level (#4824) (#4825)
- 80a927a fix: add payload to readiness endpoint (#4601)
- e7f2734 feat: specify retrieval redundancy level via api (#4814)
- 198d41f feat: feed wrapping (#4677)
- 795bd22 fix: print batch id in failed to read upload item log (#4827)
- c47fc8a fix: adapt comment to corresponding used value (#4828)
- a416700 chore: remove clef references (#4812)
v2.4.0
This release is dedicated to the memory of ldeffenb, who recently passed away.
ldeffenb was an irreplaceable pillar of the Swarm community—undoubtedly the most active, knowledgeable, kind, dedicated, and selfless individual among us. He touched lives throughout the community, always offering invaluable help and support. In addition to personally assisting community members, he made countless contributions to testing new candidate Bee versions, playing a critical role in identifying and resolving important issues. His efforts were always entirely altruistic, driven by a genuine desire to help others and improve Swarm to fulfill the project's vision.
His sudden passing is a tremendous loss to us all, and his absence is deeply felt across the entire community. Outside Swarm, ldeffenb was also an active participant in other non-commercial community projects, where he held a similarly vital role.
In his honor, Bee v2.4.0 will include a new line in the startup message logs: "Share the knowledge." This simple yet profound message was ldeffenb's personal slogan, encapsulating his spirit and values, which he consistently demonstrated through his actions.
Bug fixes
- Fixed a bug where pushsync requests would get stuck due to connectivity problems with the storer neighborhood nodes ( #4950).
For a full PR rundown, please consult the v2.4.0 diff.
v2.3.2
v2.3.1
v2.3.0
v2.3.0
The Bee team is pleased to announce the v2.3.0 release. 🎉
Reserve Doubling for Optimized Node Rewards
The most anticipated feature of this release is the new ability for node operators to double the reserve capacity of their nodes to store chunks from a “sister” neighborhood. By storing chunks from its sister neighborhood, a node gains the opportunity to participate in the redistribution game whenever its sister neighborhood is selected, doubling its chances of participating in the redistribution game. The amount of doubling is controlled by a new config option, reserve-capacity-doubling
which by default is 0 and is currently capped at 1.
See the Official Release Announcement for more details.
Warning
The release contains new redistribution and staking contracts, so it's advised to upgrade as soon as possible. Before upgrading, however, the stake must be manually migrated by operators. The instructions on how to do so are available here.
Graffiti Several Owner Chunks
GSOC features allows for uploads of multiple version of the same Single-Owner-Chunk but different payloads to be picked up by a subscriber in a distant neighborhood. The SOC addresses can be configured to target a specific neighborhood to trigger the message subscriptions of the listeners. A WebSocket connection can be registered for a particular SOC address using the new /gsoc/subscribe/{address}
endpoint to pick up the new payloads of the SOC in real time.
For questions, comments, and feedback, reach out on Discord.
Features
- Allow user to specify the retrieval redundancy level in the download headers ( #4814 ).
- Reserve size doubling allows for doubling of the reserve capacity to be able to participate in multiple sister neighborhoods. ( #4847 )
- Added a new status endpoint path,
status/neighborhoods
that returns the different neighborhoods the nodes is storing chunks for in string binary form, the proximity to the neighborhood, and the respective reserves sizes for each neighborhood ( #4853 ). - Added committed depth field to the status response. The committed depth is the current storage radius + reserve doubling amount ( #4892 ).
- Added a new status endpoint path,
- Graffiti Several Owner Chunks feature adds the ability to upload multiple versions of the Single-Owner-Chunk (SOC) to a specific neighborhood where owners of the neighbor nodes can subscribe to pick up latest versions of the same SOC in real time ( #4901 ).
Bug fixes
- Fixed a bug where block-chain transaction would get stuck in pending status mode due to faulty nonce calculation ( #4839 #4867 ).
- Fixed a bug where a node is unable to block-list peers if connected peers are all from inbound connections ( #4871 ).
- Several boot-node related fixes ( #4909 #4910 )
- The storage incentives agent can no longer attempt to participate in a round before the global warm up period is over ( #4898 ).
Optimization
- Improved reserve sampling duration by avoiding certain unnecessary crypto operations for SOCs and matching the worker count to the available number of CPUs ( #4882 ).
Hardening
- Readiness endpoint now returns a JSON response based on the initialization status of the node ( #4601 ).
- Reduced verbosity of some logs in kademlia and transaction packages from
Info
toDebug
( #4825 ). - Wallet endpoint can now be called even if swap is not enabled ( #4859 ).
- RCHash endpoint now returns the total duration in seconds ( #4862 ).
For a full PR rundown, please consult the v2.3.0 diff.
v2.2.0
v2.2.0
The Bee team is elated to announce the v2.2.0 release. 🎉
The release includes major new features and important fixes which operators and users should take note of.
See the Official Release Announcement and Node Operator's Guide.
The Debug API and port has been removed and endpoints under the Debug API have been merged into the main Bee API. Configuration options related to the Debug API must be removed for the node to run as normal (see 2.2.0 upgrade guide for details).
Based on a community poll, we have also removed the API authorization and --restricted
option.
The release contains new redistribution and staking contracts, so it's advised to upgrade as soon as possible. Before upgrading, however, the stake must be manually migrated by operators. The instructions on how to do so are available here.
Warning
The 2.2.0 upgrade includes a localstore migration which will take an extended time to complete (the exact time will vary based on your particular system specs). You can check your node’s logs for messages related to the migration in order to check on the migration progress. Turning off your node before the migration is complete could cause your node to become corrupted!
Access Control Trie (ACT)
The Access Control Trie (ACT) is a major new feature that gives DAPP developers specific control over who can access encrypted data on Swarm. ACT introduces two main roles: “content publishers” and “content viewers.” Content publishers can grant or revoke access to content viewers on a fine-grained, chunk-by-chunk basis. Publishers can also establish and update group lists for managing access.
Neighborhood Hopping & Staking Changes
Previously, using the target-neighborhood
option, node operators were able to mine overlays for their new nodes to join specific neighborhood, generally underpopulated ones, to increase winning rewards and strengthen the network. Now, with this release, different neighborhood can be targeted for old nodes as well by supplying a new option. The node will also automatically reassociate the stake with the new overlay address if the node was previously staked.
Before, stake was non-withdrawable and set arbitrarily to 10 xBZZ. The new partial stake withdrawal feature allows operators to withdraw part of their stake when the price of the oracle drops below the price of when the node was staked. The withdrawable amount can fetched and withdrawn using the endpoints GET stake/withdrawable
and DELETE /stake/withdrawable
endpoints, respectively.
Postage Contract Safe Guards
To protect the network, we are introducing new safe guards for when the postage contract is paused. The contract is paused generally when there is a new contract available and operators are required to upgrade as soon as possible. As such, nodes that pick up the pause event from the contract will automatically shutdown and won't be able to start up again.
For questions, comments, and feedback, reach out on Discord.
Features
- Added the last synced block to the status endpoint response ( #4710 ).
- ACT feature ( #4692 ).
- Added the ability to carry the stake to new neighborhoods and withdraw part of the stake ( #4718 #4685 #4720 ).
Bug fixes
- Fixed a bug where the peer prune function was not counting peers correctly and changed the pruning to run periodically and not on every connection attempt ( #4759 #4774).
- Fixed the issue of the pullsync protocol and ultimately the reserve ignoring chunks that have been previously synced but that are re-uploaded with higher stamp timestamps. ( #4717 ) .
Deprecation
Hardening
- Stewardship API endpoint now checks leaf chunks as well and downloads all chunks belonging to the root reference ( #4735 ).
- Node is shutdown and is unable to start up if the postage contract is ( #4748 ).
- Stopped unnecessary pullsyncing with peers beyond two proximity orders below the storage radius ( #4764 ).
- Added a per peer rate limiter to the pullsync handler ( #4799 ).
- Improved batch error response for new batches when the amount is below the minimum allowed value ( #4729 ).
For a full PR rundown, please consult the v2.2.0 diff.
v2.1.0
v2.1.0
The Bee team is excited to announce the v2.1.0 release. 🎉
In this release, localstore transactions have been refactored to bring increased stability and performance gains.
We have also detected that some nodes have experienced the corruption of their reserves. To address this, the release introduces the new bee db repair-reserve --data-dir=...
command, which will scan the node’s reserve and fix any corrupted chunks. All node operators should make sure to run this command immediately following the update.
Warning
Make sure to run the command one by one rather than concurrently for nodes which are running on the same physical disk, since running the command concurrently on multiple nodes could lead to drastic slowdowns. As is the case with all the db
commands, the nodes must be stopped first.
The release also includes a new redistribution contract which introduces a limit to the number of freezes per round. The specific rate of the limit is configurable by the team. At the time of the release, the default behavior will be the same as the old contract. The goal of the new db repair-reserve
command and the localstore improvements is to decrease the freezing rate so it is closer to an acceptable level, in which case the freezing limit can be left untouched.
The Bee team will also coordinate the pausing of the old contract based on a predetermined block height of the Gnosis Chain.
With this release, the endpoints under the Debug API have been also included in the main API. The Debug API will be removed entirely in the next release (v2.2.0)
For questions, comments, and feedback, reach out on Discord.
Features
- A new redistribution contract has been released that controls the freezing limit. #240
Bug fixes
- Fixed an error when uploading the same file with pinning multiple times. (#4638)
- Fixed a data race in the reserve sampler which may resolve inclusion proof related errors in the redistribution game. (#4665)
Hardening
- Localstore refactoring (#4626)
- The same leveldb transaction is now used for both indexstore and chunkstore writes.
- The stewardship upload endpoint now requires a valid batchID in the request header.
- When the reserve capacity is reached, only enough chunks to fall below the capacity are evicted. Previously, the evictor would remove the entire bin of chunks belonging to a batch, without regard to how much capacity is recovered during the process. With this change, the loss of chunks belonging to shallower bins than the storage radius in the neighborhood is minimized.
- When the radius decreases, the bins which have been evicted previously are all properly reset to re-initiate syncing.
- Improved logging when the node is out balance for buying a batch. (#4666)
For a full PR rundown, please consult the v2.1.0 diff.
v2.0.1
v2.0.01
This is patch release that updates libp2p to the latest version which addresses a memory leak issue.