How does ipfs compare to freenet? (WIP)

From @whyrusleeping on Sat Apr 25 2015 20:45:52 GMT+0000 (UTC)

NOTE: this answer is a work in progress. it is by no means complete and will be evolving over time (updated by @jbenet)

Ipfs and freenet have different goals. Ipfs aims to be a high performance content peer to peer content distribution network (among other things). And freenet’s primary goal is the security and anonymity of its users, in order to help them avoid censorship.

Traffic between ipfs peers is encrypted, but encryption in general does not make any guarantees about anonymity.

Copied from original issue:

From @jbenet on Sun Apr 26 2015 01:37:36 GMT+0000 (UTC)

Many of the use cases of IPFS demand a high performance transport and do not require anonymity or privacy. And yes, there are some cases that do-- for those, special transports and routing systems are how similar guarantees could be achieved. but most IPFS nodes will not operate that way.

Other important semantic differences include:

  • IPFS does not mandate that nodes store content they do not explicitly request. (protocols/apps layered on top of ipfs could, like or a “Paper-like” offline cache)
  • In some (simplest) configurations of transport + routing, IPFS nodes connect directly to exchange objects.
  • IPFS is a high performance, general purpose authenticated datastructure transport, not just a posix file transport.
  • IPFS has SFS-based PKI naming
  • IPFS has a bittorrent-inspired data exchange
  • IPFS has pluggable transport and routing systems
  • IPFS has a large plumbing tool-chain like git, and many application/service modules.
  • A main use case of IPFS is to be used as a database.

Think of IPFS as being compared to HTTP.

general note on anonymity

Also, it should be noted that the IPFS protocol itself does not prevent anonymity at all, and a version of IPFS with careful choice of transports (e.g. tor, and not point-to-point tcp/udp links) + routing system (e.g. not the global dht) can achieve anonymity guarantees. But this is an endeavor unto itself worth doing very carefully. We will be guiding design for this in time, but this is not our focus at the moment.

What this might look like is to use things like TOR as only transports, use ephemeral node keypairs (ids generated every run, or per connection).

There will be much more to say about anonymity with ipfs – and different ways of achieving it – but for now please do not count on the go-ipfs to provide any guarantees!

From @kyucrane on Thu May 28 2015 21:55:59 GMT+0000 (UTC)

What about the goal of resisting powerful censorship, as opposed to the goal of anonymity?