In the world of communication, mesh has slowly started to grow out of it’s niche as something radio amateurs use. It is becoming something ordinary people use on a daily basis from a variety of devices. This is largely thanks to systems like Meshtastic, a message stack that helped make this type of off-grid communication accessible to everyone, not just the tech savvy.
Mesh what?
The first time someone mentioned ‘radio’ I automatically tuned out of the conversation. As a child of the 70s and early 80s, my mind conjured up images of our old neighbor tinkering away in his garage, maintaining bulky WW2 surplus radio equipment (and a huge antenna on the roof). That is how ‘radio’ looked like when i was a kid, and I honestly have not seen much of that since.

As the conversation progressed into software however, that’s when I started to pay attention, because the features that was outlined was (to be blunt) the recipe for a truly anonymous, ownerless network. One where there is no central authority or organization like we are used to with traditional internet.
And that’s when I discovered that mesh devices have little, if nothing at all, in common with the bulky old amateur radio equipment i remember. And also that mesh communication is not limited to radio. It will happily operate over Bluetooth, wi-fi and ordinary tcp.
Community networking
First, the devices these protocols were designed to run on are tiny. Seriously, they are no larger than a pager from the late 90s. Small devices you can clip on a belt or a backpack.
Secondly, mesh radio is purely digital. You can think of it as a a device designed to send small chunks of data within a radius of 10-15 km (depending on device type and signal strength). So we are talking tiny devices, surprisingly long range and coverage, no service fees, and you can even write your own software for them. You can implement your own protocol if you so wish, thats the whole point.

The reasons mesh communication has taken off around the world are many. First there is privacy, secondly there is mobility, and thirdly we have cost. People who like to go hiking in regions without GSM coverage use mesh all the time. This allows them to communicate with friends and family within a 10-15 km radius regardless of gsm coverage.
Since the devices are small people usually just attach them to their backpack or belt, pair them with their phone over Bluetooth, and use one of the many mesh messaging apps to send text, gps coordinates and even audio.
The reason it’s called ‘mesh’ is because these devices cooperate to extend their range. If my message cannot be delivered directly to you, but there is someone between us that can reach you – then my message will be sent to that middle-man’s device, and then re-broadcast from him in order to reach you.
Messages are heavily encrypted with modern certificates, so the data is useless unless you have exchanged keys first. So there is no danger of people grabbing your packets and snooping inside them. It would take years to brute-force crack such messages. Especially if you apply 256 bit encryption, or add your own ciphers on top of that (what is called a crypto-pipeline, several ciphers daisy chained together, and the data goes through each before being sent).
Message delivery can also be done over ordinary internet. If you have wi-fi available or use your phone’s data, messages are no longer limited by radio range. The message will be delivered over MQTT either directly, or to a node closer to your location. Which is pretty clever.
The software, not the hardware
As fascinating as mesh hardware is, it’s not really the subject of this article. What is more interesting is: what happens if we take the software for mesh networking and use it as the backbone for chat services or data transport on the internet?

On the mesh market there are currently 3 software stacks that are popular (I am sure there are more but these 3 stick out as the most widely adopted):
- Meshtastic
- Meshcore
- Reticulum
Meshtastic is probably the software that put mesh networking on the map for non technical people. It is easy to use (no more difficult than sms), easy to flash onto a new device, and still has the bulk of the userbase.
Meshcore is relatively new. As far as I can tell it was created to deal with some of the shortcomings of Meshtastic. It has smarter message delivery and optimized routing. It creates less noise at the expense of needing a bit more infrastructure is probably a fair assessment.
The final one, which is the system that caught my interest, is Reticulum. This is not just a message framework, but something that could be used to create a new type of network. In many ways it’s the building blocks of a truly anonymous ‘internet light‘. And unlike the others the low-level packet protocol itself is designed around anonymity and military grade encryption. Encryption is not an after thought with reticulum, it’s intrinsic to the system right down to your identity hash.
Reticulum has got a reputation for being difficult to learn. Most of the apps for it, like Sideband, requires the user to be somewhat technical (but not that much). But this is starting to change with Android apps like Columba, which has done a great job in making Reticulum user friendly and more accessible.
Agnostic design
Reticulum is transport agnostic by design. It does not care how messages are delivered, as long as they are and replies comes back. So reticulum will happily work over TCP, UDP, Websocket, mesh radio, Bluetooth -and probably even carrier pigeons if you have enough of them.

You can think of Reticulum as a cake with 3 layers. At the bottom you have what is ultimately reticulum itself, the core that sends frames and datagrams and makes data transport possible.
The second layer introduces transports, which is basically channels the core can use to send and receive data. TCP is a transport, Websocket is a transport, Mesh radio is a transport (and so on). As long as somebody implements a transport object according to specs, reticulum can use it.
The third layer is where things become interesting. This is where high-level protocols exist. You have a mail protocol which implements a message format more or less similar to email, including binary attachments.
You have news-group support (just called groups) which, if you look at the specs, is clearly designed to enable usenet like groups, with threads, replies, sub-replices and so on. This feature appears somewhat abused in other apps. Most apps display group content like a feed (like a whatsapp feed or facebook feed almost), but if you look at the protocol it’s pretty clear that it was designed as classical usenet.
Another high-level protocol is Nomadnet (a.k.a ‘sites’) which can in some respects resemble http, but it’s designed to be minimalistic. The standard document format is not html, but something called Micron. If you ever used a BBS back in the day and remember the console UI’s and ascii art pages — well, thats pretty much what Nomadnet pages are. The content is designed to work well over radio.

Having said that, there is nothing stopping you from serving html. Opening a page ultimately resolve to a file-request. That it’s a Micron page is ultimately down to interpretation by the client and what it expects. Micron pages have the *.mu extension, but you can just as easily serve text-files, an mp3 or whatever you feel like.
Not limited to
What I find exciting about Reticulum is not so much the high-level protocols that are in place at the moment, but rather that the software-stack itself is inviting. As long as you follow and respect the underlying reticulum core protocol, you can build your own high-level protocols as much as you want.
Obviously you want to avoid flooding the network, it’s important to avoid being a burden on a hub or node. But the entire point of Reticulum is to ensure freedom of communication and make it possible to establish peer-less services.

I decided to implement the reticulum protocol in Object Pascal (took me a few weeks to say the least) and do a little experiment: Without looking at the other clients, how would I interpret the protocols purely from the documentation?
I mentioned briefly that Reticulum groups have features that mimic old-school usenet groups. These were extremely useful back in the day, and I honestly dont understand why Microsoft removed them from Outlook. Either way, I did notice when i googled the subject that others seem to render group feeds more like a whatsapp or facebook. Which is borderline criminal in my book, it’s such an elegant design that it should be given more attention.
Limitations of groups
One strange thing I found with groups, is that the way they are used does not really reflect the documentation. The original author clearly defined a system with a lot more functionality in mind than what has been delivered so far.
The way people use them appear more like an organizing principle between ‘a group of people’ than it does an actual usenet usergroup. I could be wrong here ofcourse, but there is a disconnect between the specs and how people actually use them in real-life.
But if you look at the specs you find things like: thread fields, sub reply (nested replies to a top thread). That is how usenet groups operate. The original author must have thought about that otherwise there would be no need to have such fields.
The way people bypass that 1-hop rule is through replication nodes. Nodes that purely copy messages further. Since this replication happens on node/hub level, you don’t violate the 1-hop rule. Because you as the user is still just connecting to a hub, which is 1-hop.
This 1-hop rule sounds strange if approach it from a TCP point of view, but it makes perfect sense for a mesh-radio. To help build a mesh people often setup repeater nodes to cover an area, nodes that simply re-broadcast messages to extend coverage. The only way to ensure that a message doesn’t repeat indefinitely between radios, it keeps a hop count. A value that is increased by 1 for each broadcast, this is called a hop.
If you have a team of say 10 people that are searching for a missing person up in the mountains, then creating a group that unifies communication between their mesh radios is a natural feature. You dont want random messages repeating for hundreds of miles. It only becomes weird when you take the same logic and apply it to TCP.
Global rooms
I decided to create something better suited for global communication that I have just called ‘rooms’. More or less the same functionality as messenger chat. Each message is replicated to each member in the room. My model also introduces roles, where the group creator is ‘admin’. New members are assigned a member role when they join, but only the creator can be admin and have the right to kick members from the room.

The benefit of this model is that:
- It does not flood the network, messages are 1:1 between the members only
- Metadata is handled by the software that implements the room protocol
- The room exists as long as the metadata is carried by a member, so even if the creator’s node is offline, the room still exists.
- Messages appear as a chat feed, typical of mIRC and other apps. It’s meant to be X number of people talking, not per-subject posting.
Persistent delivery
One of the challenges with a peer-less network is that you cannot persist data. With email you basically hand over your data to a middle-man. The message is shipped to the recipient’s middle-man where the recipient downloads it from.
Reticulum has a similar feature, called ‘propegation nodes’. These are servers purely designed to deliver mail messages. But by default you will always try to deliver a mail message directly, the message propagation should only kick in if one of the parties is not online.
But what if you dont want to use a propagation node?
I think I have come up with a pretty good solution. This is not a protocol but rather a feature of my client. If a message cannot be delivered, it is given a state of ‘in-transit’. It will remain in your Sent Messages folder, but will be marked as not delivered.

Once every hour the client checks if it has undelivered messages in your storage vault, and it will attempt to deliver them. It will try once every hour for 14 days. If the message is still not possible to deliver, it is marked as ‘undeliverable’ and taken out of the loop. You then have to manually go in and right click on it, and hit ‘Send now’. This puts it back into the loop for another 2 weeks.
I call this ‘persistent delivery’. It avoids storing data with a middle-man, and as long as you have your client running the program will deal with it automatically. So unless your friend is offline for more than 2 weeks, it will get through.
Or you can just pick a propagation node from the list of known nodes the client has discovered. It’s all heavily encrypted anyhow so there is that.
Adding TOR
A month or two back I did a port of TOR (with much help from Grok to deal with the C header conversion and encryption logic) to object pascal. And this seemed like the perfect spot to use that code for something interesting. So where Reticulum anonymizes your identity, TOR anonymize your IP and location.
So after much swearing and late nights, I finally got my TOR port bolted into the reticulum client, and added an option for connecting through that. And so far it has worked brilliantly. The beleth server doesnt seem to like TOR exit nodes, but im not sure if that’s something done on purpose, or if it’s an ISP refusing to forward the TOR frames.
Chat service
On the plan for the Quartex Media Desktop is a chat service. I had originally drafted a chat protocol purely for websocket, but having spent some time with Reticulum – I think we will adopt that instead. It is a perfect fit for our desktop model, it’s lightweight and easy to work with – and it allows people that use our desktop system to access a wealth of existing reticulum resources.
The reticulum client I have coded was done using native code, so we will need to port the core of this to Quartex Pascal before we can isolate it as a component. For that to work smoothly we need to get parts of the codebase we currently use to build the IDE ported first. So this will not magically appear over night.
Living topology map
Reticulum is 100% privacy oriented which I love, but you can also send geo-location if you want (you can turn that on/off in preferences). There is nothing nefarious about having a reticulum node on your roof or clipped on your backpack. It is a affordable, exciting and energy efficient way of communicating.
Nodes that do send geo-location are typically infrastructure nodes, nodes that are permanently fixed on a roof, in a window or on a wall somewhere. And they are everywhere in the world!

I added a cool animated map in our client that shows announces. So whenever a hub announces itself, you get a little animation between it’s nearest nodes. A node usually send an announce every 30 or 60 minutes.
Basically I do a 3×3 probability matrix of how a node ‘could’ be connected or reach another. But it’s purely speculative so don’t read anything into it. I just love the idea of a living mesh topology and added the animation. But the animated lines between hubs meant to symbolize data-flow is not verified truth, just blind probability. I make no distinction between tcp hubs and radio hubs, and the distances involved makes it highly unlikely that signals would travel that far.
I should underline that 99% of reticulum users will not send geo-location, so the map will never show the tens of thousands of active nodes out there.
Torrent and git support
One of the fun discoveries I made with Reticulum, is that a lot of people host their git repositories purely over reticulum. Some times as a protest against people who just scavenge github repos, but also out of principle. If you want reticulum code then you should be a part of the community. As a man of principle myself I find that ‘rebel’ vibe very welcoming. People are sick and tired or surveillance, censorship and corporations harvesting personal conversations without permission.
There is also a lot of torrent links, especially for Linux distributions. I absolutely love that! If normal internet should ever go down due to war, conflicts or natural disaster – reticulum users will still be able to communicate and transport important software. It will be slow as hell downloading 700+ gigabytes over LORA (lol, yeah i know) but at least it will be possible!
And Lora+ was released back in December last year which is 10 times faster than the devices most people have today. Most low-end reticulum radios operate with 500 byte packet sizes. The mid-range devices typically offers 1k packets. But Lora+ gives you 4k packets.
And then there is Wifi-Halow which is something completely new. It is basically a Frankenstein technology, an unholy marriage between wi-fi and lora mesh radio. So it’s long range wi-fi with the same signal modulation as mesh radio (read: can travel far, good penetration of matter, can reflect around obstacles etc). I have two such devices myself and you get modern internet speed for 2 kilometers on ground level (not massive data, but enough to watch Netflix and YouTube 2km from my house, that’s pretty damn good!).
Give this tech 5 more years and I think we are going to see mesh devices with the same range (10-15 km) as today’s mesh devices, but with significantly better bandwidth and data transfers. A few thousand of those nodes around a country, and you basically have a free, unstoppable, impossible to police, network driven purely by the community.
Since i already implemented a Torrent client for the Quartex Media Desktop, I just ported that from QTX to Freepascal and added it to our Communicator. This makes like a lot easier. When you are on the Debian Micron site, clicking on the Torrent link will trigger a download – and you can start, stop, pause or delete it if you want.
Data is stored in the cryptographic vault. All messages, rooms, chats etc are all stored in the same single-fine vault. This uses crypto pipeline tech and is rock solid. If nobody explicitly knows your key-data or key-file, it will take 10,000 modern computers roughly 10^17 years to brute force their way through. And that would just give them the first layer, a crypto pipeline has many.
Final thoughts
If you like the idea of your own private network, one that you can run over mesh radio or ordinary internet, then this will be a stellar addition. You can also use it for much more than just chat. Sensor data between an outpost and a main hub would benefit from this as well. Reticulum ticks all our boxes and we really love the community behind it, they have the same creative spark that we find in the object pascal community. Where the question is not always why, but how.
Oh, and the amount of encryption in this thing is off the scales. Reticulum is designed around encryption at the very core. Your identity is a single hash + nickname, and that’s it. I followed suit by making sure data-files are likewise encrypted with the same military grade encryption. So it’s pretty much bolted shut. And with no external DLL’s as dependencies – it’s going to be very difficult to breach privacy in any meaningful way.




















