Never before have I written about a file system on this blog. No surprise, I am a networking guy, and I don’t have a big interest in this area. At least for now. However, there is a new type of file system that caught my attention. This file system is network-based and it’s called IPFS. Please note that IP does not stand for Internet Protocol but InterPlanetary. Über cool! So let’s see what this IPFS is about. Citing the ipfs.io page:
The InterPlanetary File System (IPFS) is a new hypermedia distribution protocol, addressed by content and identities. IPFS enables the creation of completely distributed applications. It aims to make the web faster, safer, and more open.
So what does that mean? That thanks to IPFS, developers can easily create web applications that are highly distributed thanks to a distributed file system. Differently from regular websites, a website can be hosted at the same time on multiple hosts, this ways reducing the need on the internet backbone to retrieve the website’s content. The goal of IPFS is not only to decrease reliance on the Internet backbone, but also to reduce issues associated with single point failures, censorship, wiretapping, etc.
With the underlying peer-to-peer hypermedia protocol developed by the Interplanetary Networks team (the group that developed IPFS), anyone can rely on a peer-to-peer network of servers that can host your own application. In my opinion, on the surface, this looks like a democratization or crowd sourcing of CDN services. But if I think more about it, it’s really another step towards distributed networks and decentralization of the Internet.
So what applications can you expect from IPFS? Really anything can run on IPFS …
For example, the Neocities social network. A couple of weeks ago I was reading this blog post by @kyledrake on distributed web and how that differs from (and improves) the centralized Internet based on centralized websites (for the most part). I immediately found it to be an amazing concept and, sure enough, I build a dedicated webpage for NetBeez at the URL netbeez.neocities.org.
Not only did I create a page, but I have also created a NetBeez monitoring target and added several agents located all over the world. If you look at the results of PING tests from a group of agents to netbeez.net versus netbeez.neocities.org page, you will find that, in average for one day of data, the centralized web server netbeez.net has lower network latency to the monitoring agents when compared to the distributed version of netbeez.neocities.org.
I was a little surprised from this result. I imagined that netbeez.neocities.org would have had lower round-trip-time than the centralized version at netbeez.net. However it may be possible that I have to add more monitoring agents to the monitoring target.
So what’s next? Time will tell if IPFS will take off and replace the traditional centralized web. For sure, it looks like a promising concept and project that I will keep monitoring 🙂
If you want to learn more about this interesting technology, you can check out the Wikipedia page.