💾 Archived View for r2aze.observer › archive › 2022-02-16-sneakernet.gmi captured on 2022-04-29 at 11:37:22. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2022-03-01)
-=-=-=-=-=-=-
All that messing around with [minimalist internet technologies] which I engaged in over the past few days reminded me of the concept of “sneakernet.”
minimalist internet technologies
My first exposure to the idea of a network, like just about every Russian IT-adjacent person’s in my generation, was [FidoNet], which was very popular in Russia in late 80s and early 90s. Today, it is usually described as a network of phone line modem-based BBSes, largely functionally equivalent to a combo of email and [NNTP]. People would dial in, read and answer their mail while online, while at night, nodes would dial up each other and exchange the mail generated thereby.
Around here, hardly anyone used it this way – most network nodes didn’t even have a BBS. I’m not entirely sure why, but my off the cuff hypothesis is that most Russians live in relatively small apartments with their entire families, often including their parents, well into marriage, primarily for economic reasons. This is still very common, and in early 90s during the peak of FidoNet popularity that was the rule. Getting a second phone line was effectively impossible, and keeping the only phone line busy with your data communications was not much of an option except at night. If you’re up to doing that, you might as well automate the process completely, which is what FidoNet did.
Echomail – the equivalent of Usenet news posts – would be piled up into bundle files, compressed as tightly as reasonably practical. During the night the nodes would dial each other automatically to transfer them according to manually configured rules. The mailer software, which took care of the transfer, was largely agnostic about the contents, and only cared about the destination and the confirmation that bundles were received. Splitting bundles into individual messages and storing them was another program’s job.
Which meant that in case of blockage, breakage, or other issues, it was entirely practical to visit your partner node physically to pick up mail bundles accumulated for your consumption and hand off the ones you wrote, and doing that did not require using any special software at all. This didn’t merit a special word in Russian, but the practice was quite widespread.
Why would that be relevant in this day and age, when we have the Internet of Bloody Things? Well, [they do something like this in Cuba], just without the benefit of specialized software that makes it easy, and mostly in read-only mode. With the rise of censorship, high delay communication channels that are not controlled by a third party may become the only ones we have _left,_ so I find it prudent to think of technologies adapted or easily adaptable to that.
they do something like this in Cuba
Never mind that the bandwidth of a truck loaded with media is determined primarily by your media write speeds, and for certain volumes of data and distances can easily exceed whatever the Internet can offer.
As long as we limit ourselves to pure-text or primarily-text communications, the cost of swapping flash media containing the entire cultural output of a large population becomes negligible. Even amateur radio, which evolved various means of noise-tolerant low bandwidth data communication, becomes a practical medium. In fact, what got me interested in amateur radio in the first place was a FidoNet idea wherein the entire corpus of mail generated by Moscow daily – and possibly the entire country – would be broadcast to willing consumers by shining an infrared laser at the Ostankino TV tower, backed up by forward error correction so hard that noise would be irrelevant. Only the return traffic would go over the phone lines.
Which highlights an important practical point: sneakernet packets necessitate ability to handle one-way communications and tolerate any transfer medium available. Being able to just throw the packet into the air where you may not ever hear back from your intended correspondent is critical.
[Gemini] in particular, with its accent on “one request per page, period” is interesting in this regard, because it at least makes it easier to package a Gemini capsule into an equivalent of an [openZIM] file. In fact, [Gempub specification] is effectively that, and is already supported by at least some Gemini browsers. So that takes care of freezing content into a channel-agnostic file.
But what do you do about updates, especially if you want to maintain anything resembling a network?
One interesting modern project, similar in many ways to FidoNet, which advertises sneakernet capability, but doesn’t _actually_ have it, is [Secure Scuttlebutt]. Possibly better known as [Manyverse], which is the name of the Android implementation of the protocol. It is built on a sig-chain: every ssb post is signed based on the secret key and the contents of the previous one by the same author. As a result, any post forgery will be instantly noticed, which is one of the selling points of the protocol.
Unfortunately, this also severely complicates any true sneakernet use of the protocol: It is impossible to verify the validity of the last post without receiving, ultimately, _every_ post in the sig chain, so updates can’t be atomic. Their idea of “sneakernet” is bringing a secure-scuttlebutt-capable device into physical range of another such device and letting them exchange mail wirelessly until they’re both satisfied – which involves repeated back-and-forth determining which particular messages to send. While it is not theoretically impossible to make a packet-based version of the protocol which will make and accept one-way packets and just fail gracefully if message zero for a given user is unavailable, nobody has tried seriously so far.
Whatever system would replicate the successes of FidoNet needs to be capable of signatures and end-to-end encryption, because that’s the era we live in now. But it also needs to be loss-tolerant and medium-agnostic. And just like Gemini, a bare-bones client should be easy enough to implement on a toaster. While it’s obvious that Gemini protocol can be used to build an NNTP-like system over it, there are feeds all over the place already, I doubt that’s quite the way to go.
So, any ideas how would you design a sneakernet-capable Usenet in this day and age?
✏️ View and leave comments
◀️ 2022-02-15: You will go to space today
⬅️ Tech: You will go to space today
➡️ Tech: So I made a comment system…
▶️ 2022-02-19: So I made a comment system…
© 2001-2022 Eugene Medvedev. All rights reserved, not like that ever stopped anyone, or means anything when not backed up by a corporation.