Reticulum is an elegant engineers approach to networking. It’s a complete replacement of the network stack, it’s entirely encrypted, and can communicate and can correctly organize global-scale mesh-networks over any connection >5b/s without the need for distributed hash tables, or any resource usage besides bandwidth. This makes it far lighter than GNUnet, and friendly to low-power, low bandwidth, embedded networks and devices.
This makes it viable as a global network, as it is super cheap to interact with. And it can run on any device, including your smartphone natively.
Bandwidth is a physical resource of the natural world. Reticulum is based on the principle of creating systems that (as far as is possible for a computer program) understand the physical limits of real-world resources, and manages them responsibly and intelligently, with well-thought out algorithms.
When that is ultimately not possible any more, human beings have to step in and expand capacity or make other thoughtful decisions on how to manage the available resources. I believe this is the most efficient, holistic and human-friendly approach to creating technologies that actually help us and better our lives.
- someone from forums
- boredsquirrel ( @boredsquirrel@slrpnk.net ) 8•3 months ago
Is this still an overlay network, or an actual replacement?
Reticulum is the cryptography-based networking stack for building local and wide-area networks with readily available hardware. Reticulum can continue to operate even in adverse conditions with very high latency and extremely low bandwidth.
The vision of Reticulum is to allow anyone to operate their own sovereign communication networks, and to make it cheap and easy to cover vast areas with a myriad of independent, interconnectable and autonomous networks. Reticulum is Unstoppable Networks for The People.
Sounds like an own network! Really cool!
Network replacement. The reason this comes from left field for us meshnet tech peeps is because while we have been looking at gnunet and thinking about things from the network side, the radio heads have been building their own mesh nets for ages, and this is the current cutting edge. Same social space behind LoRA.
While we were building from the top-down (ie. trying to start with the singular project), these people started from the bottom up, and got a lot farther. Growing out of radio networking protocols.
This gives them a very fresh perspective, which is why their solution is so elegant and simple. None of that fancy math bullshit that requires heavy calculations.
- Rozaŭtuno ( @Rozauhtuno@lemmy.blahaj.zone ) 7•3 months ago
Very interesting! I’ve never heard of this before.
- Faalangst_26 ( @Faalangst_26@feddit.nl ) 6•3 months ago
This is a very cool concept and it seems quite mature for something in beta. I do however have my doubts over choosing to use python for something as often used as the network stack. As I understand it, one of the goals for this project is efficiency, and while python is very efficient to write, it is notably very inefficient during runtime.
I think that’s actually a very positive sign. This is a mesh network made by radio people, not a mesh made by networking nerds. Now that it’s mature, they are doing a rewrite in C++.
Hit me up on some of the nomad network bulletin boards.
- Faalangst_26 ( @Faalangst_26@feddit.nl ) 7•3 months ago
That’s awesome, someone actually using Python what it’s best for, creating a minimum viable product, before moving onto something more permanent!
I’ll be very interested to see where this project ends up going.
- perestroika ( @perestroika@slrpnk.net ) 4•3 months ago
Interesting project, thank you for introducing. :)
I haven’t tested anything, but only checked their specs (sadly I didn’t find out how they manage without a distributed hashtable).
Reticulum does not use source addresses. No packets transmitted include information about the address, place, machine or person they originated from.
Sounds like mix networks like I2P and (to a lesser degree, since its role is proxying out to the Internet) like TOR. Mix networks send traffic using the Internet, so the bottom protocol layers (TCP and UDP) use IP addresses. Higher protocol layers (end to end messages) use cryptographic identifiers.
There is no central control over the address space in Reticulum. Anyone can allocate as many addresses as they need, when they need them.
Sounds like TOR and I2P, but people’s convenience (easily resolving a name to an address) has created centralized resources on these nets, and will likely create similar resources on any network. An important matter is whether the central name resolver can retroactively revoke a name (in I2P for example, a name that has been already distributed is irrevocable, but you can refuse to distribute it to new nodes).
Reticulum ensures end-to-end connectivity. Newly generated addresses become globally reachable in a matter of seconds to a few minutes.
The same as aforementioned mix networks, but neither of them claims operability at 5 bits per second. Generally, a megabit connection is advised to meaninfully run a mix network, because you’re not expected to freeload, but help mix traffic for others (this is how the anonymity arises).
Addresses are self-sovereign and portable. Once an address has been created, it can be moved physically to another place in the network, and continue to be reachable.
True for TOR and I2P. The address is a public key. You can move the machine with the private key anywhere, it will build a tunnel to accept incoming traffic at some other node.
All communication is secured with strong, modern encryption by default.
As it should.
All encryption keys are ephemeral, and communication offers forward secrecy by default.
In mix networks, the keys used as endpoint addresses are not ephemeral, but permanent. I’m not sure if I should take this statement at face value. If Alice wants to speak to Bob tomorrow, some identifier of Bob must not be ephemeral.
It is not possible to establish unencrypted links in Reticulum networks.
Same for mix networks.
It is not possible to send unencrypted packets to any destinations in the network.
Same.
Destinations receiving unencrypted packets will drop them as invalid.
Same.
P.S.
I also checked their interface list and it looks reasonable. Dropping an idea too: an interface for WiFi cards in monitor/inject mode might help some people. If the tool gets popular, I’m sure someone will build it. :)
This may have some similarities on the surface, however this is a mesh radio network designed for an extreme challenge of navigating a un-known-sized network, with unknown structure, with extreme computing and bandwith limitations.
- perestroika ( @perestroika@slrpnk.net ) 5•3 months ago
Yep, indeed, I’m already discovering differences too. :) A good document for techies to read seems to be here.
https://reticulum.network/manual/understanding.html
I also think I see a problem on the horizon: announce traffic volume. According to this description, it seems that Reticulum tries to forward all announces to every transport node (router). In a small network, that’s OK. In a big network, this can become a challenge (disclaimer: I’ve participated in building I2P, but ages ago, but I still remember some stuff well enough to predict where a problem might pop up). Maintenance of the routing table / network database / is among the biggest challenges when things get intercontinental.
Man your badass lol. Very cool, thanks for the resource.
GNUnet is more of an attempt to replace the entire internet, with replacements for every feature of the modern web, while Reticulum is a far more solarpunk and permacomputing vision. It’s a very practical, implementation-first approach.
It’s primarily a cheap, easy, practical tool for a local community, which can be linked with other communities around the world using any means practical.
- KeriKitty (They(/It)) ( @RiikkaTheIcePrincess@pawb.social ) English4•3 months ago
Only connections under five bits per second? Whew, where do you even get one! Seems near useless… ;P I assume that’s some kinda typo, at the least.
Kinda curious about the tech, though. If it’s not bullshit it could be interesting. … Though how they’re gonna do much at five bits per second… gonna fill up a ton of memory quick unless it’s just for tiny messages and load-balances very well. Actually, this just smells worse and worse as I think about it. Hmmmmm. Will have to poke my snoot in there when I get home. 🤔
- readbeanicecream ( @readbeanicecream@lemm.ee ) English9•3 months ago
Per the docs, it is the minimum bandwidth required:
Very low bandwidth requirements
Reticulum should be able to function reliably over links with a transmission capacity as low as 5 bits per second.
I am just now poking around myself.
- xylem ( @xylem@beehaw.org ) English5•3 months ago
That’s probably a typo. From the site:
Currently, the usable performance envelope is approximately 150 bits per second to 40 megabits per second
- AutumnSpark1226 ( @AutumnSpark1226@lemmy.today ) 4•3 months ago
Connections around 5 bits per second are the minimum.
- Kim ( @kimbot@ni.hil.ist ) 3•3 months ago
@boxy tell me if I’m missing something, but it seems like maintaining routing tables won’t scale well.
Here’s my thinking: there’s no hierarchy to destination addresses (I.e. there no equivalent to /16 or /24 subnets), which means every transport node needs to keep track of all the individual addresses instead of just route prefixes. If there are billions of destinations, at 16 bytes each, that would require about 100G of ram.
You could reduce this by maybe a factor of 10 by using a big bloom filter that contains pairs of (address, route). But 10G is still pretty large. And you’d need two of them if you ever wanted to expire old entries.
This project is slowly growing from small personal radio mesh networks. It sounds like you have some interesting points and I’m not sure the devs are truely ready for huge-scale networks. I would highly recommend getting involved if you have something to add.