From @jbenet on Sun Sep 27 2015 02:40:53 GMT+0000 (UTC)
Some of the most frequently asked questions about IPFS are around “how does IPFS guarantee content sticks around” and “how do you ensure I do not download bad things”. The short answer is: IPFS doesn’t by itself download things you don’t ask it to. Thus, backing up content must be done a layer on top of IPFS, with ipfs-cluster, Filecoin, or similar protocols.
Important Design Goals for Content Distribution:
- IPFS has as a strict requirement that content be able to move as fast as the underlying network permits. this rules out designs like freenet’s and other oblivious storage platforms, as the base case. They’re just way too slow for most of IPFS use cases. That said, these can be implemented trivially with the use of privacy focused transports (like Tor), content encryption, and so on.
- IPFS has as a design requirement that nodes be able to only store and/or distribute content they explicitly want to store and/or distribute. This means that computers that run IPFS nodes do not have to host “other people’s stuff”, which is a very important thing when you consider that lots of content in the internet is – in some for or other – illegal under certain jurisdictions.
- IPFS nodes will be able to express policies, and subscribe to network allow/denylists and policies that express content storage and distribution requirements. This way, users and groups can express what content should or should not be stored and/or distributed. This is required by users to (a) comply with legal constraints in their respective countries, (b) required by users with stricter codes of conduct (i.e. content that is legal but undesired by a group – e.g. a childrens website).
Question and Answers:
Q: When I add content, what happens?
A: It is stored in your local node, and made available to other nodes in your network, via advertising it on the routing system (i.e. the IPFS-DHT). The content is not sent to other nodes until they explicitly request it, though of course some content may already exist in the system (content-addressing).
Q: Can peers tell what I have?
A: In some modes yes, in others no. Peers who request content being advertised from a node can retrieve it and thus see that the node indeed had that content. These advertisements will be configurable through policies in the future, to give users better control over what is published to whom. Obscuring content altogether is addressed a layer above raw ipfs, through the use of (a) encryption and capabilities, (b) transport + routing systems with stronger privacy guarantees, and © peer authentication and trust models.
Q: Will i store other people’s stuff?
A: No, by default IPFS will not download anything your node doesn’t explicitly ask for. This is a strict design constraint. In order to build group archiving, and faster distribution, protocols are layered on top that may download content for the network, but these are optional and built on top of basic IPFS. Examples include bitswap agents, ipfs-cluster, and Filecoin.
Q: but bitswap says it may download stuff for others, to do better?
A: yes, this is an extension of bitswap, not implemented yet, and will be either opt-in, or easy to opt-out and following the denylists (to avoid downloading bad bits).
Q: how can i ensure something remains online?
A: you can do this by keeping one or several ipfs nodes online pinning the content you’re interested in backing up, the more ipfs nodes pinning content, the better redundancy you get. Tools such as ipfs-persistence-consortium, pincoop, and ipfs-cluster on top of ipfs allow you to share the costs of bandwidth with other people or organizations. Then, protocols like Filecoin will allow you to just pay the network to do it for you (i.e. similar to how people pay “the cloud companies”, but here you’re paying the network itself). (Filecoin is not live yet)
Work in Progress
Copied from original issue: https://github.com/ipfs/faq/issues/47