IPFS seems a little slow on existing dapps. will Swarm load content more quickly? Also- is there a roadmap for swarm?

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.

source: web3 docs

Other Fun Sources

Adding to tayvano's answer, the main author of Swarm has written a detailed perspective. Here are some parts of his answers (edited for clarity):

Similarities

Swarm and IPFS both offer comprehensive solutions for efficient decentralised storage layer for the next generation internet. Both high level goals and technology used are very similar...

As a result both are in principle ideally suited for replacing the data layer of the current broken internet and serve as storage layers for the web3 vision with the usual must-have properties of distributed document storage:

  • low-latency retrieval
  • efficient auto-scaling (content caching)
  • reliable, fault-tolerant operation, resistent to node's disconnections, intermittent availability
  • zero-downtime
  • censorship-resistant
  • potentially permanent versioned archive of content

Differences

He classifies differences under:

  • (A) development status/popularity/user base
  • (B) philosophical/ethical/political
  • (C) lower-level technicalities

See the detailed perspective (and this thread on reddit for further information, and here are the summarized technical differences:

  • Swarm's core storage component as an immutable content addressed chunkstore rather than a generic DHT. (IPFS uses DHT.)
  • The two systems use different network communications layer and peer management protocol.
  • Swarm has deep integration with the Ethereum blockchain and the incentive system benefits from both smart contracts as well as the semi-stable peerpool while Filecoin uses proof of retrievability as part of mining. The consequences of these choices are far reaching.
  • This is probably a stupid question, but I'm curious why BitTorrent was insufficient. It was already in place when IPFS and Swarm were developed, and has all the must have properties you listed. – Olshansk Nov 7 '16 at 1:52
  • @Olshansk: Asking about the difference between Swarm and BitTorrent could be a good question on it's own (not much room in a comment). – eth Nov 7 '16 at 10:59
  • 1
    This answer just caused me a eureka moment re Ethereum and the future of the internet. Something just clicked. I was a total newbie to this until a moment ago, but now I feel like I have just discovered the future of humanity. – Sentinel Mar 22 '17 at 17:33
  • BitTorrent does not have an incentive layer, paid miners or a consensus algorithm. – Tim Siwula Aug 4 at 11:32

I think the best summary is here:

Differences

tl;dr Subtle but important differences in both projects design will likely keep the two projects steady and separate on their own relative tracks. Since the big picture and the high level solution are so magically aligned, the differences can be found elsewhere. I will group them under:

(A) Development status/popularity/user base. (B) Philosophical/ethical/political. (C) Lower-level technicalities.

(A) Status

tl;dr: IPFS is much further along in code maturity, scaling, adoption, community engagement and interaction with a dedicated developer community. Yet swarm's place in the Ethereum ecosystem translates to inherent infrastructural advantage.

  • both IPFS and swarm are fully open source and the reference implementations are written in the Go language (swarm has an outdated java version, IPFS has javascript)
  • both IPFS and swarm are alpha software before their production release
  • IPFS has been proven to scale quite reasonably, swarm is just starting to be tested on larger scale (though swarm is built on top of devp2p, the Ethereum p2p networking layer which itself barely need testing)
  • IPFS has had the product open for longer, and recruited a decent userbase, Swarm has not really come out yet, the POC release series just started this year
  • IPFS has a lot of material out, videos, good docs, papers. Swarm has 2 devcontalks, scattered docs and 2 papers (first 2 in the ethersphere orange paper series) about the incentives to be published mid April! And a swarm guide is in the making
  • IPFS has a working network (no incentivization), Swarm just recently launched the first stage of developer testnet IPFS already serves as a working solution for real-world businesses and is supported by an enthusiastic user-base
  • swarm benefits from strong synergy with Ethereum, its promising ecosystem, live network of users and its organisational background in the form of reliable continued funding from the non-profit foundation. IPFS also has reliable funding sources and also used and supported by members of the Ethereum community.

Despite strong voices from the community disapproving of reinventing the wheel, swarm as a comprehensive in-house solution suffered and survived the toughest of times: the austerity measures of last autumn 2015 due to the financial difficulties of the foundation slowed the development. The favourable circumstances in 2016 made our original vision realistic once again and development has seen a new surge likely further testified by expanding the dev team. Admittedly biased, I am convinced that building our own hand tailored system is a winning ticket to enable such a pivotal component of web3 to quickly and flexibly adapt and co-evolve with Ethereum (EVM), its governance and funding aligned with that of Ethereum.

It is crucial that swarm's privileged infrastructural/organisational status should not be by itself the deciding factor in the predominant adoption among available alternatives when web3 comes to the masses. My intention is that users' choice be based on inherent merits of the particular technology and that the selection is not unduly restricted by arbitrary choices/limitations of Ethereum (e.g., use of devp2p network layer, see below).

Conversely, by bringing more and more discussions about our roadmap to the public, we aspire to counterbalance IPFS's advantage due to longer time being around. Maturity has a rightful place in choosing a technology if you need it now, so the discussion here is relevant to developers with medium-to-long-term plans. Hopefully by the time both projects are out with production-ready release candidates, the differences in this section become insignificant to let features, efficiency and ease of use dominate the evaluation.

(B) philosophical

tl;dr: no critical mismatch but different enough to predict and justify parallel evolution of the 2 projects.

Advice In many places of the world the cartels of information copyrighting or advocates of restricted freedom of information have the resources to come after you. If the cause of total transparency and unimpeded support for freedom of information is important to you (be it on moral or opportunistic grounds), consider supporting swarm.

Swarm is very specifically meant to be part of the Ethereum ecosystem. From the outset, it was always conceived of as one of the three pillars of the next webz, and alongside Ethereum and Whisper define the holy trinity of web3 components. Its development is guided and inspired by Ethereum's needs (most importantly the need of hosting dapps, contract source/metadata and the blockchain/state/etc). It is developed in the context of Ethereum's capabilities (including potential limitations) and as long as funded by the foundation is guaranteed to cater for specific uses arising in the Ethereum ecosystem.

Meanwhile IPFS is a unifying solution catering for integrating many existing protocols. In this respect

Swarm has a very strong anti-censorship stance. It incentivizes content agnostic collective storage (block propagation/distribution scheme). Implements plausible deniability with implausible accountability through a combination of obfuscation and double masking (not currently done). IPFS believes that wider adoption warrants compromising on censorship by providing tools for blacklisting, source-filtering though using these is entirely voluntary.

(C) technicalities

tl;dr:

  • swarm's core storage component as an immutable content addressed chunkstore rather than a generic DHT (distributed hash table). you can upload to swarm, use it as cloud hosting, in ipfs you can only register/publish content already on your hard drive. the two systems use different network communications layer and peer management protocol
  • swarm has deep integration with the Ethereum blockchain and the incentive system benefits from both smart contracts as well as the semi-stable peerpool. Filecoin, a planned incentivised network over IPFS aims to use its altcoin blockchain, with proof of retrievability as part of mining. The consequences of these choices are far reaching. These properties plays a big role in the low level differences.
  • Yes, same post I cited in my answer :) – eth Aug 12 at 2:45

They are different storage protocols. However there is much less documentation around swarm.

Here is an interesting reddit thread on the topic. https://www.reddit.com/r/ethereum/comments/3hbqbv/ipfs_vs_swarm/

  • 4
    A link alone is not considered a good answer. Links may break and the answer becomes worthless later even if the linked material answered the question initially. At least if you include a summary, the answer can somewhat stand on its own. – Afri Apr 6 '16 at 8:44

Your Answer

 
discard

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.