Dear community and friends, the Bee team is proud to announce the latest release v1.4.1
.
Don't let the meager semver patch bump mislead you; this version comes packed with a ton of goodies to simmer in and absorb in the upcoming holiday season!
Apart from further improvements to the overall network experience, we've been working on a lot of protocol hardenings and performance improvements, as well as new role-based API usage policies, direct uploads (more below) and support for Ethereum V3 keys. Some changes to time-based settlements have been made targeting light nodes, so that their usage allowance is congruent with the current observed performance of the mainnet.
You might recognise that the Bee repository's approachability has improved in several aspects. The team has been working on aligning and publishing a concrete style guide to communicate how we write Go code. This should allow for easier developer onboarding and reduce PR friction in the future. There's also been significant tooling contributions with new linters and a further alignment of linter settings to the style guide. We've also published versioning policies for Bee and Bee's APIs.
As always we would like to cordially thank our amazing community and the various teams that have been involved in this release!
Breaking changes
- Time-based settlements now enforce 10% of the observed mainnet performance for light nodes. This means that for a better performance, light nodes will have to issue cheques earlier than full nodes (please note the breaking configuration flag rename from
payment-tolerance
topayment-tolerance-percent
andpayment-early
topayment-early-percent
!) (#2651, #2629, #2639, #2621, #2650) - The Bee node will now create an Eth V3 compatible key by default (applies to new keys only!) (#2711)
Hardening
- Kademlia balancing has been improved (#2677)
- Push-sync protocol will now attempt a preemptive retry based on mainnet observed performance (#2680, #2707)
- Push-sync storer node forwarder replication won't be retried on stamp error (#2694)
- Push-sync forwarding persistence has been changed to be non-blocking. This circumvents protocol latencies induced by local storage latencies on forwarders (#2664)
New features
- We've introduced a restricted API feature to allow for security policies and security best practices to emerge for node operators and dapp developers. Since the Bee node controls real-world tokens, we've added this extra security layer to allow users to enforce different levels of allowed access to node functionality. While this is an experimental feature and we expect its design might change, we encourage users to start experimenting with it and giving us feedback about the matter at hand, due to the fact that this layer of extra security is not only crucial for user safety, but also for the emergence of new services that could utilise the different APIs in innovative ways. Our long term ambitions are that this becomes the default way of using the Bee API suite, and the both the normal and Debug API would be fused into just one API, in which different access levels are given to different API consumers (and can be revoked easily). A blog post including a tutorial will be published on our Medium account in the upcoming days, stay tuned! (#2400, #2659, #2660)
- The Bee node now supports loading Ethereum V3 key files (#2710)
- The API now supports direct uploads. This means you can have direct feedback for your uploads with backpressure on the HTTP upload by simply adding a new header to the request (
Swarm-Deferred-Upload: false
). When specifying this header, your upload will be synced to the network by the time you receive the HTTP response containing the content-addressed hash from the API. In this way, you are able to directly monitor the upload and does not necessitate polling any tag object as of such (#2703, #2620) - Added a new
/node
endpoint to the debug API, so that API consumers could know the operation mode of the node concretely instead of guessing (#2649)
Bugfixes
- Don't greylist own overlay on self verification (#2688)
- Fixed CORS not passing
User-Agent
(#2684) - Added a retry for transaction receipt with delay due to a very tight loop (#2667)
- Fixed a bug where a tag was unintentionally created when the stamp provided was wrong or unusable in
/bytes
upload (#2673)
Performance improvements
- Retrievals now execute a faster preemptive retry according to a 90th percentile of successful results we've been seeing on the mainnet (#2719)
- The postage listener will sync postage stamps in larger batches, which will significantly decrease the blockchain backend call burden (#2641)
- Netstore will now write the chunks asynchronously to disk. This means that chunks would be propagated faster to the callers (joiner, API) (#2665)
- Puller deletes old cursors on disconnect (#2630)
For a full PR rundown please consult the v1.4.1
milestone.
Docker images
docker pull ethersphere/bee:1
docker pull ethersphere/bee:1.4
docker pull ethersphere/bee:1.4.1
docker pull ethersphere/bee:stable
docker pull quay.io/ethersphere/bee:1
docker pull quay.io/ethersphere/bee:1.4
docker pull quay.io/ethersphere/bee:1.4.1
docker pull quay.io/ethersphere/bee:stable
docker pull ethersphere/bee:1-slim
docker pull ethersphere/bee:1.4-slim
docker pull ethersphere/bee:1.4.1-slim
docker pull ethersphere/bee:latest-slim
docker pull ethersphere/bee:stable-slim
docker pull quay.io/ethersphere/bee:1-slim
docker pull quay.io/ethersphere/bee:1.4-slim
docker pull quay.io/ethersphere/bee:1.4.1-slim
docker pull quay.io/ethersphere/bee:latest-slim
docker pull quay.io/ethersphere/bee:stable-slim