I incidentally discovered Secure Scuttlebutt upon following an IPFS update. One aspect caught my attention while reading a description of how it works: The application can supposedly propagate updates even if you aren’t connected to the internet at all. This is achieved via LAN: If you’re disconnected from your ISP but connected to one or more other computers by say a router, entries you post are transferred to those computers locally… then if any device in the network gets online sooner than you or can forward the information to other devices that can, the update spreads faster than if you waited for the initial computer to get back online.
I find this approach beautiful and ingenious! Which is why I just have to ask whether IPFS is going to support anything similar. Will go-ipfs and / or js-ipfs have the capability of using Local Area Connections additional to just an internet connection, basically allowing other devices to act as intermediaries?
Here’s a practical example of how I envision this working: Let’s say that my computer is X, the computer of my next door neighbor is Y, and the computer of a neighbor in a nearby apartment block is Z. X can communicate with Y via LAN cable, Y can communicate with Z via WiFi. I want to publish an update to the network, but I discover that the internet just went down in my block. Rather than waiting for my net to come back up, the following chain of events will instead occur: The IPFS daemon on my computer (X) realizes it can’t contact other IPFS nodes over the internet, so it only looks for one in my LAN… it quickly discovers that my next door neighbor (Y) has an IPFS daemon, so it publishes my update to their node locally. After noticing that there’s been an update in the network, the IPFS node on computer Y tries to pass it further on, but because internet is down in the whole building it too can’t connect to the internet… so it does the same as my computer and continues to scan across its local networks. It detects that the computer of the neighbor down the street (Z) is connected via WiFi, so it passes the update onto its IPFS daemon. Since internet is not down in the apartment block where computer Z is located, its IPFS daemon now closes the gap and spreads it to other nodes worldwide.
In this hypothetical scenario, I was able to send data throughout IPFS without even having an internet connection, thanks to being reachable by neighbors that were themselves connected to the internet or a larger network. While in everyday life it’s uncommon to run into this particular scenario, imagine how many people this can still help in the right circumstances! Several advantages to LAN include:
- Users who can’t get an internet connection may be able to still use IPFS if they’re part of a LAN in which any device has internet. While this situation is less common it’s not neglectable.
- Updates throughout IPFS may happen sooner thus the network is more efficient. You may dump an update to another device, which may then connect to the internet sooner than your device gets to… thus the update reaches the world more quickly overall.
- This would decrease bandwidth requirements for Internet Service Providers even further, as computers can also transfer files directly rather than just through the pipe provided by your ISP.