Hacker News new | ask | show | jobs
by rm30 149 days ago
I’ve read all the posts and, as the 'old man of the village', I would suggest taking a look at FidoNet. It was running 40 years ago, for more than a decade, before the internet was available to the average person.

Store-and-forward, hierarchical organization, scheduled transmissions, working over dial-up and radio links, everything is there.

There is nothing new to invent, and it was far more reliable than the 10m real-world range of BT5 (not the 1km claimed for lab devices, which aren't commercial phones).

A BT5 mesh only works under well-defined conditions, which usually coincide with the cases where you don't actually need it.

3 comments

FidoNet has a lot of it solved, for sure. But doesn't it rely upon pre-configured paths between nodes in order to handle message routing?

If so, then: Wouldn't it fall down completely when operating in the ever-shifting and inherently disorganized environment that a sea of pocket supercomputers represents?

I don’t take concepts as a 'full package'. I evaluate what is worth taking based on the requirements. The brilliant part of FidoNet is the asynchronous persistence.

In a 'sea of supercomputers,' a real-time mesh (like Bluetooth) fails because it requires an end-to-end path right now. Store-and-Forward allows a node to hold a message until it 'sees' any valid peer, turning every 'meat-bot' into a mobile post office.

My main concern with this entire discussion is the reliance on Bluetooth to achieve the result.

If we truly want to build a free and open intercommunications system, we must put all ideas on the table, establish clear targets (a doomsday system or inviting a friend for a drink), and evaluate what is truly available versus what is not.

Only from that foundation can we begin to define a project that survives the real world.

Yes. There's a lot of things to work out.

Here's one scenario:

Node A has a message to send to node H, but A is disconnected (no peers). Node A stores this message for eventual delivery.

Eventually, node K (ie "any valid peer") appears. Node A gives them the message that is intended for node H and rinses its hands of it.

Does node K's possession of this message actually improve the odds of node H ever receiving the message?

In theory, yes. There are now two nodes with the message for H.

In practice? A and H might live in the town and K might be just visiting for business, they might never come back.

Well, no: In the scenario I outlined, there's now still just one node with the message for H. A passed it to K, and promptly forgot about (having passed it along to "any" valid peer).

---

In your scenario, both A and K store the message for H -- suggesting replication (or perhaps, redundancy) by visiting peers. And maybe replication is OK.

It seems obvious that it can spiral out of control, but our pocket supercomputers do have a fair bit of bandwidth even at Bluetooth speeds, and flash memory is very cheap and available (a gigabyte of flash can hold a lot of short-ish text messages and costs very little).

So the network can afford quite a lot of replication in an effort to promote distribution -- and maybe that can work. Maybe the message isn't stored by just A and K, but also E, I, O, and U because they happened to stroll by and see the outbound message for H.

But there must be limits, if for no other reason than without limits then any single bad actor can ruin the whole works by exceeding the bandwidth and storage capabilities of the network.

These limits could be hop-based, or time-based, or geography-based, or any/all of the above.

Suppose a message lives until any of 50 hops or 5 days or 50 miles is exceeded? Yeah, maybe something like that works. The capabilities can be mathed to find some version of "ideal," and probably enforced somehow to prevent bad actors from doing too much bad stuff.

(But we're very rapidly straying very far from Fidonet's normal distribution behavior here, and dismantling that concept was the main crux of how I got to thinking about these things may theoretically work to begin with.)

It looks like Secure Scuttlebutt may also be relevant here, as it was designed with unreliable networks in mind.

https://en.wikipedia.org/wiki/Secure_Scuttlebutt

Thanks for posting - this is really interesting. An idea perhaps whose time may have come. Out of interest (no criticism implied) but do/have you use this tech? and if so what was your experience?
I never actually used Fidonet. I started on BBS systems just as the internet was becoming affordable, and I made the switch early.

However, I apply the concepts of FidoNet almost every day. I often design offline-first devices, where store-and-forward logic is a necessity, not an option. Many are deployed in remote areas where signals are never optimal, there a High-Gain Antenna is the only solution.

I also prioritize binary protocols over structured JSON; you have a much higher probability of delivering a few hundred bytes of binary data than a bloated text object when the link budget is tight. Finally, I never expect Wi-Fi to work beyond 5-10m when the router is placed inside the metal structure (that's why my skepticism about BT on cruise ship).