This post will compare several peer to peer protocols by looking at how they work and the tradeoffs that one should consider when choosing one of them.
We will specifically be looking at [BitTorrent](https://www.bittorrent.org/index.html), [IPFS](https://ipfs.io/), [Secure Scuttlebutt (SSB)](https://scuttlebutt.nz/) and [Hypercore](https://hypercore-protocol.org/).
last updated March 2022 but still mostly accurate, i think
IPFS has good ideas, but bad design. Content-based addressing is a really good idea that allows for easy decentralization of data hosting, but conventional DHT implementations are not suited for the job. For something like IPFS to truly work, there must be network-enforced requirements for people who request data to re-host it for some time, there should not be a global lookup table, maibtaining global structures are terribly inefficient. How easy the process for finding data is should depend on how prevalent the data is, how much the requesting node contributes to the network, and physical constraints such as connectivity. To fix the multiple-formats issue, there should be built-in incentives for nodes to automatically shift data formats to newer versions as well as rehash data that points to that data.
(Or perhaps we need some AI-powered content addressing scheme that can extract true semantic meaning, i.e. The Condenser)
I have a lot of ideas on how a replacements for IPFS might be designed lol
IPFS has good ideas, but bad design. Content-based addressing is a really good idea that allows for easy decentralization of data hosting, but conventional DHT implementations are not suited for the job. For something like IPFS to truly work, there must be network-enforced requirements for people who request data to re-host it for some time, there should not be a global lookup table, maibtaining global structures are terribly inefficient. How easy the process for finding data is should depend on how prevalent the data is, how much the requesting node contributes to the network, and physical constraints such as connectivity. To fix the multiple-formats issue, there should be built-in incentives for nodes to automatically shift data formats to newer versions as well as rehash data that points to that data.
(Or perhaps we need some AI-powered content addressing scheme that can extract true semantic meaning, i.e. The Condenser)
I have a lot of ideas on how a replacements for IPFS might be designed lol