HTTP(S) is the protocol used to retrieve content from the Internet, and files are stored in a server with all clients downloading files from this location. It works fine, but also comes with shortcomings such as traffic costs for the content provider, lack of resiliency if the server is down, and lack of persistence as for example all files hosted on GeoCities web hosting service are now gone. Having all files hosted on a single server also makes it too easy for governments or companies to censor content.
But while looking at FOSDEM 2019 schedule yesterday, I found out an initiative aiming to solve HTTP shortcomings had been in development for several years, IPFS (InterPlanetary File System) is a described as a peer-to-peer hypermedia protocol to make the web faster, safer, and more open, with the ultimate goal of replacing HTTP.
The four main advantages over HTTP listed for the protocol:
- HTTP is inefficient and costly – HTTP downloads a file from a single computer at a time, instead of getting pieces from multiple computers simultaneously. IPFS makes it possible to distribute high volumes of data with high efficiency, potentially saving up to 60% bandwidth costs for video content.
- Web pages are deleted daily – As hosted companies fold, the content hosted on their server eventually goes away with the average lifespan of a webpage being a little over 1,000 days. IPFS keeps every version of your files and makes it simple to set up resilient networks for mirroring of data.
- The web’s centralization limits opportunity – P2P wins over centralized servers when it comes to fighting against censorship
IPFS can work without Internet – Developing world. Offline. Natural disasters. Intermittent connections. IPFS enables persistent availability with or without Internet backbone connectivity.
Here’s how IPFS roughly works:
- Each file and all of the blocks within it are given a unique fingerprint (cryptographic hash).
- IPFS removes duplications across the network.
- Each network node stores only content it is interested in, and some indexing information that helps figure out who is storing what.
- When looking up files, you’re asking the network to find nodes storing the content behind a unique hash.
- Every file can be found by human-readable names using a decentralized naming system called IPNS.
IPFS works with Linux, Mac OS X, and Windows. Paula, who will talk about IPFS at FOSDEM 2019, also wrote a recent blog post explaining how to quickly get started with the protocol using Linux. You’ll find more details on IPFS documentation.
The video embedded below – dated 2015 – demonstrates IPFS protocol when it was still at the Alpha stage.