Reticulum and You
Get up an running fastReticulum is a complete network stack built from the ground up with security and autonomy in mind. It allows users to build their own network, own their identity and connectivity.
Putting that in the context of the current internet:
- You would own your own IP address and be able to create as many new addresses as you wanted.
- Routing to your address is handled by the network, not third party entities.
- One day you are at home, you announce your presence. Now you are known to the network, people can view pages you serve, you can be reached via LXMF.
- The next day you head to a coffee shop with the same device, you announce. Again you can be reached.
- Serving a blog or files can be done from any device.
- No futzing with ports.
- No futzing with a server.
- Only you decide when people can or can not access your node.
To fully experience Reticulum we will need some goals:
- Get up and running with chat.
- Browse a few nodes.
- Stand up our own node. Serving pages on a real reticulum network.
Use What You Have
A lot of people I have talked to assume you need a LoRa device to get going with Reticulum. Happily for us, LoRa is just another medium Reticulum can use. Others include Ethernet and WiFi.
Reticulum’s reference implementation is built using Python, a very portable programming language. This means it will run anywhere Python runs.
Windows, Linux, macOS, Android and even iOS are all capable of running Reticulum in some form. But for the best experience, I recommend using a Desktop OS.
Installing NomadNet
Reticulum has a number of components, but we will be using Nomadnet. NomadNet lets one browse other nodes, chat with peers and serve content to others that are on the network.
If you don’t have it already, you will need to install Python and pip (instructions for this are outside of the scope of this post).
Once they are installed we can install nomadnet:
pip install nomadnet
If you are playing along with multiple computers on the same wireless or ethernet network and don’t want to connect to the larger Reticulum network, you can skip the “Configuring NomadNet” section.
Configuring NomadNet
Once nomadnet is installed we can create default configurations by running it
once:
nomadnet
Once the UI is visible, you can exit by hitting Control+Q.
There will be two new directories in your ~/:
~/.nomadnet~/.reticulum
The config file ~/.reticulum/config is used to specify how Reticulum talks to
other nodes. It does this via
Interfaces. By default there
is only one interface defined: AutoInterface. This will allow devices on the
local network to communicate with each other out of the box, but it won’t
connect you to the greater Reticulum Network.
Bootstrapping
Using your favorite editor, open ~/.reticulum/config. We are going to make two
changes:
- Enable Interface Discovery
- Add an initial bootstrap interface
Under the
[reticulum]section add:discover_interfaces = YesIn the
[interfaces]section add:[[SUAH TCP]] type = TCPClientInterface enabled = True target_host = suah.dev target_port = 4343 bootstrap_only = True
Once these pieces are in place your Reticulum instance will use the configured
interface to “bootstrap” connectivity to the greater network. The server
suah.dev is configured to share it’s interfaces and also to discover new
ones. It will then inform your instance about new ways to connect.
To view auto-discovered interfaces you can run rnstatus with the -d flag. It
will take some time for the info to populate, but you can watch as info pours in
with the -m flag.
rnstatus -d
Name Type Status Last Heard Value Location
-----------------------------------------------------------------------------------------
rns.moscow-i2p I2P ✓ Available 1h ago 33 -
Slivovica Backbone ✓ Available 6h ago 29 -
Chatting (LXMF)
Reticulum has a number of ways to send messages but the canonical method is via Lightweight Extensible Message Format (LXMF).
But before we get to using LXMF we need to discuss a bit of Reticulum terminology: Announcements.
Announcements in reticulum are how a device becomes know to the network. Once you announce and the announce is propagated across the network, other nodes will be able to route traffic to and from you.
To find people to chat with, you will need to run nomadnet and go to the
Network tab. From here you can switch to a mode that shows Announcements. Do
this by hitting Control+L
By default NomadNet sends out an announcement on startup.
At the top of the Network page you will see Nodes, Peers and Propagation
Nodes. Peers are people you can chat with. You could send an unvetted rando a
message but it’s not likely you will get a reply. So instead send one to me:
745a11b819e01a722cd59ddf74c4b2bf.
If you skipped the “Configuring NomadNet” section, check to see if you see an
announcement on either of the machines you are using. If not, hit the Announce
Now button. If so, select one and hit the Converse button!
Browsing
Under the Network tab (in show announcements mode) you will also see the
Nodes sub-tab. This lists nodes that are serving browseable pages.
Selecting one brings up a dialog with a few options: Connect, Msg Op and
Save. As you can guess, Connect will load a given page.
A few pages that might be of interest:
| Name | Description | Link |
|---|---|---|
| Waystone | Search engine | f3a6a73294416a6d9e75706bb9167c6c |
| OpenBSD.app | OpenBSD package search | 0cc65124b72a5fdec6dcc14241bb8108 |
| RMAP.WORLD | Global map of Reticulum instances | a4a5e861626ce97c9aa544d9ecdf6d22 |
To load a page, you will need to copy the Link field above and paste it into the
dialog that opens in NomadNet when you hit Control+U (Note the handy keyboard
shortcut guide at the bottom of the screen).
Standing Up Your Own Node
Remember I said there would be two new entries in your ~/? Well now we need to
modify the NomadNet config file (~/.nomadnet/config) to enable page
hosting. Quit NomadNet via Control+Q and bust out your editor.
This option is under the [node] section.
You should see a line:
enable_node = no
Change it to:
enable_node = yes
You can also specify a node_name to give people an idea about the content you
are hosting.
Create your first page
Time for that trusty editor again. Open up
~/.nomadnetwork/storage/pages/index.mu. .mu files are written in “Micron” a
mark up language created specifically for Reticulum. There is a page in NomadNet
that explains all of Micron, so I won’t go into details here. We will just add
some text, save it and fire up NomadNet again.
Congrats! You now have a reachable node on the Reticulum network!
Going Further
There is plenty of information available to you directly inside NomadNet. The
Guide tab covers much more that I touched on here. Be sure to check it out!
The Reticulum Network Stack Manual is another extremely good source of information!
I hope this brief intro was helpful!