bee

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

Stars
1.5K
Committers
65

Bot releases are visible (Hide)

bee - v1.4.0

Published by github-actions[bot] almost 3 years ago

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
bee - v1.3.0

Published by github-actions[bot] almost 3 years ago

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
bee - v1.2.0

Published by github-actions[bot] about 3 years ago

Release notes Bee v1.2.0

The bee team is proud to announce the latest v1.2.0 release!

We've been working hard to address a lot of security concerns, protocol improvements and mainnet visibility issues.

Our efforts in the past month have mainly been to add instrumentation in order to improve our protocol/component behavior visibility and we've managed to produce quite a bit of improvements as a result of a very tight feedback loop that relies on gathering and evaluation of empiric measurements of the network.

We've also added more plumbing to ensure peer blockchain synchronization and peer service level by responding to period latency checks. You can expect to see more changes in this domain with the next release as we're working hard on hardening the Swarm DHT so that service level to users is maintained.

We hope you enjoy this release!

Hardening

  • Avoid advertising private CIDR underlays to the public network (#2538)
  • Kademlia will now periodically ping all connected peers and will blocklist peers that consistently don't answer (#2543, #2522)
  • Pushsync will continue forwarding if replication fails (#2524)
  • Pullsync context cancellation has been improved peer isolation for context cancellation (#2562)
  • Pushsync will store more chunks when replication requests are received (#2526)
  • Malformed recursive file joiner reads are no longer possible (#2481)
  • Manifest filepath handling has been improved for better security and consistency (#2489)
  • Switched to each peer iterator for pushsync replication to improve replication (#2529)
  • Warn on underlay mismatch on handshake (#2464)
  • Verify own transaction used for overlay calculation on startup to mitigate user input error (#2422)
  • Postage stamp is no longer usable when postage stamp expires (#2390)
  • Prune oversaturated bins when depth increases (#2412)
  • P2P disconnect and blocklist now have a reason to improve code branching observability when inspecting logs (#2471)

New features

  • Added a --resync flag to force your node to resync all postage contract data on startup and more pprof profiles (#2405)
  • Allow transaction from another sender for identity tx so that user onboarding can be improved (#2409)
  • Added the new chainsync challenge-response protocol to verify that all connected peers are connected to a working blockchain backend (#2475)
  • Added new postage endpoits for batch topup and dilution (#2410, #2401)
  • Kademlia now measures peer latencies periodically using the ping-pong protocol and reports measurements using the topology endpoint and prometheus metrics (#2522)
  • Kademlia can now have static nodes which are protected from kicking behavior (relevant for bootnode behavior) (#2512)
  • Our libp2p abstraction adds a custom user agent and logs it on connection for better version propagation visibility on the mainnet (#2462, #2482)
  • Increased targetMaxLength for PSS message mining (#2406)

Bugfixes

  • Added pss target input validation (#2463)
  • Chunks stamped with an already expired stamp will be skipped for syncing and eventually deleted(#2392)
  • Add missing ticker stop on tag wait to avoid timer leak (#2433)
  • Added CORS expose swarm-tag header for bzz dir upload (#2450)
  • Improved peer announcement context handling (#2539)
  • Fixed broken ENS resolution due to an external package API change (#2458)
  • Local storage push index dangling item caused item pushing to grind to a halt (#2534)
  • Tag UID generation improved across node restarts using a different seed (#2425)
  • Improve nonce check on tx cancelled (#2395)
  • Persist postage stamps when added for better reliability (#2546)
  • Kademlia displayed wrong bootnode connection direction (#2570)
  • Pusher tag errors are no longer fatal (#2569)
  • Puller will never store max uint as topmost (#2566)
  • Wait for confirmations in WaitBlock when deploying a chequebook to improve reorg safety (#2416)

Performance improvements

  • Skip validation if peer is known to reduce blockchain backend calls (#2491)
  • Prevent goroutine pileup on peer validation with a timeout (#2444)
  • Flush kademlia metrics in separate goroutine (#2424)
  • Kademlia PSlice data structure rewrite to reduce number of allocations (#2453)
  • Add peer to cache if found in addressbook to reduce number of backend calls (#2511)
  • Only flush dirty kademlia metrics (#2418)
  • Allow dirty kademlia metrics shutdown on timeout (#2428)
  • Improve inefficient kademlia metrics saving (#2452)
  • Handshake handle checks with kademlia pick before overlay verification to reduce backend calls (#2541)

Misc

  • Dependency management and updates (go, go-ethereum, libp2p) (#2503, #2407, #2461, #2472, #2500, #2545, #2495, #2480, #2421
  • Added and improved a ton of metrics (#2487, #2490, #2502, #2498, #2513, #2520, #2509, #2484, #2497, #2508, #2514
  • Cleanups and refactorings (#2429, #2437, #2469, #2451, #2439, #2333, #2468, #2527, #2548, #2444, #2427)
  • Include all DNS protocol prefixes when Discovering (#2571)

Known Issues

  • A local storage leak has been observed on nodes that have intensive upload activity. This is due to a storage space optimization put in place due to the postage stamp storage incentives. We are working on deploying a fix and will update you on a migration path as soon as possible!

For the full PR rundown please consult the v1.2.0 milestone

Docker images

  • docker pull ethersphere/bee:1
  • docker pull ethersphere/bee:1.2
  • docker pull ethersphere/bee:1.2.0
  • docker pull ethersphere/bee:stable
  • docker pull quay.io/ethersphere/bee:1
  • docker pull quay.io/ethersphere/bee:1.2
  • docker pull quay.io/ethersphere/bee:1.2.0
  • docker pull quay.io/ethersphere/bee:stable
  • docker pull ethersphere/bee:1-slim
  • docker pull ethersphere/bee:1.2-slim
  • docker pull ethersphere/bee:1.2.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.2-slim
  • docker pull quay.io/ethersphere/bee:1.2.0-slim
  • docker pull quay.io/ethersphere/bee:latest-slim
  • docker pull quay.io/ethersphere/bee:stable-slim
bee - v1.1.0

Published by github-actions[bot] about 3 years ago

Bee v1.1.0 release notes

Hello bees!
These last couple of months have been paved with a lot of learnings for the bee team. We've been meticulously implementing your recommendations, trying to improve the bee developer experience so that you could build faster on Swarm, as well as inspecting the production network behavior, ironing out all sorts of kinks, bugs and performance issues.

IMPORTANT NOTE: the xDai chain is going to implement the London hardfork. Please stay informed and update your infrastructure accordingly as OpenEthereum clients are still not guaranteed to be supported after the hardfork!

Breaking changes

  • We renamed log field traceid to traceID (#2324)
  • Standalone mode has been phased out (in favor of dev mode, see below) (#2331)

Deprecations

  • PATCH under the /bzz endpoint has been moved to the stewardship endpoint. Please use that instead (#2356)
  • The stamps API has moved to the debug API (#2171)

New features

  • Add estimation of expected lifetime of batches (#2336)
  • Add possibility to cancel transactions (#2212)
  • Allow node to start in dev mode which does not require a blockchain backend. All storage is done in memory and backend behavior is mocked, so that you could develop your apps on Swarm even faster! Run ./bee dev and give it a try (#2347)
  • Add chunk upload endpoint that allows to stream chunks via websockets (#2230)

Hardening

  • Improve pushsync skiplist logic (#2348)
  • Improve pushsync replication in neighborhood logic, as it would sometimes replicate to peers which are not in the neighborhood (#2237)
  • Replicate with peers further from the chunk (#2293)
  • Discovery announce to lightnodes was not in place, which could under certain conditions impair their connectivity (#2351)
  • Disable bootnode active dialing (#2169)
  • Update dependency versions (libp2p, prometheus, among others) (#2316)
  • Peers are now checked for reachability before being persisted in the addressbook (#2319)
  • Bump base docker image (#2315)
  • Continue processing pullsync batch on unverifiable stamp. Previously, the whole batch would error and other chunks potentially discarded (#2228)
  • Prevent sending transaction if we don't have sufficient balance (#2337)
  • Cache on forwarding in retrievals (#2234)
  • Rate limit hive broadcast calls (#2235)
  • Disable forwarding node stamp verification, this is to mitigate nodes which are not properly synced to the chain from interrupting the syncing process (#2233)
  • Verify signer result chain ID conform to node configuration (#2214)
  • Postage stamp usable flag now indicates also if the batch was already expired (#2390)
  • When uploading content which is stamped using an already expired postage stamp, the node will not attempt to sync the content. You are advised to use longer-lived postage stamps and encrypt your content to work around this. It is not possible to reupload unencrypted content which was stamped using an expired postage stamp. We're working on improving on this (#2392)

Bugfixes

  • Fixed wrong timestamp usage in time settlements (#2358)
  • Fixed correct blocktime for xdai (#2340)
  • Fixed possible gcSizeChange inconsistency (#2296)
  • Fixed deadlocks on context done in pushsync and retrieval protocols. This caused goroutine leaks and elevated memory consumption (#2327)
  • Fixed a mantaray lookup bug where files that have shared prefix aren't found correctly (#2380)
  • Limit concurrent access to some parts of the api resources to improve API consistency, since bee does not support parallel on-chain operations (#2379)
  • Query header instead of block (resolves london hardfork related issues) (#2372)
  • Fixed a bug in kademlia that caused choosing a sanctioned peer closest to a chunk. Oops! (#2374)
  • Fixed a bug in the cancelled transactions nonce check (#2395)
  • Fixed excruciatingly long shutdown by allowing metrics to flush dirty (#2428)
  • Fixed unnecessary flushing of metrics that haven't changed in kademlia (#2418)

Performance improvements

  • Improve PSS efficiency (#2140, #2287)

Misc

  • Updated go-ethereum version (#2342, #2408)
  • Bump clef in dockercompose (#2366)
  • Added batchstore checksums (#2227)
  • Expose the transaction API early (#2210)
  • Add endpoint that emits information about collisions within all buckets of a batch (#2321)
  • Kademlia metrics flush in a separate goroutine in a way that doesn't affect connection management due to long flush times (#2424)

Docker images

  • docker pull ethersphere/bee:1
  • docker pull ethersphere/bee:1.1
  • docker pull ethersphere/bee:1.1.0
  • docker pull ethersphere/bee:stable
  • docker pull quay.io/ethersphere/bee:1
  • docker pull quay.io/ethersphere/bee:1.1
  • docker pull quay.io/ethersphere/bee:1.1.0
  • docker pull quay.io/ethersphere/bee:stable
  • docker pull ethersphere/bee:1-slim
  • docker pull ethersphere/bee:1.1-slim
  • docker pull ethersphere/bee:1.1.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.1-slim
  • docker pull quay.io/ethersphere/bee:1.1.0-slim
  • docker pull quay.io/ethersphere/bee:latest-slim
  • docker pull quay.io/ethersphere/bee:stable-slim
bee - v1.0.0

Published by github-actions[bot] over 3 years ago

Release notes Bee v1.0.0

Hello world, bee 🐝

Breaking changes

  • The testnet networkID has changed to 10, making place for the mainnet to take networkID 1. In case you need to specify a custom network ID - please update the networkID in your configuration file.
  • Your node will start by default in testnet configuration. If you'd like to use bee on the mainnet please specify the --mainnet flag. These default configurations make sure that your nodes has the right network ID and the right bootnode settings.
  • Introduce non-minable overlay addresses, which makes it much harder and costly for node operators to choose their overlay, thereby improving the security of the Swarm network (#2108)

Improvements

  • Add a disclaimer on startup and in our README (#2147)
  • Increase the likelyhood that all chunks fall in their natural location by retrying the upload of those chunks from which we suspect they did not land in their natural location (#2049)
  • Making the push-sync protocol resilient against closest-peer malfunctioning (#2066)
  • Replicate chunks in the nearest neighborhood if our node is the closest to a chunk (#2115))
  • Protect the user against using a stamp too soon, by not allowing the usage of a postage batch for 10 blocks after it was purchased (#2063)
  • Change the global refreshment rate to 45% of the current refresh rate (#2142)
  • Improve the useability of postage stamps and content-management by adding additional information to the GET /stamps endpoint (#2051)
  • Optimize the storage space utilization (#2071)
  • Prevent the loss of postage batches, by reading information on postage batch creation from the chain (#2080)
  • Allow nodes to connect to other nodes that did not deploy a chequebook, thereby paving the way for zero-eth, zero-bzz and zero-xDAI entry to the network (#2102)
  • Ensure that the proper gas-limits are passed on xDAI by hard-coding the gas limits for that chain (#2102)
  • Improve the handling of blockchain-transactions (#1469)
  • Protect against overissuance of postage stamps and allow the transfer of part of the stamps under a postage batch (#1625)
  • Allow the price for bandwidth to fluctuate and deduct an initial amount from the first-received cheque from a peer (#1925)
  • Increase the resilience against churn by:
    • Speed up the build-up of a healthy Kademlia (#2028)
    • Delay the start-up of push sync and pull sync protocols (#2050)
  • Ensure the profitability and security of forwarder nodes by only letting originator nodes pay with cheques (#1870)
  • Several bug fixes and cleanups
bee - v0.6.2

Published by github-actions[bot] over 3 years ago

Release notes Bee v0.6.2 🐝

Dear node operators,

After a week of observing our cluster, testing and flying with Bee v0.6.* in the wild, we present you the v0.6.2 release.

Thank you all for your patience and helping us with the real-life testing!

For questions and support, please join our Discord

Notable improvements over v0.6.0

  • Fix a panic that can happen when the statestore is closed (#1807)
  • Correctly decode and interpret the transaction configuration parameter (1810)
  • add gas price setting for deployment and initial deposit (#1812)
  • Be able to handle incorrect protocol messages in pullsync (#1851)
  • Revert updating to go 1.16 because one of our dependencies can't handle the newest Go version. Use go 1.15 instead #1855)
  • Disable the pull sync as a light node (#1883). Please note that this means that a light node cannot receive PSS message.
  • Limit number of light nodes that a full node accepts (#1898)
  • Shutdown the node when the connection with Infura times out (#1868)
  • Several performance optimizations across our protocols. Interested people can look up the git-log

Release notes Bee v0.6.0 🐝

The long-awaited v0.6.0 release is out. This release contains many new features and improvements, all focused on hardening your Bee node and the network.

Users should be aware that updating your node includes a migration path to ensure that there is no content stored by your node that does not have postage stamps. Users who pin content need to manually migrate their data.

The release also features a brand-new documentation and will soon be followed by releases of bee-js and the swarm-cli and bee-dashboard

New features

  • ⚠️ The light node feature enables you to use Swarm while requiring minimal resource consumption of your system. A light node can be used to upload and download content or receive PSS messages. It does not store chunks or forward traffic (#1458). Please take note that the default configuration of a node is to be a light node if you want to be a full node, you will have to explicitly mention this by configuring your node with the full-node flag.
  • ⚠️ Postage stamps enable the persistence of content based on a costly signal on the blockchain. By doing so, maximizing the utilization of the DISC (#1562). Please take note that adding a postage stamp is now compulsory on each upload. Migrating to v0.6.0 will remove all un-pinned chunks without stamps. If you are pinning content, please ensure this is backed up and unpin all content before updating. Instead of unpinning all content, you can also manually erase the <path_to_data-dir>/localstore. As part of this change, the db-capacity flag was changed to cache-capacity. Lastly, there exists a known issue that may cause the loss of locally pinned chunks when a node is not properly shut down
  • Bee nodes now give each other a limited amount of bandwidth allowance per time for free! This means that downloading from Swarm is possible without on-chain interaction if you stay within this limit. The current, monetary way, of settling bandwidth debt is provided for those nodes that want to use more bandwidth than is provided for free (#1711)
  • You can now instruct your Bee node to re-upload previously-pinned content by using the PATCH /bzz/{address} endpoint (#1705)
  • A brand-new ASCII-art Bee in the logs and README (thanks asciiart.eu) (#1761)

Hardening

  • ⚠️ Reduce the possibility of launching a DDOS attack on the network by requiring at least one interaction with Ethereum. This change was needed because the free bandwidth allowance feature now allows starting a node without a chequebook. Please take note that nodes which deployed their chequebook with bee v0.5.0 will have to be started with the --transaction TXHASH flag where TXHASH is any Ethereum transaction on goerli network sent from the bee node's Ethereum address. The hash of the chequebook deployment transaction can be used for this and can be looked up on etherscan. For nodes which first started with v0.5.1 or higher no action is necessary, as their chequebook deployment transaction will be automatically picked-up by the Bee node. (#1655)
  • To improve the reliability of receipts to know whether an upload was successful, each storer node now signs the storage receipts of chunks that belong to their neighborhood. The signed receipt is passed back and validated by all forwarder nodes and the uploader (#1431).
  • Make it more likely that nodes share the same view on who belongs to a neighborhood by redefining how Swarm calculates the depth--not allowing unsaturated bins outside the depth (#1553).
  • Prevent SWAP imbalances by defining a separate context for push-sync replication within the neighborhood (#1567).
  • Change the maximum depth of the network to 32, allowing 2^32 neighborhoods. (#1593)
  • Disconnect from peers that have a payment threshold that is too low. (#1635)
  • Apply rate limiting on peer gossiping. #1654
  • Bootnodes kick out old nodes when reaching a certain threshold, ensuring a reasonable resource consumption by the bootnodes (#1715)
  • No longer use the slock.it RPC endpoint by default. Instead, instruct the user to run their node or create an API endpoint with Infura (#1731).

Improvements to existing features

  • ⚠️ Removal of /files and /dirs endpoints. Individual files can now be uploaded on the /bzz endpoint (#1501).
  • ⚠️ /cashout endpoint updated to make it easier to manage uncashed cheques. If you programatically manage your uncashed cheques, be sure to update it (#1402).
  • The pinning API has been completely rewritten to expose basic operations over pinned content (#1566)
  • Improved handling of blockchain transactions (#1484), (#1487), (#1465)
  • The checksums are now signed by our GPG key. To validate the authenticity of your node: download the checksums, validate the signature and compare against the checksums of your version (#1581)
  • Allow the handling of non-standard, bee-specific headers via the browser through CORS preflight requests. (#1597)
  • Use the correct HTTP response code when creating a new resource (#1611)
  • Log welcome message on incoming connections (#1590)
  • Close the NAT manager on node shutdown. (#1622)
  • Update to go 1.16 (#1657)
  • The /topolgy endpoint in the debugAPI now exposes metrics, allowing you to know more about your peer connections (#1658)
  • Change the default initial deposit to 10000000000000000 PLUR (1BZZ) (#1657)
  • Improvements to feed-lookup algorithm (#1548)
  • Increase the default bin size to 8 (#1729)

Bugs

  • Improve consistency of addressbook by adding additional libp2p verifications. ([#1696])(https://github.com/ethersphere/bee/pull/1696)
  • Several improvements to push sync to ensure a chunk is pushed to the neighborhood, even in face of errors via some routes (#1662)
  • Fix overflow bug in pull sync (#1609)
  • Print bee version to stdout instead of stderr. (#1660)

Efficiency improvements

  • Unneeded pull syncing in the network is reduced by only syncing within the nearest-neighborhood (#1537)
  • Improve localstore lock contention when putting single chunks that already exist in the store. This prevents acquiring the lock for already existing chunks (#1568)
  • Reduced the cost to deploy a chequebook by a factor of 10, by utilizing a proxy pattern. This change requires bee-clef to be v0.4.12 or higher if you don't have a chequebook deployed yet (#1539).
  • Build up a healthy topology faster by establishing connections concurrently. (#1647)
  • Reduce resource consumption (IO/CPU/memory) on live pull syncing with multiple peers (#1683)
  • Improve the efficiency of retrieval and push sync by doing settlement asynchronously (#1578)

Misc

  • Database export/import functionalities are now available to facilitate integration testing and enable a smooth future migration path (#1580)
  • Allow configuration of how many Ethereum calls are done by exposing the block-time configuration parameter. Adjustment of this parameter is not advised on the Goerli network (1697)

Docker images

  • docker pull ethersphere/bee:0
  • docker pull ethersphere/bee:0.6
  • docker pull ethersphere/bee:0.6.2
  • docker pull ethersphere/bee:latest
  • docker pull ethersphere/bee:beta
  • docker pull quay.io/ethersphere/bee:0
  • docker pull quay.io/ethersphere/bee:0.6
  • docker pull quay.io/ethersphere/bee:0.6.2
  • docker pull quay.io/ethersphere/bee:latest
  • docker pull quay.io/ethersphere/bee:beta
bee - v0.6.1

Published by github-actions[bot] over 3 years ago

Release notes Bee v0.6.1 🐝

⚠️ Bee v0.6.1 contains a few important improvements over v0.6.0, but is not stable. Node operators are advised to continue operating v0.5.3 until further notice in our Discord channel

Release notes Bee v0.6.0 🐝

The long-awaited v0.6.0 release is out. This release contains many new features and improvements, all focused on hardening your Bee node and the network.

Users should be aware that updating your node includes a migration path to ensure that there is no content stored by your node that does not have postage stamps. Users who pin content need to manually migrate their data.

The release also features a brand-new documentation and will soon be followed by releases of bee-js and the swarm-cli and bee-dashboard

New features

  • ⚠️ The light node feature enables you to use Swarm while requiring minimal resource consumption of your system. A light node can be used to upload and download content or receive PSS messages. It does not store chunks or forward traffic (#1458). Please take note that the default configuration of a node is to be a light node if you want to be a full node, you will have to explicitly mention this by configuring your node with the full-node flag.
  • ⚠️ Postage stamps enable the persistence of content based on a costly signal on the blockchain. By doing so, maximizing the utilization of the DISC (#1562). Please take note that adding a postage stamp is now compulsory on each upload. Migrating to v0.6.0 will remove all un-pinned chunks without stamps. If you are pinning content, please ensure this is backed up and unpin all content before updating. Instead of unpinning all content, you can also manually erase the <path_to_data-dir>/localstore. As part of this change, the db-capacity flag was changed to cache-capacity. Lastly, there exists a known issue that may cause the loss of locally pinned chunks when a node is not properly shut down
  • Bee nodes now give each other a limited amount of bandwidth allowance per time for free! This means that downloading from Swarm is possible without on-chain interaction if you stay within this limit. The current, monetary way, of settling bandwidth debt is provided for those nodes that want to use more bandwidth than is provided for free (#1711)
  • You can now instruct your Bee node to re-upload previously-pinned content by using the PATCH /bzz/{address} endpoint (#1705)
  • A brand-new ASCII-art Bee in the logs and README (thanks asciiart.eu) (#1761)

Hardening

  • ⚠️ Reduce the possibility of launching a DDOS attack on the network by requiring at least one interaction with Ethereum. This change was needed because the free bandwidth allowance feature now allows starting a node without a chequebook. Please take note that nodes which deployed their chequebook with bee v0.5.0 will have to be started with the --transaction TXHASH flag where TXHASH is any Ethereum transaction on goerli network sent from the bee node's Ethereum address. The hash of the chequebook deployment transaction can be used for this and can be looked up on etherscan. For nodes which first started with v0.5.1 or higher no action is necessary, as their chequebook deployment transaction will be automatically picked-up by the Bee node. (#1655)
  • To improve the reliability of receipts to know whether an upload was successful, each storer node now signs the storage receipts of chunks that belong to their neighborhood. The signed receipt is passed back and validated by all forwarder nodes and the uploader (#1431).
  • Make it more likely that nodes share the same view on who belongs to a neighborhood by redefining how Swarm calculates the depth--not allowing unsaturated bins outside the depth (#1553).
  • Prevent SWAP imbalances by defining a separate context for push-sync replication within the neighborhood (#1567).
  • Change the maximum depth of the network to 32, allowing 2^32 neighborhoods. (#1593)
  • Disconnect from peers that have a payment threshold that is too low. (#1635)
  • Apply rate limiting on peer gossiping. #1654
  • Bootnodes kick out old nodes when reaching a certain threshold, ensuring a reasonable resource consumption by the bootnodes (#1715)
  • No longer use the slock.it RPC endpoint by default. Instead, instruct the user to run their node or create an API endpoint with Infura (#1731).

Improvements to existing features

  • ⚠️ Removal of /files and /dirs endpoints. Individual files can now be uploaded on the /bzz endpoint (#1501).
  • ⚠️ /cashout endpoint updated to make it easier to manage uncashed cheques. If you programatically manage your uncashed cheques, be sure to update it (#1402).
  • The pinning API has been completely rewritten to expose basic operations over pinned content (#1566)
  • Improved handling of blockchain transactions (#1484), (#1487), (#1465)
  • The checksums are now signed by our GPG key. To validate the authenticity of your node: download the checksums, validate the signature and compare against the checksums of your version (#1581)
  • Allow the handling of non-standard, bee-specific headers via the browser through CORS preflight requests. (#1597)
  • Use the correct HTTP response code when creating a new resource (#1611)
  • Log welcome message on incoming connections (#1590)
  • Close the NAT manager on node shutdown. (#1622)
  • Update to go 1.16 (#1657)
  • The /topolgy endpoint in the debugAPI now exposes metrics, allowing you to know more about your peer connections (#1658)
  • Change the default initial deposit to 10000000000000000 PLUR (1BZZ) (#1657)
  • Improvements to feed-lookup algorithm (#1548)
  • Increase the default bin size to 8 (#1729)

Bugs

  • Improve consistency of addressbook by adding additional libp2p verifications. ([#1696])(https://github.com/ethersphere/bee/pull/1696)
  • Several improvements to push sync to ensure a chunk is pushed to the neighborhood, even in face of errors via some routes (#1662)
  • Fix overflow bug in pull sync (#1609)
  • Print bee version to stdout instead of stderr. (#1660)

Efficiency improvements

  • Unneeded pull syncing in the network is reduced by only syncing within the nearest-neighborhood (#1537)
  • Improve localstore lock contention when putting single chunks that already exist in the store. This prevents acquiring the lock for already existing chunks (#1568)
  • Reduced the cost to deploy a chequebook by a factor of 10, by utilizing a proxy pattern. This change requires bee-clef to be v0.4.12 or higher if you don't have a chequebook deployed yet (#1539).
  • Build up a healthy topology faster by establishing connections concurrently. (#1647)
  • Reduce resource consumption (IO/CPU/memory) on live pull syncing with multiple peers (#1683)
  • Improve the efficiency of retrieval and push sync by doing settlement asynchronously (#1578)

Misc

  • Database export/import functionalities are now available to facilitate integration testing and enable a smooth future migration path (#1580)
  • Allow configuration of how many Ethereum calls are done by exposing the block-time configuration parameter. Adjustment of this parameter is not advised on the Goerli network (1697)

Docker images

  • docker pull ethersphere/bee:0
  • docker pull ethersphere/bee:0.6
  • docker pull ethersphere/bee:0.6.1
  • docker pull ethersphere/bee:latest
  • docker pull ethersphere/bee:beta
  • docker pull quay.io/ethersphere/bee:0
  • docker pull quay.io/ethersphere/bee:0.6
  • docker pull quay.io/ethersphere/bee:0.6.1
  • docker pull quay.io/ethersphere/bee:latest
  • docker pull quay.io/ethersphere/bee:beta
bee - v0.6.0

Published by github-actions[bot] over 3 years ago

Release notes Bee v0.6.0 🐝

The long-awaited v0.6.0 release is out. This release contains many new features and improvements, all focused on hardening your Bee node and the network.

Users should be aware that updating your node includes a migration path to ensure that there is no content stored by your node that does not have postage stamps. Users who pin content need to manually migrate their data.

The release also features a brand-new documentation and will soon be followed by releases of bee-js and the swarm-cli and bee-dashboard

New features

  • ⚠️ The light node feature enables you to use Swarm while requiring minimal resource consumption of your system. A light node can be used to upload and download content or receive PSS messages. It does not store chunks or forward traffic (#1458). Please take note that the default configuration of a node is to be a light node if you want to be a full node, you will have to explicitly mention this by configuring your node with the full-node flag.
  • ⚠️ Postage stamps enable the persistence of content based on a costly signal on the blockchain. By doing so, maximizing the utilization of the DISC (#1562). Please take note that adding a postage stamp is now compulsory on each upload. Migrating to v0.6.0 will remove all un-pinned chunks without stamps. If you are pinning content, please ensure this is backed up and unpin all content before updating. Instead of unpinning all content, you can also manually erase the <path_to_data-dir>/localstore. As part of this change, the db-capacity flag was changed to cache-capacity. Lastly, there exists a known issue that may cause the loss of locally pinned chunks when a node is not properly shut down
  • Bee nodes now give each other a limited amount of bandwidth allowance per time for free! This means that downloading from Swarm is possible without on-chain interaction if you stay within this limit. The current, monetary way, of settling bandwidth debt is provided for those nodes that want to use more bandwidth than is provided for free (#1711)
  • You can now instruct your Bee node to re-upload previously-pinned content by using the PATCH /bzz/{address} endpoint (#1705)
  • A brand-new ASCII-art Bee in the logs and README (thanks asciiart.eu) (#1761)

Hardening

  • ⚠️ Reduce the possibility of launching a DDOS attack on the network by requiring at least one interaction with Ethereum. This change was needed because the free bandwidth allowance feature now allows starting a node without a chequebook. Please take note that nodes which deployed their chequebook with bee v0.5.0 will have to be started with the --transaction TXHASH flag where TXHASH is any Ethereum transaction on goerli network sent from the bee node's Ethereum address. The hash of the chequebook deployment transaction can be used for this and can be looked up on etherscan. For nodes which first started with v0.5.1 or higher no action is necessary, as their chequebook deployment transaction will be automatically picked-up by the Bee node. (#1655)
  • To improve the reliability of receipts to know whether an upload was successful, each storer node now signs the storage receipts of chunks that belong to their neighborhood. The signed receipt is passed back and validated by all forwarder nodes and the uploader (#1431).
  • Make it more likely that nodes share the same view on who belongs to a neighborhood by redefining how Swarm calculates the depth--not allowing unsaturated bins outside the depth (#1553).
  • Prevent SWAP imbalances by defining a separate context for push-sync replication within the neighborhood (#1567).
  • Change the maximum depth of the network to 32, allowing 2^32 neighborhoods. (#1593)
  • Disconnect from peers that have a payment threshold that is too low. (#1635)
  • Apply rate limiting on peer gossiping. #1654
  • Bootnodes kick out old nodes when reaching a certain threshold, ensuring a reasonable resource consumption by the bootnodes (#1715)
  • No longer use the slock.it RPC endpoint by default. Instead, instruct the user to run their node or create an API endpoint with Infura (#1731).

Improvements to existing features

  • ⚠️ Removal of /files and /dirs endpoints. Individual files can now be uploaded on the /bzz endpoint (#1501).
  • ⚠️ /cashout endpoint updated to make it easier to manage uncashed cheques. If you programatically manage your uncashed cheques, be sure to update it (#1402).
  • The pinning API has been completely rewritten to expose basic operations over pinned content (#1566)
  • Improved handling of blockchain transactions (#1484), (#1487), (#1465)
  • The checksums are now signed by our GPG key. To validate the authenticity of your node: download the checksums, validate the signature and compare against the checksums of your version (#1581)
  • Allow the handling of non-standard, bee-specific headers via the browser through CORS preflight requests. (#1597)
  • Use the correct HTTP response code when creating a new resource (#1611)
  • Log welcome message on incoming connections (#1590)
  • Close the NAT manager on node shutdown. (#1622)
  • Update to go 1.16 (#1657)
  • The /topolgy endpoint in the debugAPI now exposes metrics, allowing you to know more about your peer connections (#1658)
  • Change the default initial deposit to 10000000000000000 PLUR (1BZZ) (#1657)
  • Improvements to feed-lookup algorithm (#1548)
  • Increase the default bin size to 8 (#1729)

Bugs

  • Improve consistency of addressbook by adding additional libp2p verifications. ([#1696])(https://github.com/ethersphere/bee/pull/1696)
  • Several improvements to push sync to ensure a chunk is pushed to the neighborhood, even in face of errors via some routes (#1662)
  • Fix overflow bug in pull sync (#1609)
  • Print bee version to stdout instead of stderr. (#1660)

Efficiency improvements

  • Unneeded pull syncing in the network is reduced by only syncing within the nearest-neighborhood (#1537)
  • Improve localstore lock contention when putting single chunks that already exist in the store. This prevents acquiring the lock for already existing chunks (#1568)
  • Reduced the cost to deploy a chequebook by a factor of 10, by utilizing a proxy pattern. This change requires bee-clef to be v0.4.12 or higher if you don't have a chequebook deployed yet (#1539).
  • Build up a healthy topology faster by establishing connections concurrently. (#1647)
  • Reduce resource consumption (IO/CPU/memory) on live pull syncing with multiple peers (#1683)
  • Improve the efficiency of retrieval and push sync by doing settlement asynchronously (#1578)

Misc

  • Database export/import functionalities are now available to facilitate integration testing and enable a smooth future migration path (#1580)
  • Allow configuration of how many Ethereum calls are done by exposing the block-time configuration parameter. Adjustment of this parameter is not advised on the Goerli network (1697)

Docker images

  • docker pull ethersphere/bee:0
  • docker pull ethersphere/bee:0.6
  • docker pull ethersphere/bee:0.6.0
  • docker pull ethersphere/bee:latest
  • docker pull ethersphere/bee:beta
  • docker pull quay.io/ethersphere/bee:0
  • docker pull quay.io/ethersphere/bee:0.6
  • docker pull quay.io/ethersphere/bee:0.6.0
  • docker pull quay.io/ethersphere/bee:latest
  • docker pull quay.io/ethersphere/bee:beta
bee - v0.5.3

Published by github-actions[bot] over 3 years ago

Release notes v0.5.3

Dear Swarm supporters and Bee users, over the past few weeks we've been looking into various issues that have been reported by the community in an effort to improve the user experience and resource usage of bee. This release has plenty of improvements to performance, node configurability, metrics as well as the usual refactorings and cleanups. We'd like to thank all of you for your significant contributions, be they with bug reports, PRs of all sorts, debugging profiles and just test driving version candidates on our Discord channels! We're humbled by your engagement and we hope you enjoy this latest release <3

Notes

We've exposed some of the underlying leveldb configuration parameters through new CLI flags of bee. You can now tweak your setup without having to rebuild the image every time you'd like to adjust a parameter. Important to note: since the Swarm working set is over 20 gigabytes of data, leveldb has to have enough open file limit allowance for it not to be overburdened by continuous opening and closing of file handles to retrieve blocks.
We therefore recommend node operators to set the number of open file limit to at least 7200 open files. We did not set this value by default as this might be out of bound for certain setups and operating systems, resulting in a setup which is broken by default, however you are highly encouraged to set this number anywhere between 7200-12000.
If you experience high I/O you can also toggle the disable seeks compaction option. Block cache and write buffer are also adjustable, and you are free to experiment with them and see what works best for your setup.

Features:

  • Allow specifying an account for clef, enabling one clef instance to control multiple bee instances (#1313)
  • Prevent users from starting with a different overlay address (#1377)
  • Bootstrap Debug API in two phases to allow health checks response while node is still starting (#1358, #1370)
  • Expose levelDB configuration parameters through CLI flags (#1454)
  • Increase default cashout gas limit to 300K and allow gas price and gas limit to be specified through the cash debug API with headers (#1455)

Performance improvements

  • Limit the number of kademlia connections per bin to 16 outside of depth (#1352) and (#1399)
  • Coalesce pull sync writes to localstore (#1386)
  • Improve context handling in push sync (#1416)
  • Increase batch size for garbage collection (#1424)
  • Reduce number of pusher concurrent jobs (#1430)
  • Improved localstore lock contention by reducing GC critical section (#1435):
  • Utilize falling edge detection to await notifying subscriptions when there is a write to the database (#1484)
  • Balanced bins in Kademlia (#1207, #1453)

General improvements

  • Improvements to logging (#1360, #1379)
  • Don't accept incoming connections before the node is online (#1390)
  • Add expiration to connection attempt to bootnode (#1407)
  • Fix a security issue with CORS headers (#1421)
  • Fix panic by returning previously swallowed error (#1426)
  • Fix typo in bee-get-addr for homebrew (#1460)
  • Refactor content-addressed chunks and single-owner chunks (#1363) (#1394)
  • Remove abigen-generated bindings (#1361, #1360, #1362)
  • Added metrics to a bunch of places and fixed how we collect metrics at some (#1373, #1410, #1417, #1427, #1446, #1373)
bee - v0.5.2

Published by github-actions[bot] over 3 years ago

Release notes 0.5.2

The 0.5.2 release includes two essential patches

  • Disk I/O is reduced by configuring LevelDB more efficiently (#1339)
  • Set the payment-threshold field as a copy, instead of a reference (#1329)

There was one minor patch, making it possible for MacOS users who use brew to update their bee node (#1334)

Lastly, the deploy command was added to bee. This command deploys a chequebook if needed, thus reducing the time for the main service to start up and allowing bee to start in environments which have strict requirements on boot-up time (such as Windows) (#1314)

Docker images

  • docker pull ethersphere/bee:0
  • docker pull ethersphere/bee:0.5
  • docker pull ethersphere/bee:0.5.2
  • docker pull ethersphere/bee:latest
  • docker pull ethersphere/bee:beta
bee - v0.5.1

Published by github-actions[bot] over 3 years ago

Release notes

This release is mostly characterized by bug fixes 🐛, but also includes some minor new features 🎉.

FEATURES 🎉:

  • CORS is now enabled on the debugAPI, allowing application developers to use the endpoints in the debugAPI (#1288)
  • ARM support for dockerized bee, allowing easy installation of bee on Raspberri Pi! (#1315)
  • allow DNS entry inside nat-addr option to enable usage of dynamic DNS (#1278)
  • Most packages in the bee code now include go.doc documentation (#1152). Have a look at go.doc
  • The standard configuration file for bee package managers was updated, now enabling the debuAPI by default, using the slock.it rpc endpoint for swap-endpoint updating the default values to be in line with the new defaults of the bee node and enabling the clef-signer by default. (#1230, #1327) Note: we reccomend setting the swap-endpoint to an endpoint which you maintain yourself.

BUG FIXES 🐛:

  • The feeds feature now works (#1259, #1246)
  • A memory leak was fixed by better handling of streams in the libp2p networking package (#1282, #1290)
  • Upon loading the statstore, bee now attempts to repair a corrupted state (#1253)
  • The bee-get-addr command now directs the user to the bzzaar (#1228)
  • The hasher package now correctly handles wrapping chunks in the deeper levels (#1267)
  • On updating the bee package in homebrew, the password does not anymore automatically reset (#1231).
  • We improved the logic on how we are sending transactions to the blockchain, making it less likely that a transaction will get stuck and reducing the burden on the connected Ethereum node (#1266, #1308, #1310)
  • The bee node does not anymore accept two SOC's with the same address, preventing the user from corrupting his private address space in Swarm (#1256)
  • Previously deleted tags are not anymore reinserted in the database when the node restarts (#1255)

Docker images

  • docker pull ethersphere/bee:0
  • docker pull ethersphere/bee:0.5
  • docker pull ethersphere/bee:0.5.1
  • docker pull ethersphere/bee:latest
  • docker pull ethersphere/bee:beta
bee - v0.5.0

Published by github-actions[bot] over 3 years ago

Release notes v0.5.0

This Bee release is a breaking release. We kindly ask all node operators to update their nodes as soon as possible to ensure continuity of the network.

Breaking changes:

  • A new testnet token is deployed and used by the node. This redeployment happened to facilitate integration with the new Bzzaar and means that new nodes won't connect to old nodes.
  • The default values for any token-related configuration has changed since the new gBZZ token has 16 decimals instead of zero. If you start Bee with a custom configuration, please ensure that you base your configuration on the right default values.
  • The handshake protocol version was updated from 1 to 2 and the signed payload is now prefixed with bee-handshake so that the security properties of the signing module can be improved. You will be seeing incompatible stream: protocol not supported error messages in your terminal output until all nodes in the network have been upgraded.
  • the /chunks endpoint has two notable breaking changes: i) it will only accept content-addressed chunk uploads, and ii) it does not require a precalculated BMT hash in order to upload a chunk. The node will calculate the BMT hash for the given span and chunk content, and will return the BMT hash in the response. For uploading single-owner chunks, please refer to the /soc endpoint documentation in our OpenAPI spec.

Non-breaking changes/additions:

  • Bee now supports swarm feeds. You can now use feeds from your ENS entry and have automatic feed indirection using the /bzz endpoint.
  • We made it easier to follow the progress of your upload by revamping tags.
  • The pushsync protocol is refactored and we worked out some rough edges. This improves protocol resilience.
  • Tags will no longer be auto-generated on the /chunks endpoint. Please create your custom tag and attach it to all chunks that belong to a single upload.
  • We added the /blocklist debugAPI endpoint which shows what peers are banned from interacting with your node.
  • The boot-up sequence now detects when you connect to an Ethereum node that is not synced and pauses the Bee node until the Ethereum node is synced.
  • The boot-up sequence now waits for bee-clef to boot up instead of immediately returning an error.
  • We improved the observability of the retrieval protocol with better metrics.
  • We improved the observability of the libp2p networking stack by adding metrics.
  • We added metrics to track the availableBalance, which makes it possible to programmatically create warnings when your node running out of token balance.
  • The retrieval protocol now sends preemptive retrieve requests when a certain peer appears to be slow, resulting in improved resilience of the protocol.
  • The logs are improved to enhance understanding of what the node is doing.
  • The default address for IPv6 was changed to be aligned with the default address of IPv4.
bee - v0.4.2

Published by github-actions[bot] almost 4 years ago

Release notes

This release of Bee adds the following features and improvements:

  • Chunks are fetched from the network when you attempt to pin content that is not available locally. Please note that this operation should be regarded as a fall back; the recommended use is to ensure that the content is available in your localstore and only after that do the pin operation.
  • Non-encrypted content which is uploaded via the dirs endpoint are now idempotent, meaning that uploading the same content twice will result in the same Swarm hash
  • The Bee node can now write logs to the Windows Event Log
  • Your node's version will be from now on printed on startup
  • Push sync metrics are simplified to facilitate better visibility on what happens during content-upload
bee - v0.4.1

Published by github-actions[bot] almost 4 years ago

Release notes

This release contains 3 essential improvements to the Bee:

  • Increased reliability of upload and download through fixing an inconsistency in the way we maintain the addressbook of peer connections and cleaning the file path when uploading a directory
  • Added support for docker compose, which creates an app container for Bee and Bee-clef
  • Improved configuration of ENS, now allowing you to load a custom ens contract on any EVM chain which complies with the ENS interface.
bee - v0.4.0

Published by github-actions[bot] almost 4 years ago

Release notes

This release of Bee contains important new features, maintainability improvements, bug fixes, and performance increases.

Features:

  • PSS mailboxing, meaning that you will now receive PSS messages—even if you were offline at the moment that the message was sent
  • Un(pinning) API for files and collections, we complete the pinning API such that you can now pin and unpin your files and collections
  • Granular management of the pin-counter, which allows the user to force-unpin certain chunks. This feature is only advised for advanced users of Bee.
  • Listing pinned chunks with pages
  • Expose underlay address (logs/API) for nodes that are under a NAT protocol

Bug fixes:

  • Remove anonymous field in tag reply
  • Solve data inconsistency problem related to synching and garbage collection
  • Improve concurrent handling of SWAP updates
  • Passing context properly in protocols

Performance improvements:

  • Optimization of resource usage of hashing upon upload an download
  • Do not wait for the NAT manager to be ready in standalone mode
  • Terminate idle connections on Bee HTTP server by adding timeouts to requests
bee - v0.3.1

Published by github-actions[bot] about 4 years ago

This release addresses some of the problems discovered in the v0.3.0 release:

  • Disconnect peers that have no SWAP beneficiary when trying to pay
  • Improve the accounting flow so that settlement of actual debt is already triggered in the Reserve stage
  • Correctly return HTTP Not Found status on certain errors when downloading a file or a chunk
bee - v0.3.0

Published by github-actions[bot] about 4 years ago

TL;DR

Bee Beta contains the required features to build rich applications on top of Swarm. This release adds:

  • Bandwidth incentives (on the Görli test network) are enabled by default
  • Zero-leak messaging (Pss)
  • External signer support (Clef)
  • Improved sync and download performance
  • Breaking changes on protocol level (TL;DR - just update your nodes)

We invite you to try it out and get in touch at our BeeHive or Telegram.

Milestone

Bee's third release marks a major milestone of the Bee project; we believe that developers can now unleash rich applications over Swarm with a good balance of performance and security. We understand that as the Swarm ecosystem develops, developers might need access to low-level APIs in order to develop a rich application experience, we therefore also offer a set of low-level APIs that allow you to interact with the Swarm network in your own, custom way.

We invite you to use our APIs. Your feedback would be beneficial for us to further improve them in the future.

Breaking changes

Several breaking changes were introduced with this version. You are advised to update your nodes promptly.

Bandwidth incentives

Bee Beta contains the basis for the Swarm bandwidth incentives. You will now earn gBZZ (Görli BZZ) by running your Swarm node.
Conversely, you are required to pay with gBZZ in order to upload and download content. You can get gBZZ at our faucet - check our documentation on how to fund your node's chequebook.

Zero-leak messaging

Bee Beta releases the second iteration of Pss (Postage service over swarm). Pss is zero-leak messaging over Swarm that allows for confidential, anonymous and untraceable node-to-node communication. Pss comes with a websocket API that allows clients to send a message to a recipient on an overlay address as well as to subscribe to a topic and receive messages.

External signer

Bee now supports an external signer (Clef) for security reasons to allow private keys not to be exposed to client process.

Speed improvements

Uploading and downloading data to Bee is now significantly more performant than it used to be(e).

Documentation

All new features are documented in our documentation.

Get in touch

As mentioned, we invite you to start building your applications on top of Swarm. We welcome discussions and collaborations. Get in touch with us via Telegram or the Beehive.

bee - v0.2.0

Published by github-actions[bot] about 4 years ago

The second release (AKA Bee Summer) of Bee improves the utility of the DISC (as released in v0.1.0) and lays the foundation for Swarm bandwidth incentives. To that end, we:

  1. Add the necessary utilities for developers to start building unstoppable applications on top of Swarm
  2. Add features which makes it possible for chunks to persist and be globally discoverable in the network
  3. Add features that improve the UX of already-released features
  4. Lay the foundation for Swarms bandwidth incentives, ultimately ensuring a self-sustaining network with economically incentivized replication of popular content

This release of Bee comes with a new documentation.

More in detail, the added features are (grouped per category):

  1. Create unstoppable applications with:
    a. Manifests: a way to represent a collection in Swarm. Use this feature to upload directories or websites to Swarm.
    b. Single owner chunks: A special type of chunk where the address is identified as the hash of the owner and a configurable identifier. You can play with the identifier to create all kinds of funky chunks (e.g. feeds) in your virtual personal Swarm address space.
    c. Seek in content: Added the necessary nuts and bolts so you can seek in content that is hosted in Swarm. This allows you, among others, to play video content in your browser.
    d. name resolution: Content addresses are hard to read and even harder to memorize. That is why you can add name resolution. ENS and RNS name resolution is supported out-of-the-box.
    e. encryption: encrypt content by the Bee node before uploading.

  2. Persistence of content with help of:
    a. Local pinning: ensures that certain chunks are not garbage collected on your node.
    b. Global pinning: makes locally pinned chunks globally discoverable.

  3. Improved UX of existing features:
    b. Tags: follow the status of your upload with tags.
    c. Printconfig: a new command to the bee node, allows you to print the current configuration (including all default values to the console)
    d. Install script. This handy install script detects what system you run and makes installing bee a breeze

  4. Swarm bandwidth incentives through:
    a. Accounting in retrieval and push sync: Bee nodes will count the services (download and upload) received and utilized per peer connection
    b. Mock settlement protocol: when the accounting signals that there is a big difference in services consumed versus provided per peer connection, the mock settlement protocol allows for sending and receiving mock payments to set the balance back to zero.

All new features and UX improvements are thoroughly documented in the new documentation.

As always you can reach out to us with bug reports and support requests through GitHub and Mattermost.

bee - v0.1.0

Published by github-actions[bot] over 4 years ago

Release notes

The first release of bee lays the foundation for the Swarm network, aimed at offering storage and communication infrastructure for a self-sovereign digital society. The bee client implements a node in the Swarm and will allow operators to collectively implement a Distributed Immutable Store of Chunks (DISC), described in chapter 2 of the Book of Swarm (swarm-gateways.net/bzz:/latest.bookofswarm.eth/).

To that end, we have implemented:

  • Discovery and topology: upon startup, you bee node will connect with other nodes, to form an overlay network with Kademlia topology.
  • Retrieval: when you download from Swarm, you retrieve chunks from the network using forwarding Kademlia routing with response backwarding to locate chunks and to deliver them.
  • Push sync: When you upload to Swarm, chunks are pushed immediately to the place in the network where they belong. This process is similar to the inverse process of retrieval.
  • Pull sync: this protocol helps nodes to sync on chunks in order to replicate chunks in a local ndeighbourhood. It ensures that chunks stay in the place where they belong according to the network topology even in the face of nodes continuously leaving and joining the network.

On top of the DISC, we added a simplistic chunker and joiner, allowing you to upload and download files.

The focus has been on correct design and simplicity. Performance optimizations and non-essential features are left out deliberately.

You can interact with the bee node via HTTP API, which offers endpoints to upload and download chunks and inspect the state of the node. Further documentation is found at swarm-gateways.net/bzz:/docs.swarm.eth/