This guide is focused on the Linux Ubuntu and Debian variants.
What is Swarm?
Swarm is a distributed storage platform and content distribution service, a native base layer service of the Ethereum Web3 stack. The primary objective of Swarm is to provide a sufficiently decentralized and redundant store of Ethereum’s public record, in particular to store and distribute Ðapp code and data as well as block chain data. From an economic point of view, it allows participants to efficiently pool their storage and bandwidth resources in order to provide the aforementioned services to all participants.
From the end user’s perspective, Swarm is not that different from WWW, except that uploads are not to a specific server. The objective is to offer a peer-to-peer storage and serving solution that is DDOS-resistant, zero-downtime, fault-tolerant and censorship-resistant as well as self-sustaining due to a built-in incentive system which uses peer-to-peer accounting and allows trading resources for payment. Swarm is designed to deeply integrate with the ÐΞVp2p multiprotocol network layer of Ethereum as well as with the Ethereum blockchain for domain name resolution, service payments and content availability insurance (the latter is to be implemented in POC 0.4 by Q2 2017).
At the time of this writing, Swarm is still in alpha and should only be used at your own risk. The code is currently at proof of concept (POC) 0.2, see the Swarm project roadmap for future development plans.
Install the Go programming language and Git
Create a directory to contain your workspace and set the GOPATH environment variable to point to that location
Download the go-ethereum source code
Compile the go-ethereum client
geth and the swarm daemon
Confirm Swarm is now installed
Create an empty directory to be the data store
Make a new Ethereum testnet account using this directory
You will now be prompted for a password. Once you have specified the password the output will be an address, which we will use as the base address of the swarm node. For this example let’s assume the password was SECRETPASSWORD and the outputted address was:
geth node connected to the Ropsten testnet
swarm by connecting it to the
You are now up and running with Swarm, so why not check out some content. The URL scheme is slightly different to what you may be used to, with the most popular URL scheme being
Some example sites:
Stop any running
Download the latest source code and recompile