Reticulum, a secure and anonymous mesh networking stack

(github.com)

102 points | by brogu 5 hours ago

9 comments

  • 405nm 4 hours ago
    it hit version 1.0.0 this summer and it works!

    to get started easily, check out meshchat:

    https://github.com/liamcottle/reticulum-meshchat

    or sideband on android:

    https://github.com/markqvist/Sideband

    you can already send photos and voice chat over lora, and when lora runs out of bandwidth or if there’s no link, the protocol can seamlessly go over any other link type.

  • arthurmorgxn 18 minutes ago
    This is cool, I’ve been playing around Offline Protocol’s DORS SDK that they put out last month and it’s been great for cross platform whereas Bitchat’s Noise setup was a little more cumbersome to get started. Need to dig more into LoRa meshes.
  • roxolotl 26 minutes ago
    How does this differ from meshtastic? Is meshtastic just more chat based and this is more generic?
    • 405nm 12 minutes ago
      meshtastic is chat and lora only. its protocol is super inefficient and unreliable, and only can handle a maximum of 7 hops across the mesh.
  • gaudystead 4 hours ago
    I just happened to recently learn about Reticulum from another part of the internet and find it fascinating. Am I correct in thinking that it can basically run on anything that can run arbitrary code and the ability to talk to another device? (seems like it'd even work over serial if one had the determination to make it work)
    • RiverCrochet 3 hours ago
      - If it runs Python and pip/pipx, and you can pull in the required packages via pip/pipx, it'll run Reticulum.

      - On 32-bit x86 platforms it has to build the PyCA/cryptography module, but works fine after it does that.

      - Reticulum supports a number physical interfaces, serial is one of them. It of course has the "RNode" intefaces for LoRa radios. For Ethernet, there is "AutoInterface" which uses IPv6 autoconfiguration for peer discovery and IPv6 UDP for transport but doesn't rely on DNS, DHCP, or anything else. If your PC, phone, or other involved devices on the same network have IPv6 enabled and no filtering is happening on layer 2 then it's dead simple - any device there will see announces from others and be able to transact with you not doing much more than spinning up MeshChat.

      - Other interface types are TCP client, TCP server, IPv4 UDP, I2P, and a pipe interface. The pipe interface is interesting as it's basically stdin/stdout to an executable of your choice, so you can use that to make Reticulum available over really anything you could dream up, such as an SSH tunnel.

    • hoss1474489 3 hours ago
      The only fully-functional stack currently available requires Python >= 3.8, which is the main limitation to where it will run. But there’s still a lot you can do with that!
  • ashton314 3 hours ago
    Sounds like someone is a fan of Anathem!
  • samantp 2 hours ago
    Looks great. Does it need all users to install Reticulum, or app/service prividers (online shop etc) on Reticulum can make their services available for access via browsers?
    • 405nm 1 hour ago
      all users need to be running the reticulum network stack to be able to send, receive, and route packets.

      reticulum itself describes the network stack (like tcp/ip) and it has its own protocols like LXMF for messaging and LXST for streaming. applications can be built on top of these protocols.

      it’s different than IP, instead of addresses, each node has an identity that’s a cryptographic key pair that you send messages to, the routing happens in the background regardless of network topology or diversity of link types.

      you CAN send reticulum packets over a TCP/IP adapter and thus across the normal Internet (there are a lot of testnet and community nodes that are accessed this way), but the protocol also seamlessly bridges over any interface (lora, bluetooth, HAM radio, etc) that is attached to the node.

      so like, there could be a message sent over lora to a base station that relays it to another server through the internet, then that server sends it out over a ham radio link to another computer somewhere else, etc.

      all the message sender has to know is the pubkey of the node they want to talk to, and the network figures out how to establish a link.

      128 hops maximum.

      the prerolled binaries of the aforementioned software include the network stack and easy enough presets to find content from other nodes and people to talk to.

  • NewJazz 3 hours ago
    The Software shall not be used, directly or indirectly, in the creation of an artificial intelligence, machine learning or language model training dataset, including but not limited to any use that contributes to the training or development of such a model or algorithm.
    • dotty- 1 hour ago
      I saw this too and immediately thought: well, they published this on GitHub which surely has a clause that grants it a license to use the code for training Copilot for Microsoft at a minimum, sooo should've published on another Git platform.
      • promiseofbeans 1 hour ago
        > This repository is a public mirror. All development is happening elsewhere.

        So if I have code on a personal (but publicly exposed) git server with a license that includes the above quoted terms, and someone decides they want to be helpful and publish a public read-only mirror of my code to GitHub, then they’re allowed to accept that license on my behalf? I never did a thing and yet I’m now in a contract with Microsoft? How does this work legally?

      • avodonosov 54 minutes ago
        Not sure GitHub has such a clause. Just looked at their terms and don't see it.
  • gnabgib 5 hours ago
    Popular in 2022 (95 points, 15 comments) https://news.ycombinator.com/item?id=30870187
    • elbci 5 hours ago
      ... urgently needed now ;)
  • TheCraiggers 3 hours ago
    Anybody have any experience running this on a tdeck? I'm kinda toying with the idea of ordering a couple just to play with.