Dear readers,
I'm very excited to make this announcement today, approaching the one
year anniversary of the Irdest fork from the previous project's
leadership. In the past year a lot of things have happened. We have
gotten funding via the NLnet [1] European research grant program, as
well as participated in the Google Summer of Code for the first time
(technically anyway).
But while these are amazing milestones in the life of this project,
today's announcement is about something more technical.
[1]: https://nlnet.nl/project/Irdest/
The announcement
----------------
I'm extremely happy to announce the release of Ratman v0.3.0 [2], a
_stand-alone userspace packet router_ for Linux, NetBSD, MacOS, and
Windows (the latter three with only very minimal testing however). On
the surface Ratman provides a TCP socket API, allowing
applications to interact with a decentralised Irdest network. In the
backend Ratman connects to a set of networking channels via specific
drivers (called "net modules").
This architecture enables peer-to-peer connections between Ratman
instances on a wide variety of platforms with implicit network roaming
support. Currently the only net module included is a _TCP overlay_
but we are working on many others!
[2]: https://irde.st/downloads
The reasoning
-------------
I have been working on this project in some way or another since 2016
and in all that time we have gone through a lot of phases in the
design of what Irdest (and it's predecessor) should, and could be. In
many ways its identity in the last few years was still deeply rooted
in the initial application written back in 2012: a phone app that
allowed you to connect to people around you.
However as time went on, the more convinced I became that this
approach to building mesh networks did not scale. Not only has mobile
technology moved in a vastly different direction, the use-cases for
these purely ad-hoc networks are so few and far between that focusing
on it exclusively felt like the wrong design decision to make.
There are a lot of exciting prospects to mesh routing, with research
papers of the last decade demonstrating many mechanisms by which mesh
routing can be made more efficient and scalable. Irdest (meaning the
fork) was born out of a desire to build a platform to implement and
test these mechanisms in a real-world setting, while also providing
easy access to these tools to anyone who was interested in them.
With this release we are officially departing from the goal of
creating "an app" and instead focusing on the infrastructure that
other applications can use to build their networking on top of.
Of course Ratman can still run on phones, and we do have a phone app
on the roadmap which will act as a testbed to wireless peer-to-peer
connection mechanisms (among other things), while also integrating
with the Android and iOS VPN interfaces. The shift in focus here
however is the building of infrastructure that other applications
should use, not to create the next messenger or social network that
people will have to install and ignore on their phones.
Our hope is that the technology we create can be re-used by other
projects to improve the state of decentralised mesh routing projects
overall.
What else?
----------
As I have mentioned we have funding from an NLnet grant to do work on
Irdest. While this grant was initially meant for me to work on this
project full time I have since found a day job and would like to
extend the grant to anyone else who wants to contribute to the
project. The current set of milestones will have to be revised (with
this shift in project focus) but I'm hoping to release a set of
milestones in the next month or so and work with NLnet to extend the
scope to anyone else wanting to work on any of them. More details on
this will follow!
Summary
-------
I'm very excited about this step towards a new project identity and I
hope that this announcement has made you at least a bit curious to try
out Ratman in some way or another. The current daemon will very
likely be most interesting to those already running and administrating
networks and there is still a lot of work ahead of us to make this
project more approachable and understandable to users without network
administration backgrounds.
Nonetheless I think this is a big step in the right direction and I'm
excited to see what the future may hold.
If you have questions or comments about this announcement, feel free
to reply to this list, or join our Matrix chat room at #chat:irde.st.
Cheerio!
- Kookie