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, thedb-capacity
flag was changed tocache-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 beev0.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 withv0.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])(#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 bev0.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