What is Swarm and what is it used for? And what is Swarm's relationship with Whisper?
[Ethereum] Swarm and what is it used for
bzzhostingstorageswarmwhisper
Related Solutions
whisper is part both the go and c++ clients. It is a fully functional implementation.
swarm is being actively developed by the go-team. See the Devcon1 talk for the big picture. See the issues labeled 'swarm' on github.
POC1 will be public and integration to Mist will start after some more serious network integration testing.
Work towards using IPFS as alternative DHT underlying swarm has started, but nothing conclusive as yet.
An earlier writeup of bandwidth and storage incentivisation is online, an updated paper is coming out soon.
UPDATE: http://swarm-gateways.net/
Both
- Peer to peer
- Data sharing network in which files are addressed by the hash of their content (Content-addressable)
- Decentralized file transfer systems
- Can be used to store the HTML, CSS and JavaScript that implement an application on top of the other decentralized systems. Can be used to store (arbitrary) static files.
- Some imply that Swarm may be better for small chunks / low latency.
Because BitTorrent is good at delivering large chunks of data with high throughput and high latency. Swarm is ALSO good at delivering small chunks of data with low latency, which is necessary for some anticipated applications - Dr. Daniel Nagy, Lead Developer on the Swarm team.
One "advantage" of Swarm is built-in incentives (within Ethereum).
Some feel that Swarm is "reinventing the wheel" and ipfs & filecoin should just be used instead. Filecoin being the incentive.
IPFS
IPFS is a peer-to-peer distributed file system that seeks to connect all computing devices with the same system of files. In some ways, IPFS is similar to the Web, but IPFS could be seen as a single BitTorrent swarm, exchanging objects within one Git repository. In other words, IPFS provides a high throughput content-addressed block storage model, with content-addressed hyperlinks. This forms a generalized Merkle DAG, a data structure upon which one can build versioned file systems, blockchains, and even a Permanent Web. IPFS combines a distributed hashtable, an incentivized block exchange, and a self-certifying namespace. IPFS has no single point of failure, and nodes do not need to trust each other.
The message I want to send couldn't possibly be more audacious: I strongly believe IPFS is the replacement to HTTP...Instead of looking for a centrally-controlled location and asking it what it thinks /img/neocitieslogo.svg is, what if we instead asked a distributed network of millions of computers not for the name of a file, but for the content that is supposed to be in the file? This is precisely what IPFS does.
IPFS is general purpose, and has little in the way of storage limitations. It can serve files that are large or small. It automatically breaks up larger files into smaller chunks, allowing IPFS nodes to download (or stream) files from not just one server like with HTTP, but hundreds of them simultaneously. The IPFS network becomes a finely-grained, trustless, distributed, easily federated Content Delivery Network (CDN). This is useful for pretty much everything involving data: images, video streaming, distributed databases, entire operating systems, blockchains, backups of 8 inch floppy disks, and most important for us, static web sites.
Swarm
Swarm - Decentralised data storage and distribution: Swarm is a peer to peer data sharing network in which files are addressed by the hash of their content. Similar to Bittorrent, it is possible to fetch the data from many nodes at once and as long as a single node hosts a piece of data, it will remain accessible everywhere. This approach makes it possible to distribute data without having to host any kind of server - data accessibility is location independent. Other nodes in the network can be incentivised to replicate and store the data themselves, obviating the need for hosting services when the original nodes are not connected to the network.
Best Answer
Both Swarm and Whisper are complementary technologies contributing to the vision of Ethereum as a "world computer". When imagining Ethereum as a metaphor for a shared computer, it should be noted that computation alone is not enough. For a computer to be fully useful, it also needs storage to "remember" things and bandwidth to "communicate" them. This could be summarised as such:
More specifically, Swarm is being designed as an accounting protocol that benefits from the automatic execution of so-called "smart contracts" running on the Ethereum Virtual Machine (EVM). This accounting protocol is independent of the physical storage mechanism. That is, it is not intrinsically tied to a specific storage system. It could be IPFS, BitTorrent, or some future technology not yet invented.
It is not entirely clear where Swarm and Whisper fit into the development roadmap and when or if they will be delivered by the same developers that developed the EVM, however it is part of the vision of a fully decentralized web.
UPDATE: swarm landing page via swarm public gateway 5 as pf 12 May 2016