#StandWithUkraine

Russian Aggression Must Stop


This website is now NOT available on IPFS

2021/01/24

Tags: tech meta

UPDATE: I have withdrawn IPFS support since the daemon is too heavy and the client likes to mess with my router too much. I will re-evaluate if/when the software improves.

I've recently been playing around with IPFS for my own amusement because it seems like a pretty cool idea, although I don't have enough practical experience with it to determine how good is it and for what purposes. But as a small experiment I decided to throw this website onto IPFS.

If you want to try it out, you can find it through an IFPS gateway: https://gateway.pinata.cloud/ipns/k51qzi5uqu5dhv6l47838ag6u1yfad6f39jdec4foe1d2uplsc4t0e9buurgxg

To give a very quick summary of what IPFS is, it's basically a distributed system of storing and retrieving content through a P2P system. Think of something like BitTorrent but without .torrent files. Nodes publish blocks and gossip with each other to locate data blocks they are interested in and then share them with each other.

Now, first of all, I don't know if there's any benefit to accessing this site via IPFS, particularly through an HTTP gateway. IPFS is built to be a P2P system, and just like BitTorrent, if you are fetching data from just one peer it doesn't make much of a difference. This website gets relatively little traffic as is, so comparatively speaking accessing the website via IPFS is slower than just hitting the actual web server directly.

There might be some edge cases where IPFS provides some benefit, such as if there's someone with an IPFS node nearby that has the content cached (this assumes you are using IPFS directly, not via a gateway) or the website suddenly gets targeted by an intentional or unintentional denial of service attack. It could also help if some government or corporate entity tries to censor this website (don't really know why, but I guess it's possible). In that case the P2P network would still be able to serve it, provided there is a peer that still holds onto the content and is accessible to you.

It took a little bit of effort to get it working properly. The guide I followed was pretty simple as far as just adding the files to an IPFS node and using IPNS to assign a fixed ID to the files for easy linking. I did have to play around with Hugo a little bit to figure out how to change the links to relative URLs instead of absolute ones. On the plus side you should now be able to use rsync to vacuum up this site and browse it offline without any issues, so there's some coincidental benefits to this little experiment.

I do like some of the ideas around IPFS a fair bit. A decentralized and distributed web sounds very neat. Playing around it has been fun, even if I'm not sure that I've managed to extract any real value out of it. Maybe in the future I'll find some actual use for it.

>> Home