The Bee team is elated to announce the v2.5.0 release! 🎉
Our focus this time around is on improvements to uploads and downloads. We've made several optimizations to the pusher, pushsync protocol, and peer routing.
The release also includes various bug fixes and API related changes, so make sure to check out the full list below.
For questions, comments, and feedback, reach out on Discord.
See the pre-release blog post here.
Features
- Added a new profiling tool method under
/debug/fgprof
that profiles both CPU and I/O operations ( #4984 ).
Bug fixes
- Fixed an issue with the chunk streams API where the tag stats were not being updated ( #4920 ).
- Fixed a stewardship iterator bug with respect to file references uploaded using the
/bytes
endpoint and erasure coding ( #4955 #4996 ). - Fixed a bug where in rare circumstances the uint64 chunk cache size would underflow ( #4986 ).
- Fixed a tag related bug where if a tag associated with an active upload were to be deleted, the syncing of chunks would get stuck ( #4995 #5018 #5019 #5032 ).
- Fixed an ACT upload bug for the
/chunks
and/soc
endpoints ( #5008 ).
Optimizations
- Various improvements in pusher and pushsync protocols ( #4958 ).
- The pusher now only checks if a chunk's batch exists, and does not do a full verification of the stamp before pushing the chunk to the network.
- Forwarder nodes in a pushsync request no longer perform receipt validation for shallow receipts.
- Origin nodes allow for some tolerance for shallow receipts by a factor of the maximum allowed reserve doubling.
- Max parallel workers count in the pusher has been raised to 128.
- Closest peer selection used by pushsync and retrieval protocols now processes fewer peers by ignoring peers whose proximity order is beyond the proximity of the chunk and the pusher node's address.
API Changes
- Added OpenAPI Content-Type field to
HEAD /bytes
endpoint ( #4915 ). GET /pins
now returns empty array instead ofnull
( #4971 ).- Removed the
/stake/migrate
obsolete endpoint from the OpenAPI specs ( #4945 ). - Changed the OpenAPI default value of the deferred uploads header to
true
( #4956 ). - Fixed an issue where
Access-Control-Expose-Headers
were not being formatted and set correctly ( #4960 ). - Fixed OpenAPI specs for the
/status/neighborhoods
and/status/peers
endpoints ( #4972 ). - Added a new field
chain_address
to the/addresses
endpoint, which will replace the now deprecatedethereum
field in a future release ( #4978 ). - Fixed the OpenAPI response type for
PATCH /tags/{uid}
( #4979 ). - Added the
SwarmActTimestampHeader, SwarmActPublisherHeader, SwarmActHistoryAddressHeader
as CORS headers for ACT related uploads and addedSwarmActHistoryAddressHeader
to the AccessControlExposeHeaders for ACT related uploads/downloads ( #5008 #5024 ).
Hardening
- Changed the default Testnet blocktime to 12 seconds ( #4969 ).
- Set sane defaults to several config options like bootnode address and blockchain block time ( #4998 ).
For a full PR rundown, please consult the v2.5.0 diff.
New Contributors
- @darkobas2 made their first contribution in #4895
- @binchengqu made their first contribution in #4905
- @thirdkeyword made their first contribution in #4916
- @mfw78 made their first contribution in #4943
- @PabloCastellano made their first contribution in #4988
- @hugehope made their first contribution in #5011
- @bosi95 made their first contribution in #5008
- @asabya made their first contribution in #4819