Skip to content

Releases: ethersphere/bee

v1.6.2

29 Jun 11:12
Compare
Choose a tag to compare

With the summer solstice behind us, the Bee team is excited to announce the latest release v1.6.2. This release consists of some new features, performance recalibrations and also some bug fixes.

Hardening

  • Improve kademlia saturation peers count calculation. (#2996)
  • Increase kademlia bit suffix length to improve bin population. This should improve overall connectivity of the node. (#2971)
  • Make postage snapshot bootstrapper more resilient with retries on failure. (#2997)

New features

  • Enable /chainstate endpoint on debug API. This will allow users to query chainstate endpoint during bootstrapping phase to get status of the process. (#3012)
  • Merge debug API endpoints into main API service. Going ahead we have decided to have only one HTTP API for bee. With this release all debug API endpoints will be available on regular API. However the debug API is still there for now. (#2846)
  • Subdomain support for bee. Users can now use a secure browser context for accessing the data using subdomains. Essentially, users can now access the references from /bzz endpoint as http://<CID or ENS>.swarm.localhost:<port>/{path}. This change also adds support for CID resolution to bee. (#2970)
  • Enable HEAD requests on the /bytes endpoint. Users can use the HEAD request to get content-length of a swarm reference. (#3027)

Bugfixes

  • Improve shutdown sequence to be more resilient. (#3022)
  • Handle SOC chunk in traversal. Users can now unpin SOC chunks. (#3006)
  • Maintain stampissuers on db nuke. This allows the nodes to maintain stamissuer data and hence prevent restamping of same chunks on upload of the same data. (#3011)
  • Configure debugAPI for devmode. (#3001)
  • Move readiness endpoint to technical debug. (#3007)

Performance improvements

For a full PR rundown please consult the v1.6.2 milestone.

v1.6.1

01 Jun 21:01
364bf92
Compare
Choose a tag to compare

The Bee team is happy to announce the latest release v1.6.1. The release contains a myriad of bug fixes, codebase hardenings, and a few new features. A particular highlight is the segment inclusion Merkle proofs we've now added that paves the ground for more exciting features coming up in the future.

Hardening

  • Logging is reduced on startup during bootstrapping (#2981)
  • Peer connection attempt from kademlia is skipped if peer is already block-listed (#2976)
  • Added new reservestate total batch commitment metric (#2984)
  • Added new accouting metrics (#2966)
  • Added new stream handler error reset metrics (#2978)
  • Updated package post install messages (#2967)
  • On empty directory uploads, bad request response type is returned instead of internal server error (#2960)

New features

  • Added segment inclusion Merkle proofs in bmt package (#2952)
  • To improve the developer's experience the dev mode has a default admin password when ran in restricted mode (#2947)

Bugfixes

  • Fixed a memory leak in pusher package related to shallow receipt attempts tracking (#2974)
  • Fixed a context related bug in pullsync (#2979)
  • Fixed a nil pointer error on node shutdown (#2968)
  • Fixed /wallet endpoint response object properties in openapi (#2969)
  • Nested paths for multipart uploads now work properly (#2951)
  • Fixed a node shutdown deadlock issue (#2944)

Performance improvements

For a full PR rundown please consult the v1.6.1 milestone.

v1.6.0

13 May 02:25
6ceadd3
Compare
Choose a tag to compare

This latest release is an accumulation of a lot of work done in the last couple of months by the team. We've improved and refactored substantial amount of components and areas of the codebase as well as fixed a few critical bugs. After deploying this version your node will be forced into a blockchain resync, so please allow it time to sync and in case you're updating several nodes at the same time - make sure to shelf the update in a way that does not cause a lot of them to go offline at the same time due to the long restart time caused by chain syncing.

Breaking changes

  • Global pinning has been discontinued from bee. We're looking for ways to enable this sort of solution as an L2 solution on Swarm (#2906, #2869)
  • Nodes will now try to connect to the mainnet by default. In order to connect to the testnet you must specify --mainnet=false (#2859)

Hardening

  • Chain syncing errors will again result in 24h blocking (#2922)
  • We've improved resilience on hibernation and network failure (#2887)
  • Added a missing stream reset stream on add context header fail (#2885)

New features

  • Added a new db indices command to debug database indices (#2924)
  • Added a wallet endpoint to display wallet information for various purposes (#2900)
  • Exposed current block height from chain backend for the chainstate endpoint so that chain syncing status can be displayed (#2893)
  • The node will now log its own overlay address on startup (#2930)
  • Print required funds for gas and respect deployment gas price (#2861)
  • The node has now an option to bootstrap the postage information partially from a snapshot stored on Swarm(!). This saves on the initial syncing time significantly, and reduces the amount of chain calls you would need to do (#2814, #2910)

Bugfixes

  • Added fallback content length check in middleware (#2907)
  • Fixed a bug where unpinning of encrypted references resulted in an error (#2896)
  • Fixed a panic for the stewardship endpoint in dev mode (#2889)
  • CORS are now allowed in dev mode (#2866)
  • Fixed a deadly deadlock in sharky that was caused when a context was cancelled on a Read call (#2932, #2948)
  • Fixed a bug where an error on shutdown would cause issues when reloading stamp issuers on startup (#2914)
  • Fixed a bug where the wrong amount was displayed when purchasing a postage stamp in dev mode (#2945)
  • Removed the free slot optimization from sharky to circumvent shard leakage (#2953)

Performance improvements

  • The postage package has been rewritten and has significant simplifications that should result in a smoother and more correct operation (#2810, #2890, #2895)

For a full PR rundown please consult the v1.6.0 milestone.

v1.5.1

07 Apr 13:49
Compare
Choose a tag to compare

This is a hotfix release over v1.5.0 version, which was released a few weeks back. While testing the release we fixed a few critical issues. A combination of these fixes, the sharky changes and the way we run some of our automated tests, we found an interesting corner case which led to a data race while downloading files from the node. This particular problem will be seen if we overutilise a postage stamp for uploading data and the nodes could parallely be serving data while new data is being uploaded with the same stamp. This has been fixed now and all users are urged to upgrade to the latest version as soon as possible.

Bugfixes

e0d56b4 Add extra validation in netstore while retrieving chunks locally. Fallback to retrieving from network if data is not valid.
0b8d10b Ensure correctnes of chunk data from localstore for parallel get/put operations.

For a full PR rundown please consult the v1.5.1 milestone.

v1.5.0

21 Mar 11:49
dda5606
Compare
Choose a tag to compare

The Bee team is happy to announce the latest release v1.5.0. This release comes with major changes to the way the bee node stores data locally.

We are proud to announce the introduction of sharky. Nodes upgrading from the older version will have to perform a migration to the new storage format. With sharky, the bee node will store chunks and indexes in separate storages. The indexes will be stored in levelDB and the chunks will be stored in sharky. Due to the drastic reduction in the size of levelDB, the database operations on indexes will be significantly faster. Also, with sharky, retrieving chunks will be optimized and hence we should see improvement in the overall performance and usability of the node. This change is not backward-compatible, so after the migration, the local storage will only work with v1.5.0 and up.

Along with the changes in storage, we are also including some other small features and bugfixes.

Hardening

  • cc80f74 Allow duplicate handshakes (#2794)
  • e46af6c Use testing.TempDir to create temporary test directories (#2790)
  • 4ce3f7d Stamps endpoint amount value OpenAPI specification (#2817)
  • 046c5e8 Introduce timeout for all make and beekeeper runs (#2811)
  • d21bf5b Add test to validate max input stream behaviour in libp2p (#2809)

New features

  • ebe988e Sharky store for fix-length blobs (#2685)
  • 66f0799 Start bee node without a connected chain backend. This feature is still experimental and it will be completed by the next release. (#2783)
  • 7849e33 bcrypt command to generate or validate bcrypt hashes (#2788)
  • 0b77fa6 Security role inheritance (#2808)

Bugfixes

  • dcc07c4 Fix to return an empty array instead of null in API responses (#2821)

For a full PR rundown please consult the v1.5.0 milestone.

v1.4.3

08 Feb 19:06
9546fed
Compare
Choose a tag to compare

This is a hotfix release over the last v1.4.2 release. We've identified certain issues relating to libp2p configuration in addition to a protocol stream leak and have therefore deployed a quick fix to alleviate the issues. You are strongly advised to update your nodes as soon as possible.

Bugfixes

Hardening

  • 5d1bcf2 fix: revert libp2p update and increase config limits (#2799)

You can find the PR rundown here

v1.4.2

08 Feb 01:59
2a4574a
Compare
Choose a tag to compare

This latest release is our first release for this year. We've been working on solving problems observed on the mainnet and we've shipped plenty of bugfixes with this version. Stay tuned for our upcoming releases as we pick up the pace of regular updates.

Hardening

  • increase kademlia minimum neighborhood size (#2772)
  • avoid peer pruning while peer is blocklisted. this caused peers to disappear from the known peers list prematurely (#2780)
  • refine chainsyncer logic to be less aggressive (#2773)
  • bump base docker image (#2745)
  • don't pullsync on bootnodes (#2733)
  • skip push to peer even if the trace was successful (#2731)

New features

  • diplay total network upper bound commitment towards batches in the reserve state endpoint (#2767)
  • allow swap without chequebook - you can now start your node with no chequebook using the chequebook-enable flag. while you will be able to receive cheques, you'll only have time-based settlements at your disposal for node throughput limits (#2236, #2732)

Bugfixes

  • fix a severe bookkeeping bug in localstore that resulted in a corrupt reserve size (#2735)
  • eager gc candidate collection in localstore fixes an edge case where the last batch would never be done due to insufficient amount of candidates collected (#2779)
  • remove sync.Once on reachability status in kademlia since libp2p apparently takes multiple status updates to zero in on the correct connectivity status (#2774)
  • update libp2p version (#2775)
  • don't share statestore iterator slice (#2747)
  • fix a possible edge case involving naked write in retrieval protocol (#2729)
  • expose Decompressed-Content-Length header (#2786)

For a full PR rundown please consult the github milestone.

v1.4.1

08 Dec 07:53
238867f
Compare
Choose a tag to compare

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 to payment-tolerance-percent and payment-early to payment-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

v1.4.0

24 Nov 23:03
Compare
Choose a tag to compare

Bee v1.4.0 is finally here and it includes a major change to protocol behavior that will significantly improve the network resilience. From now on, your nodes will have to be accessible from public CIDRs for them to participate in our core protocols. We've introduced new visibility metrics through the topology endpoint to allow node operators to determine their connectivity state and make the necessary steps to rectify any NAT reachability problems. We've also improved node resilience on blockchain errors. Our bootnodes will flip to the new version on 9AM CET, 25th of November 2021. You are expected to follow with the new version thereafter. Please stay tuned for another release which will follow shortly!

Breaking changes

  • Starting from v1.4.0, only nodes which are reachable from the public CIDRs are used for core protocols. Old nodes are not interoperable with the new version due to a handshake protocol version bump (#2565, #2676)
  • The /stamps endpoints on the normal API which have been deprecated three months ago have been finally removed in favor of the whole postage suite which is available on the debug API. Please see the OpenAPI specifications for more info (#2632)

Hardening

  • The bee node will now wait up to ten minutes before forcing a restart due to a stalled blockchain backend (#2626)

New features

  • The node will now display information about the eth backend client on startup (#2618)
  • OpenAPI versions has been added to the health endpoint, so that clients could easily determine which features are supported by the node (#2638)

Bugfixes

  • Fixed a panic on stewardship endpoints in dev mode (#2640)
  • Fixed a panic in kademlia metrics (#2636)
  • Fixed a bug where futile attempts to sync chunks with invalid postage stamps were made (#2637)

Performance improvements

  • Kademlia buildups should now be faster due to prioritization of previously connected peers and non blocking attempts in topology buildups (#2613, #2627)

For a full PR rundown please consult the v1.4.0 milestone.

Docker images

  • docker pull ethersphere/bee:1
  • docker pull ethersphere/bee:1.4
  • docker pull ethersphere/bee:1.4.0
  • 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.0
  • 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.0-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.0-slim
  • docker pull quay.io/ethersphere/bee:latest-slim
  • docker pull quay.io/ethersphere/bee:stable-slim

v1.3.0

27 Oct 09:05
fd09d1c
Compare
Choose a tag to compare

Release notes Bee v1.3.0

The Bee team is happy to announce that v1.3.0 has safely landed!

As outlined recently over several public channels, this release introduces breaking changes in the chainsync protocol behavior while addressing some
bugs and other minor refinements. Nodes which run an outdated version (lower than v1.2.0) will be ostracized out of the network.

The next release of bee v1.4.0 is expected to take place W45-W46 21'.

Please make sure to keep yourself up-to-date through Twitter, Medium and GitHub as more details about the upcoming releases will be duly communicated.

We hope you enjoy this release and welcome your feedback!

Breaking changes

  • The chainsync protocol will now block peers that don't agree on the same block hash of a certain block height. If you're running a node with version < 1.2.0 you will lose connection to the main Swarm network. Please update your clients immediately! (#2585, #2622, #2619)
  • Removed support for QUIC protocol. We will reinstate this feature in a future point where we can fully support and make use of QUIC (#2597)

Deprecations

  • Removed dead code from the bitvector package (#2601)

Hardening

  • Kademlia will only do quick pruning on net errors (#2599)
  • Batches with very low value (with value <= price per block) are no longer considered valid (#2610)
  • Transaction monitor consistency improvements (#2496)

New features

  • Added a db nuke command to clean the node storage up and start afresh, with an option to forget the overlay too (#2577, #2594)

Bugfixes

  • Fixed a panic in the pushsync protocol while forwarding chunks with invalid stamps (#2608)

For a full PR-rundown please consult the v1.3.0 milestone.

Docker images

  • docker pull ethersphere/bee:1
  • docker pull ethersphere/bee:1.3
  • docker pull ethersphere/bee:1.3.0
  • docker pull ethersphere/bee:stable
  • docker pull quay.io/ethersphere/bee:1
  • docker pull quay.io/ethersphere/bee:1.3
  • docker pull quay.io/ethersphere/bee:1.3.0
  • docker pull quay.io/ethersphere/bee:stable
  • docker pull ethersphere/bee:1-slim
  • docker pull ethersphere/bee:1.3-slim
  • docker pull ethersphere/bee:1.3.0-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.3-slim
  • docker pull quay.io/ethersphere/bee:1.3.0-slim
  • docker pull quay.io/ethersphere/bee:latest-slim
  • docker pull quay.io/ethersphere/bee:stable-slim