The Swarm Team is excited to declare the prompt release of Swarm client v0.3, the third proof-of-concept iteration (POC3) of the Ethereum Swarm client. The POC3 code has been successfully integrated into the official go-ethereum repository’s main branch.
Swarm 0.3 is now live on the public Testnet, with the Ethereum Foundation operating a robust 50-node cluster of Swarm nodes alongside a public web gateway at https://swarm-gateways.net. We invite everyone to test it out or commit to running stable nodes.
The previous year
It has been a year and a half since the initial deployment of the POC2 series and the Swarm project inaugurated its public alpha network.
Two Swarm summits, two orange papers and forty thousand lines of code later, it’s time to evaluate our progress.
Over the past year, the Swarm team has expanded and is now vigorously realizing the vision. We have been actively reworking the network layer, rewriting the retrieval protocol utilizing a stream abstraction, enhancing connectivity management as well as the overlay network code, and creating a complex network simulation framework to assess algorithmic accuracy, scalability, and reliability of various subsystems.
The POC3 code was completed just in time for the Swarm Orange Summit in Ljubljana, where we hosted 80 participants and enjoyed a very stimulating week (watch this two-minute presentation featured on Swarm) of discussions and coding. It is encouraging to witness a growing community of contributors and companies who wish to develop on Swarm.
Swarm 0.3
Swarm content storage is much more than just “bittorrent enhanced”. The technical specifics can be explored in the architecture chapter of the revised and improved Swarm guide. A comprehensive academic overview of Swarm’s components can be found in the orange papers or delve deeper into Swarm through the recorded conference presentations.
In a previous blog entry, we outlined the fundamentals of Swarm storage and content distribution.
At its essence, Swarm serves as a platform that grants APIs for uploading and downloading content to the cloud while offering virtual hosting of websites and decentralized applications (dapps) without the need for web servers, utilizing decentralized peer-to-peer distributed infrastructure. The vision envisions a new internet that not only possesses fault tolerance, guarantees zero downtime, and ensures resistance to censorship but is also economically self-sustaining due to an embedded incentive system. By rewarding nodes for supplying their bandwidth and disk space, these incentives feature a dual purpose: facilitating reliable low-latency scalable retrieval of commonly accessed content and ensuring the persistence of critical yet infrequently accessed data like archives or backups. For seamless delivery, Swarm will utilize the SWAP protocol (anticipated for POC3.1), and it will implement a dual-tiered insurance system for storage assurances (expected for POC4).
In addition to the foundational aspects of data storage and delivery, the POC 3 release introduces some new and experimental capabilities.
PSS
The same p2p connections established for data storage and delivery can also facilitate node-to-node communication. PSS integrates Swarm routing (bzz) with the Whisper (shh) encrypted messaging format (bzz+shh=pss). In summary, PSS is a messaging protocol with robust privacy features operating atop the Swarm network. This messaging framework can establish the groundwork for an entirely new system of internode communication services (the email, tweet, newsletter of the future), thus, it may be termed as Postal Service over Swarm.
PSS is comprehensive yet experimental on the new POC3 network and dapps can engage with it via a JSON RPC API. We are closely collaborating with businesses and projects aiming to utilize PSS to construct second-layer infrastructure. Mainframe is developing a collaborative group communication tool as an alternative to Slack (Onyx) and their web3 SDK, and Status–> have shown enthusiasm in incorporating it into their mobile messaging.
Mutability
Another innovative feature in POC3 is the Swarm Mutable Resource. Common in p2p storage frameworks, content is identified by its digital fingerprint (hash), and any modifications to the content lead to a change in this identifier. Internet users, however, are used to mutable resources: when accessing URLs, we anticipate viewing the latest version of the ‘site’. To facilitate easy access to dynamic content at permanent human-readable identifiers, Swarm collaborates with the Ethereum Name Service (ENS) on the Ethereum blockchain. This enables us to refer to Swarm content using names such as bzz://theswarm.eth.
Swarm POC3 introduces an additional layer in the shape of Mutable Resource Updates (MRU). These enable off-chain refreshes of content linked with an address potentially at a quicker rate than ENS updates on the blockchain could manage, without incurring the expense of on-chain transactions.
MRU is a trial feature within the current POC3 testnet and is still experiencing modifications.
FUSE support
FUSE allows users to incorporate Swarm data seamlessly into their local file systems (only available on Linux and Mac). With this utility, users can “mount a Swarm manifest” as if it were a typical directory. It supports file system read and write functions, with all content being automatically synchronized with Swarm. In the future, merging FUSE with Swarm Mutable Resources should enable, for instance, the synchronization of your entire home folder across devices – creating the backend for decentralized storage with functionalities akin to Dropbox.
Encryption support
Swarm 0.3 incorporates integrated encryption that facilitates secure uploads of confidential data. The encryption feature allows users to upload a directory privately while still being able to ‘share’ a subdirectory with selected peers.
Access Control Trees (Swarm 0.3.2) will provide an API for users to govern content access independent of its publication. Granted access will be applicable across different versions of resources.
The year ahead
The upcoming year promises to be both exhilarating and demanding. As part of the POC3 series, we plan to activate an upgraded SWAP accounting framework (Swarm 0.3.1) and facilitate ‘light’ Swarm nodes (Swarm 0.3.2). Implementing erasure coding, proof of custody, and insurance are also part of the roadmap. We are on track to deliver Swarm POC4 (production beta pre-release) in 2019.
We continue to cultivate a community with our partners who uphold the principles of web3 and actively participate through working groups, building the foundational infrastructure, the backbone for second-layer services such as databases (http://wolk.com), private data administration (http://datafund.io), rights and creative works licensing (http://jaak.io), decentralized version control (ethergit, http://epiclabs.io), video transcoding and streaming services (http://livepeer.org), communication, and collaboration (https://mainframe.com), and the list continues to expand.
Contact Us
We value your input and contributions. Join us in our gitter channel or our github repository.