The Web needs to evolve
We will colonize other planets starting from the Moon or Mars and the web will have to evolve itself to remain alive!
The current state of the web is centralized and if we are going to span across multiple planets or solar system we will have to use a different standard and infrastructure.
One of the most innovative decentralized system to replace the current standards of the web is the project: IPFS!
IPFS — InterPlanetary File System
InterPlanetary File System is a new protocol to decentralize the web!
IPFS enables the creation of completely decentralized and distributed applications, using content addressing and digital signatures.
IPFS makes the web faster, safer, and more open.
HTTP retrieve a File from a Server with a centralized system creating a SoF(Single point of Failure).
IPFS use a P2P(Peer to Peer) approach to get files from all nodes that have it.
HTTP work with Location Address.
IPFS work with a Content based Address.
Use IPFS NOW!
The great things of IPFS is that you don’t need a special browser you can proceed with the **IPFS official gateway **: ipfs.io/ipfs/ visiting a specific content on the network like the "Wayback machine" page from the IPFS version of Wikipedia: QmXoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mXWo6uco/wiki/Wayback_machine.html
You can use any other IPFS gateway like the official one from Cloudflare using the same content url: https://cloudflare-ipfs.com/ipfs/QmXoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mXWo6uco/wiki/Wayback_machine.html
The same part for both gateways was the hash of the content:
QmXoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mXWo6uco/wiki/Wayback_machine.html
Install locally IPFS
If you want to run IPFS directly from your browser/computer you will have install two things:
- IPFS Desktop app: https://github.com/ipfs-shipyard/ipfs-desktop#ipfs-desktop
- IPFS Companion App for Chrome,Opera,Brave,Edge or Firefox
And after you will have started the desktop app and installed this extension every ipfs page you visit will be resolved from your local gateway!
IPFS Limits
Content on IPFS is not persistent and will eventually disappear from the IPFS network if it is not pinned anywhere (equivalent to "seeding" in Bittorrent). To make the content persistent, you can either pin your content on an IPFS node you control or use a service like Pinata, who will seed your content for you with various pricing tiers, free tier included!
The other problem is the network speed lookup problem, being entirely P2P with millions of nodes in the future IPFS will need to be split in to different sub networks to speed up lookup of resources or files like described here.
I want to learn more on IPFS
You can access more tutorials here: https://proto.school/#/mutable-file-system. If you want to host your React or Angular app you can follow this guide using Pinata and Cloudflare IPFS!
The future with IPFS?
Multiple planets == Multiple Webs with HTTP
Multiple planets == a Single IPFS network!
We are going to colonise the space, living on more planets and we won’t have to recreate multiple web with IPFS, we’ll have just a network of decentralized system sharing information and will be able to get everything even on a "luxurious" resort on one of the Moons of Saturn.
Combined this decentralized web with the power of every connected device or furniture thanks to IoT improvements we can Imagine a real universe of data shared across everything being able to became fully an Interplanetary living species!
Resources and References
- ipfs.io: https://ipfs.io/
- Wayback machine wikipedia page on IPFS: https://ipfs.io/ipfs/QmXoypizjW3WknFiJnKLwHCnL72vedxjQkDDP1mXWo6uco/wiki/Wayback_machine.html
- Cloudflare official support for IPFS: https://blog.cloudflare.com/distributed-web-gateway/
- IPFS dedicated networks: https://medium.com/pinata/dedicated-ipfs-networks-c692d53f938d
- Hosting Javascript app on IPFS: https://medium.com/pinata/how-to-easily-host-a-website-on-ipfs-9d842b5d6a01
- https://medium.com/better-programming/how-to-get-started-with-ipfs-and-node-fa04baec6b3a
- IPFS cloud hosting: https://pinata.cloud/
- https://proto.school/#/mutable-file-system