mirror of
https://github.com/markqvist/reticulum_website.git
synced 2025-11-27 09:50:24 -05:00
Updated github build
This commit is contained in:
parent
c53ff4bd7b
commit
cf0e8ffa07
20 changed files with 146 additions and 109 deletions
Binary file not shown.
Binary file not shown.
|
|
@ -117,7 +117,7 @@ Reticulum uses the singular concept of *destinations*. Any application using Ret
|
||||||
networking stack will need to create one or more destinations to receive data, and know the
|
networking stack will need to create one or more destinations to receive data, and know the
|
||||||
destinations it needs to send data to.
|
destinations it needs to send data to.
|
||||||
|
|
||||||
All destinations in Reticulum are _represented_ as a 16 byte hash. This hash is derived from truncating a full
|
All destinations in Reticulum are *represented* as a 16 byte hash. This hash is derived from truncating a full
|
||||||
SHA-256 hash of identifying characteristics of the destination. To users, the destination addresses
|
SHA-256 hash of identifying characteristics of the destination. To users, the destination addresses
|
||||||
will be displayed as 16 hexadecimal bytes, like this example: ``<13425ec15b621c1d928589718000d814>``.
|
will be displayed as 16 hexadecimal bytes, like this example: ``<13425ec15b621c1d928589718000d814>``.
|
||||||
|
|
||||||
|
|
@ -141,7 +141,7 @@ ratchets on a per-destination basis. The multi-hop transport, coordination, veri
|
||||||
layers are fully autonomous and also based on elliptic curve cryptography.
|
layers are fully autonomous and also based on elliptic curve cryptography.
|
||||||
|
|
||||||
Reticulum also offers symmetric key encryption for group-oriented communications, as well as
|
Reticulum also offers symmetric key encryption for group-oriented communications, as well as
|
||||||
unencrypted packets for local broadcast purposes.
|
unencrypted packets (for local broadcast purposes **only**).
|
||||||
|
|
||||||
Reticulum can connect to a variety of interfaces such as radio modems, data radios and serial ports,
|
Reticulum can connect to a variety of interfaces such as radio modems, data radios and serial ports,
|
||||||
and offers the possibility to easily tunnel Reticulum traffic over IP links such as the Internet or
|
and offers the possibility to easily tunnel Reticulum traffic over IP links such as the Internet or
|
||||||
|
|
@ -401,11 +401,10 @@ any transport node receiving it, but according to some specific rules:
|
||||||
to be transmitted, the newest announce is discarded. If the newest announce contains different
|
to be transmitted, the newest announce is discarded. If the newest announce contains different
|
||||||
application specific data, it will replace the old announce.
|
application specific data, it will replace the old announce.
|
||||||
|
|
||||||
Once an announce has reached a node in the network, any other node in direct contact with that
|
Once an announce has reached a transport node in the network, any other node in direct contact with that
|
||||||
node will be able to reach the destination the announce originated from, simply by sending a packet
|
transport node will be able to reach the destination the announce originated from, simply by sending a packet
|
||||||
addressed to that destination. Any node with knowledge of the announce will be able to direct the
|
addressed to that destination. Any transport node with knowledge of the announce will be able to direct the
|
||||||
packet towards the destination by looking up the next node with the shortest amount of hops to the
|
packet towards the destination by looking up the most efficient next node to the destination.
|
||||||
destination.
|
|
||||||
|
|
||||||
According to these rules, an announce will propagate throughout the network in a predictable way,
|
According to these rules, an announce will propagate throughout the network in a predictable way,
|
||||||
and make the announced destination reachable in a short amount of time. Fast networks that have the
|
and make the announced destination reachable in a short amount of time. Fast networks that have the
|
||||||
|
|
@ -414,6 +413,17 @@ new destinations. Slower segments of such networks might take a bit longer to ga
|
||||||
the wide and fast networks they are connected to, but can still do so over time, while prioritising full
|
the wide and fast networks they are connected to, but can still do so over time, while prioritising full
|
||||||
and quickly converging end-to-end connectivity for their local, slower segments.
|
and quickly converging end-to-end connectivity for their local, slower segments.
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
|
||||||
|
Even very slow networks, that simply don't have the capacity to ever reach *full* convergence
|
||||||
|
will generally still be able to reach **any other destination on any connected segments**, since
|
||||||
|
interconnecting transport nodes will prioritize announces into the slower segments that are
|
||||||
|
actually requested by nodes on these.
|
||||||
|
|
||||||
|
This means that slow, low-capacity or low-resource segments **don't** need to have full network
|
||||||
|
knowledge, since paths can always be recursively resolved from other segments that do have
|
||||||
|
knowledge about them.
|
||||||
|
|
||||||
In general, even extremely complex networks, that utilize the maximum 128 hops will converge to full
|
In general, even extremely complex networks, that utilize the maximum 128 hops will converge to full
|
||||||
end-to-end connectivity in about one minute, given there is enough bandwidth available to process
|
end-to-end connectivity in about one minute, given there is enough bandwidth available to process
|
||||||
the required amount of announces.
|
the required amount of announces.
|
||||||
|
|
@ -424,7 +434,7 @@ Reaching the Destination
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
In networks with changing topology and trustless connectivity, nodes need a way to establish
|
In networks with changing topology and trustless connectivity, nodes need a way to establish
|
||||||
*verified connectivity* with each other. Since the network is assumed to be trustless, Reticulum
|
*verified connectivity* with each other. Since the underlying network mediums are assumed to be trustless, Reticulum
|
||||||
must provide a way to guarantee that the peer you are communicating with is actually who you
|
must provide a way to guarantee that the peer you are communicating with is actually who you
|
||||||
expect. Reticulum offers two ways to do this.
|
expect. Reticulum offers two ways to do this.
|
||||||
|
|
||||||
|
|
@ -435,7 +445,7 @@ For exchanges of small amounts of information, Reticulum offers the *Packet* API
|
||||||
an ECDH key exchange with the destination's public key (or ratchet key, if available), and encrypt the information.
|
an ECDH key exchange with the destination's public key (or ratchet key, if available), and encrypt the information.
|
||||||
|
|
||||||
* | It is important to note that this key exchange does not require any network traffic. The sender already
|
* | It is important to note that this key exchange does not require any network traffic. The sender already
|
||||||
knows the public key of the destination from an earlier received *announce*, and can thus perform the ECDH
|
knows the public key of the destination from an earlier received announce, and can thus perform the ECDH
|
||||||
key exchange locally, before sending the packet.
|
key exchange locally, before sending the packet.
|
||||||
|
|
||||||
* | The public part of the newly generated ephemeral key-pair is included with the encrypted token, and sent
|
* | The public part of the newly generated ephemeral key-pair is included with the encrypted token, and sent
|
||||||
|
|
@ -461,14 +471,14 @@ For exchanges of small amounts of information, Reticulum offers the *Packet* API
|
||||||
|
|
||||||
For exchanges of larger amounts of data, or when longer sessions of bidirectional communication is desired, Reticulum offers the *Link* API. To establish a *link*, the following process is employed:
|
For exchanges of larger amounts of data, or when longer sessions of bidirectional communication is desired, Reticulum offers the *Link* API. To establish a *link*, the following process is employed:
|
||||||
|
|
||||||
* | First, the node that wishes to establish a link will send out a special packet, that
|
* | First, the node that wishes to establish a link will send out a *link request* packet, that
|
||||||
traverses the network and locates the desired destination. Along the way, the Transport Nodes that
|
traverses the network and locates the desired destination. Along the way, the Transport Nodes that
|
||||||
forward the packet will take note of this *link request*.
|
forward the packet will take note of this *link request*, and mark it as pending.
|
||||||
|
|
||||||
* | Second, if the destination accepts the *link request* , it will send back a packet that proves the
|
* | Second, if the destination accepts the *link request* , it will send back a packet that proves the
|
||||||
authenticity of its identity (and the receipt of the link request) to the initiating node. All
|
authenticity of its identity (and the receipt of the link request) to the initiating node. All
|
||||||
nodes that initially forwarded the packet will also be able to verify this proof, and thus
|
nodes that initially forwarded the packet will also be able to verify this proof, and thus
|
||||||
accept the validity of the *link* throughout the network.
|
accept the validity of the *link* throughout the network. The link is now marked as *established*.
|
||||||
|
|
||||||
* | When the validity of the *link* has been accepted by forwarding nodes, these nodes will
|
* | When the validity of the *link* has been accepted by forwarding nodes, these nodes will
|
||||||
remember the *link* , and it can subsequently be used by referring to a hash representing it.
|
remember the *link* , and it can subsequently be used by referring to a hash representing it.
|
||||||
|
|
@ -560,9 +570,10 @@ an arbitrary number of hops, where information will be exchanged between two nod
|
||||||
*link proof* to perform it's own Diffie Hellman Key Exchange and derive the symmetric key
|
*link proof* to perform it's own Diffie Hellman Key Exchange and derive the symmetric key
|
||||||
that is used to encrypt the channel. Information can now be exchanged reliably and securely.
|
that is used to encrypt the channel. Information can now be exchanged reliably and securely.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
It’s important to note that this methodology ensures that the source of the request does not need to
|
It’s important to note that this methodology ensures that the source of the request does not need to
|
||||||
reveal any identifying information about itself. The link initiator remains completely anonymous.
|
reveal any identifying information about itself. **The link initiator remains completely anonymous**.
|
||||||
|
|
||||||
When using *links*, Reticulum will automatically verify all data sent over the link, and can also
|
When using *links*, Reticulum will automatically verify all data sent over the link, and can also
|
||||||
automate retransmissions if *Resources* are used.
|
automate retransmissions if *Resources* are used.
|
||||||
|
|
@ -624,18 +635,20 @@ into the future. The current Reference System Setup is as follows:
|
||||||
* **Interface Device**
|
* **Interface Device**
|
||||||
A data radio consisting of a LoRa radio module, and a microcontroller with open source
|
A data radio consisting of a LoRa radio module, and a microcontroller with open source
|
||||||
firmware, that can connect to host devices via USB. It operates in either the 430, 868 or 900
|
firmware, that can connect to host devices via USB. It operates in either the 430, 868 or 900
|
||||||
MHz frequency bands. More details can be found on the `RNode Page <https://unsigned.io/rnode>`_.
|
MHz frequency bands. More details can be found on the `RNode Page <https://github.com/markqvist/rnode_firmware>`_.
|
||||||
* **Host Device**
|
* **Host Device**
|
||||||
Any computer device running Linux and Python. A Raspberry Pi with a Debian based OS is
|
Any computer device running Linux and Python. A Raspberry Pi with a Debian based OS is
|
||||||
recommended.
|
a good place to start, but anything can be used.
|
||||||
* **Software Stack**
|
* **Software Stack**
|
||||||
The most recently released Python Implementation of Reticulum, running on a Debian based
|
The most recently released Python Implementation of Reticulum, running on a Linux-based
|
||||||
operating system.
|
operating system.
|
||||||
|
|
||||||
To avoid confusion, it is very important to note, that the reference interface device **does not**
|
.. note::
|
||||||
use the LoRaWAN standard, but uses a custom MAC layer on top of the plain LoRa modulation! As such, you will
|
|
||||||
need a plain LoRa radio module connected to an controller with the correct firmware. Full details on how to
|
To avoid confusion, it is very important to note, that the reference interface device **does not**
|
||||||
get or make such a device is available on the `RNode Page <https://unsigned.io/rnode>`_.
|
use the LoRaWAN standard, but uses a custom MAC layer on top of the plain LoRa modulation! As such, you will
|
||||||
|
need a plain LoRa radio module connected to a controller with the correct firmware. Full details on how to
|
||||||
|
get or make such a device is available on the `RNode Page <https://github.com/markqvist/rnode_firmware>`_.
|
||||||
|
|
||||||
With the current reference setup, it should be possible to get on a Reticulum network for around 100$
|
With the current reference setup, it should be possible to get on a Reticulum network for around 100$
|
||||||
even if you have none of the hardware already, and need to purchase everything.
|
even if you have none of the hardware already, and need to purchase everything.
|
||||||
|
|
@ -649,16 +662,16 @@ Protocol Specifics
|
||||||
==================
|
==================
|
||||||
|
|
||||||
This chapter will detail protocol specific information that is essential to the implementation of
|
This chapter will detail protocol specific information that is essential to the implementation of
|
||||||
Reticulum, but non critical in understanding how the protocol works on a general level. It should be
|
Reticulum, but non-critical in understanding how the protocol works on a general level. It should be
|
||||||
treated more as a reference than as essential reading.
|
treated more as a reference than as essential reading.
|
||||||
|
|
||||||
|
|
||||||
Packet Prioritisation
|
Packet Prioritisation
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
Currently, Reticulum is completely priority-agnostic regarding general traffic. All traffic is handled
|
Currently, Reticulum is completely priority-agnostic regarding *general* traffic. All traffic is handled
|
||||||
on a first-come, first-serve basis. Announce re-transmission are handled according to the re-transmission
|
on a first-come, first-serve basis. Announce re-transmission and other maintenance traffic is handled
|
||||||
times and priorities described earlier in this chapter.
|
according to the re-transmission times and priorities described earlier in this chapter.
|
||||||
|
|
||||||
|
|
||||||
Interface Access Codes
|
Interface Access Codes
|
||||||
|
|
@ -666,8 +679,8 @@ Interface Access Codes
|
||||||
|
|
||||||
Reticulum can create named virtual networks, and networks that are only accessible by knowing a preshared
|
Reticulum can create named virtual networks, and networks that are only accessible by knowing a preshared
|
||||||
passphrase. The configuration of this is detailed in the :ref:`Common Interface Options<interfaces-options>`
|
passphrase. The configuration of this is detailed in the :ref:`Common Interface Options<interfaces-options>`
|
||||||
section. To implement these feature, Reticulum uses the concept of Interface Access Codes, that are calculated
|
section. To implement this feature, Reticulum uses the concept of Interface Access Codes, that are calculated
|
||||||
and verified per packet.
|
and verified per-packet.
|
||||||
|
|
||||||
An interface with a named virtual network or passphrase authentication enabled will derive a shared Ed25519
|
An interface with a named virtual network or passphrase authentication enabled will derive a shared Ed25519
|
||||||
signing identity, and for every outbound packet generate a signature of the entire packet. This signature is
|
signing identity, and for every outbound packet generate a signature of the entire packet. This signature is
|
||||||
|
|
@ -912,6 +925,11 @@ with the OpenSSL backend being *much* faster. The most important consequence how
|
||||||
potential loss of security by using primitives that has not seen the same amount of scrutiny,
|
potential loss of security by using primitives that has not seen the same amount of scrutiny,
|
||||||
testing and review as those from OpenSSL.
|
testing and review as those from OpenSSL.
|
||||||
|
|
||||||
|
Using the normal RNS installation procedures, it is not possible to install Reticulum on a
|
||||||
|
system without the required OpenSSL primitives being available, and if they are not, they will
|
||||||
|
be resolved and installed as a dependency. It is only possible to use the pure-python primitives
|
||||||
|
by manually specifying this, for example by using the ``rnspure`` package.
|
||||||
|
|
||||||
.. warning::
|
.. warning::
|
||||||
If you want to use the internal pure-python primitives, it is **highly advisable** that you
|
If you want to use the internal pure-python primitives, it is **highly advisable** that you
|
||||||
have a good understanding of the risks that this pose, and make an informed decision on whether
|
have a good understanding of the risks that this pose, and make an informed decision on whether
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
const DOCUMENTATION_OPTIONS = {
|
const DOCUMENTATION_OPTIONS = {
|
||||||
VERSION: '1.0.3',
|
VERSION: '1.0.4',
|
||||||
LANGUAGE: 'en',
|
LANGUAGE: 'en',
|
||||||
COLLAPSE_INDEX: false,
|
COLLAPSE_INDEX: false,
|
||||||
BUILDER: 'html',
|
BUILDER: 'html',
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
<link rel="prefetch" href="_static/rns_logo_512.png" as="image">
|
<link rel="prefetch" href="_static/rns_logo_512.png" as="image">
|
||||||
|
|
||||||
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 -->
|
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 -->
|
||||||
<title>Code Examples - Reticulum Network Stack 1.0.3 documentation</title>
|
<title>Code Examples - Reticulum Network Stack 1.0.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
||||||
|
|
@ -180,7 +180,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">Reticulum Network Stack 1.0.3 documentation</div></a>
|
<a href="index.html"><div class="brand">Reticulum Network Stack 1.0.4 documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
|
@ -204,7 +204,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.3 documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.4 documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
|
@ -3660,7 +3660,7 @@ will be fully on-par with natively included interfaces, including all supported
|
||||||
|
|
||||||
</aside>
|
</aside>
|
||||||
</div>
|
</div>
|
||||||
</div><script src="_static/documentation_options.js?v=baaebd52"></script>
|
</div><script src="_static/documentation_options.js?v=71272d9f"></script>
|
||||||
<script src="_static/doctools.js?v=9bcbadda"></script>
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
||||||
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||||
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
<link rel="prefetch" href="_static/rns_logo_512.png" as="image">
|
<link rel="prefetch" href="_static/rns_logo_512.png" as="image">
|
||||||
|
|
||||||
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 -->
|
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 -->
|
||||||
<title>An Explanation of Reticulum for Human Beings - Reticulum Network Stack 1.0.3 documentation</title>
|
<title>An Explanation of Reticulum for Human Beings - Reticulum Network Stack 1.0.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
||||||
|
|
@ -180,7 +180,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">Reticulum Network Stack 1.0.3 documentation</div></a>
|
<a href="index.html"><div class="brand">Reticulum Network Stack 1.0.4 documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
|
@ -204,7 +204,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.3 documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.4 documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
|
@ -291,7 +291,7 @@
|
||||||
|
|
||||||
</aside>
|
</aside>
|
||||||
</div>
|
</div>
|
||||||
</div><script src="_static/documentation_options.js?v=baaebd52"></script>
|
</div><script src="_static/documentation_options.js?v=71272d9f"></script>
|
||||||
<script src="_static/doctools.js?v=9bcbadda"></script>
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
||||||
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||||
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@
|
||||||
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="#"><link rel="search" title="Search" href="search.html">
|
<meta name="color-scheme" content="light dark"><link rel="index" title="Index" href="#"><link rel="search" title="Search" href="search.html">
|
||||||
<link rel="prefetch" href="_static/rns_logo_512.png" as="image">
|
<link rel="prefetch" href="_static/rns_logo_512.png" as="image">
|
||||||
|
|
||||||
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 --><title>Index - Reticulum Network Stack 1.0.3 documentation</title>
|
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 --><title>Index - Reticulum Network Stack 1.0.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
||||||
|
|
@ -178,7 +178,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">Reticulum Network Stack 1.0.3 documentation</div></a>
|
<a href="index.html"><div class="brand">Reticulum Network Stack 1.0.4 documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
|
@ -202,7 +202,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.3 documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.4 documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
|
@ -819,7 +819,7 @@
|
||||||
|
|
||||||
</aside>
|
</aside>
|
||||||
</div>
|
</div>
|
||||||
</div><script src="_static/documentation_options.js?v=baaebd52"></script>
|
</div><script src="_static/documentation_options.js?v=71272d9f"></script>
|
||||||
<script src="_static/doctools.js?v=9bcbadda"></script>
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
||||||
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||||
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
<link rel="prefetch" href="_static/rns_logo_512.png" as="image">
|
<link rel="prefetch" href="_static/rns_logo_512.png" as="image">
|
||||||
|
|
||||||
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 -->
|
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 -->
|
||||||
<title>Getting Started Fast - Reticulum Network Stack 1.0.3 documentation</title>
|
<title>Getting Started Fast - Reticulum Network Stack 1.0.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
||||||
|
|
@ -180,7 +180,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">Reticulum Network Stack 1.0.3 documentation</div></a>
|
<a href="index.html"><div class="brand">Reticulum Network Stack 1.0.4 documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
|
@ -204,7 +204,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.3 documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.4 documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
|
@ -1040,7 +1040,7 @@ All other available modules will still be loaded when needed.</p>
|
||||||
|
|
||||||
</aside>
|
</aside>
|
||||||
</div>
|
</div>
|
||||||
</div><script src="_static/documentation_options.js?v=baaebd52"></script>
|
</div><script src="_static/documentation_options.js?v=71272d9f"></script>
|
||||||
<script src="_static/doctools.js?v=9bcbadda"></script>
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
||||||
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||||
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
<link rel="prefetch" href="_static/rns_logo_512.png" as="image">
|
<link rel="prefetch" href="_static/rns_logo_512.png" as="image">
|
||||||
|
|
||||||
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 -->
|
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 -->
|
||||||
<title>Communications Hardware - Reticulum Network Stack 1.0.3 documentation</title>
|
<title>Communications Hardware - Reticulum Network Stack 1.0.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
||||||
|
|
@ -180,7 +180,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">Reticulum Network Stack 1.0.3 documentation</div></a>
|
<a href="index.html"><div class="brand">Reticulum Network Stack 1.0.4 documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
|
@ -204,7 +204,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.3 documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.4 documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
|
@ -671,7 +671,7 @@ can be used with Reticulum. This includes virtual software modems such as
|
||||||
|
|
||||||
</aside>
|
</aside>
|
||||||
</div>
|
</div>
|
||||||
</div><script src="_static/documentation_options.js?v=baaebd52"></script>
|
</div><script src="_static/documentation_options.js?v=71272d9f"></script>
|
||||||
<script src="_static/doctools.js?v=9bcbadda"></script>
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
||||||
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||||
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
<link rel="prefetch" href="_static/rns_logo_512.png" as="image">
|
<link rel="prefetch" href="_static/rns_logo_512.png" as="image">
|
||||||
|
|
||||||
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 -->
|
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 -->
|
||||||
<title>Reticulum Network Stack 1.0.3 documentation</title>
|
<title>Reticulum Network Stack 1.0.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
||||||
|
|
@ -180,7 +180,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="#"><div class="brand">Reticulum Network Stack 1.0.3 documentation</div></a>
|
<a href="#"><div class="brand">Reticulum Network Stack 1.0.4 documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
|
@ -204,7 +204,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.3 documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.4 documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
|
@ -520,7 +520,7 @@ to participate in the development of Reticulum itself.</p>
|
||||||
|
|
||||||
</aside>
|
</aside>
|
||||||
</div>
|
</div>
|
||||||
</div><script src="_static/documentation_options.js?v=baaebd52"></script>
|
</div><script src="_static/documentation_options.js?v=71272d9f"></script>
|
||||||
<script src="_static/doctools.js?v=9bcbadda"></script>
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
||||||
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||||
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
<link rel="prefetch" href="_static/rns_logo_512.png" as="image">
|
<link rel="prefetch" href="_static/rns_logo_512.png" as="image">
|
||||||
|
|
||||||
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 -->
|
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 -->
|
||||||
<title>Configuring Interfaces - Reticulum Network Stack 1.0.3 documentation</title>
|
<title>Configuring Interfaces - Reticulum Network Stack 1.0.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
||||||
|
|
@ -180,7 +180,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">Reticulum Network Stack 1.0.3 documentation</div></a>
|
<a href="index.html"><div class="brand">Reticulum Network Stack 1.0.4 documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
|
@ -204,7 +204,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.3 documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.4 documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
|
@ -1483,7 +1483,7 @@ to <code class="docutils literal notranslate"><span class="pre">30</span></code>
|
||||||
|
|
||||||
</aside>
|
</aside>
|
||||||
</div>
|
</div>
|
||||||
</div><script src="_static/documentation_options.js?v=baaebd52"></script>
|
</div><script src="_static/documentation_options.js?v=71272d9f"></script>
|
||||||
<script src="_static/doctools.js?v=9bcbadda"></script>
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
||||||
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||||
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
<link rel="prefetch" href="_static/rns_logo_512.png" as="image">
|
<link rel="prefetch" href="_static/rns_logo_512.png" as="image">
|
||||||
|
|
||||||
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 -->
|
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 -->
|
||||||
<title>Building Networks - Reticulum Network Stack 1.0.3 documentation</title>
|
<title>Building Networks - Reticulum Network Stack 1.0.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
||||||
|
|
@ -180,7 +180,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">Reticulum Network Stack 1.0.3 documentation</div></a>
|
<a href="index.html"><div class="brand">Reticulum Network Stack 1.0.4 documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
|
@ -204,7 +204,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.3 documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.4 documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
|
@ -501,7 +501,7 @@ connected outliers are now an integral part of the network.</p>
|
||||||
|
|
||||||
</aside>
|
</aside>
|
||||||
</div>
|
</div>
|
||||||
</div><script src="_static/documentation_options.js?v=baaebd52"></script>
|
</div><script src="_static/documentation_options.js?v=71272d9f"></script>
|
||||||
<script src="_static/doctools.js?v=9bcbadda"></script>
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
||||||
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||||
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -7,7 +7,7 @@
|
||||||
<link rel="prefetch" href="_static/rns_logo_512.png" as="image">
|
<link rel="prefetch" href="_static/rns_logo_512.png" as="image">
|
||||||
|
|
||||||
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 -->
|
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 -->
|
||||||
<title>API Reference - Reticulum Network Stack 1.0.3 documentation</title>
|
<title>API Reference - Reticulum Network Stack 1.0.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
||||||
|
|
@ -180,7 +180,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">Reticulum Network Stack 1.0.3 documentation</div></a>
|
<a href="index.html"><div class="brand">Reticulum Network Stack 1.0.4 documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
|
@ -204,7 +204,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.3 documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.4 documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
|
@ -2385,7 +2385,7 @@ will announce it.</p>
|
||||||
|
|
||||||
</aside>
|
</aside>
|
||||||
</div>
|
</div>
|
||||||
</div><script src="_static/documentation_options.js?v=baaebd52"></script>
|
</div><script src="_static/documentation_options.js?v=71272d9f"></script>
|
||||||
<script src="_static/doctools.js?v=9bcbadda"></script>
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
||||||
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||||
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 -->
|
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 -->
|
||||||
<meta name="robots" content="noindex" />
|
<meta name="robots" content="noindex" />
|
||||||
<title>Search - Reticulum Network Stack 1.0.3 documentation</title><link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
<title>Search - Reticulum Network Stack 1.0.4 documentation</title><link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=8dab3a3b" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo-extensions.css?v=8dab3a3b" />
|
||||||
|
|
@ -180,7 +180,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">Reticulum Network Stack 1.0.3 documentation</div></a>
|
<a href="index.html"><div class="brand">Reticulum Network Stack 1.0.4 documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
|
@ -204,7 +204,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.3 documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.4 documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="#" role="search">
|
</a><form class="sidebar-search-container" method="get" action="#" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
|
@ -299,7 +299,7 @@
|
||||||
|
|
||||||
</aside>
|
</aside>
|
||||||
</div>
|
</div>
|
||||||
</div><script src="_static/documentation_options.js?v=baaebd52"></script>
|
</div><script src="_static/documentation_options.js?v=71272d9f"></script>
|
||||||
<script src="_static/doctools.js?v=9bcbadda"></script>
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
||||||
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||||
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -7,7 +7,7 @@
|
||||||
<link rel="prefetch" href="_static/rns_logo_512.png" as="image">
|
<link rel="prefetch" href="_static/rns_logo_512.png" as="image">
|
||||||
|
|
||||||
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 -->
|
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 -->
|
||||||
<title>Support Reticulum - Reticulum Network Stack 1.0.3 documentation</title>
|
<title>Support Reticulum - Reticulum Network Stack 1.0.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
||||||
|
|
@ -180,7 +180,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">Reticulum Network Stack 1.0.3 documentation</div></a>
|
<a href="index.html"><div class="brand">Reticulum Network Stack 1.0.4 documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
|
@ -204,7 +204,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.3 documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.4 documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
|
@ -368,7 +368,7 @@ report issues, suggest functionality and contribute code to Reticulum.</p>
|
||||||
|
|
||||||
</aside>
|
</aside>
|
||||||
</div>
|
</div>
|
||||||
</div><script src="_static/documentation_options.js?v=baaebd52"></script>
|
</div><script src="_static/documentation_options.js?v=71272d9f"></script>
|
||||||
<script src="_static/doctools.js?v=9bcbadda"></script>
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
||||||
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||||
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
<link rel="prefetch" href="_static/rns_logo_512.png" as="image">
|
<link rel="prefetch" href="_static/rns_logo_512.png" as="image">
|
||||||
|
|
||||||
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 -->
|
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 -->
|
||||||
<title>Understanding Reticulum - Reticulum Network Stack 1.0.3 documentation</title>
|
<title>Understanding Reticulum - Reticulum Network Stack 1.0.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
||||||
|
|
@ -180,7 +180,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">Reticulum Network Stack 1.0.3 documentation</div></a>
|
<a href="index.html"><div class="brand">Reticulum Network Stack 1.0.4 documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
|
@ -204,7 +204,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.3 documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.4 documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
|
@ -381,7 +381,7 @@ to be transported over multiple hops in a complex network to reach the recipient
|
||||||
Reticulum uses the singular concept of <em>destinations</em>. Any application using Reticulum as its
|
Reticulum uses the singular concept of <em>destinations</em>. Any application using Reticulum as its
|
||||||
networking stack will need to create one or more destinations to receive data, and know the
|
networking stack will need to create one or more destinations to receive data, and know the
|
||||||
destinations it needs to send data to.</p>
|
destinations it needs to send data to.</p>
|
||||||
<p>All destinations in Reticulum are _represented_ as a 16 byte hash. This hash is derived from truncating a full
|
<p>All destinations in Reticulum are <em>represented</em> as a 16 byte hash. This hash is derived from truncating a full
|
||||||
SHA-256 hash of identifying characteristics of the destination. To users, the destination addresses
|
SHA-256 hash of identifying characteristics of the destination. To users, the destination addresses
|
||||||
will be displayed as 16 hexadecimal bytes, like this example: <code class="docutils literal notranslate"><span class="pre"><13425ec15b621c1d928589718000d814></span></code>.</p>
|
will be displayed as 16 hexadecimal bytes, like this example: <code class="docutils literal notranslate"><span class="pre"><13425ec15b621c1d928589718000d814></span></code>.</p>
|
||||||
<p>The truncation size of 16 bytes (128 bits) for destinations has been chosen as a reasonable trade-off
|
<p>The truncation size of 16 bytes (128 bits) for destinations has been chosen as a reasonable trade-off
|
||||||
|
|
@ -402,7 +402,7 @@ packet communication can also provide forward secrecy, with automatic key ratche
|
||||||
ratchets on a per-destination basis. The multi-hop transport, coordination, verification and reliability
|
ratchets on a per-destination basis. The multi-hop transport, coordination, verification and reliability
|
||||||
layers are fully autonomous and also based on elliptic curve cryptography.</p>
|
layers are fully autonomous and also based on elliptic curve cryptography.</p>
|
||||||
<p>Reticulum also offers symmetric key encryption for group-oriented communications, as well as
|
<p>Reticulum also offers symmetric key encryption for group-oriented communications, as well as
|
||||||
unencrypted packets for local broadcast purposes.</p>
|
unencrypted packets (for local broadcast purposes <strong>only</strong>).</p>
|
||||||
<p>Reticulum can connect to a variety of interfaces such as radio modems, data radios and serial ports,
|
<p>Reticulum can connect to a variety of interfaces such as radio modems, data radios and serial ports,
|
||||||
and offers the possibility to easily tunnel Reticulum traffic over IP links such as the Internet or
|
and offers the possibility to easily tunnel Reticulum traffic over IP links such as the Internet or
|
||||||
private IP networks.</p>
|
private IP networks.</p>
|
||||||
|
|
@ -650,17 +650,26 @@ application specific data, it will replace the old announce.</div>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<p>Once an announce has reached a node in the network, any other node in direct contact with that
|
<p>Once an announce has reached a transport node in the network, any other node in direct contact with that
|
||||||
node will be able to reach the destination the announce originated from, simply by sending a packet
|
transport node will be able to reach the destination the announce originated from, simply by sending a packet
|
||||||
addressed to that destination. Any node with knowledge of the announce will be able to direct the
|
addressed to that destination. Any transport node with knowledge of the announce will be able to direct the
|
||||||
packet towards the destination by looking up the next node with the shortest amount of hops to the
|
packet towards the destination by looking up the most efficient next node to the destination.</p>
|
||||||
destination.</p>
|
|
||||||
<p>According to these rules, an announce will propagate throughout the network in a predictable way,
|
<p>According to these rules, an announce will propagate throughout the network in a predictable way,
|
||||||
and make the announced destination reachable in a short amount of time. Fast networks that have the
|
and make the announced destination reachable in a short amount of time. Fast networks that have the
|
||||||
capacity to process many announces can reach full convergence very quickly, even when constantly adding
|
capacity to process many announces can reach full convergence very quickly, even when constantly adding
|
||||||
new destinations. Slower segments of such networks might take a bit longer to gain full knowledge about
|
new destinations. Slower segments of such networks might take a bit longer to gain full knowledge about
|
||||||
the wide and fast networks they are connected to, but can still do so over time, while prioritising full
|
the wide and fast networks they are connected to, but can still do so over time, while prioritising full
|
||||||
and quickly converging end-to-end connectivity for their local, slower segments.</p>
|
and quickly converging end-to-end connectivity for their local, slower segments.</p>
|
||||||
|
<div class="admonition tip">
|
||||||
|
<p class="admonition-title">Tip</p>
|
||||||
|
<p>Even very slow networks, that simply don’t have the capacity to ever reach <em>full</em> convergence
|
||||||
|
will generally still be able to reach <strong>any other destination on any connected segments</strong>, since
|
||||||
|
interconnecting transport nodes will prioritize announces into the slower segments that are
|
||||||
|
actually requested by nodes on these.</p>
|
||||||
|
<p>This means that slow, low-capacity or low-resource segments <strong>don’t</strong> need to have full network
|
||||||
|
knowledge, since paths can always be recursively resolved from other segments that do have
|
||||||
|
knowledge about them.</p>
|
||||||
|
</div>
|
||||||
<p>In general, even extremely complex networks, that utilize the maximum 128 hops will converge to full
|
<p>In general, even extremely complex networks, that utilize the maximum 128 hops will converge to full
|
||||||
end-to-end connectivity in about one minute, given there is enough bandwidth available to process
|
end-to-end connectivity in about one minute, given there is enough bandwidth available to process
|
||||||
the required amount of announces.</p>
|
the required amount of announces.</p>
|
||||||
|
|
@ -668,7 +677,7 @@ the required amount of announces.</p>
|
||||||
<section id="reaching-the-destination">
|
<section id="reaching-the-destination">
|
||||||
<span id="understanding-paths"></span><h3>Reaching the Destination<a class="headerlink" href="#reaching-the-destination" title="Link to this heading">¶</a></h3>
|
<span id="understanding-paths"></span><h3>Reaching the Destination<a class="headerlink" href="#reaching-the-destination" title="Link to this heading">¶</a></h3>
|
||||||
<p>In networks with changing topology and trustless connectivity, nodes need a way to establish
|
<p>In networks with changing topology and trustless connectivity, nodes need a way to establish
|
||||||
<em>verified connectivity</em> with each other. Since the network is assumed to be trustless, Reticulum
|
<em>verified connectivity</em> with each other. Since the underlying network mediums are assumed to be trustless, Reticulum
|
||||||
must provide a way to guarantee that the peer you are communicating with is actually who you
|
must provide a way to guarantee that the peer you are communicating with is actually who you
|
||||||
expect. Reticulum offers two ways to do this.</p>
|
expect. Reticulum offers two ways to do this.</p>
|
||||||
<p>For exchanges of small amounts of information, Reticulum offers the <em>Packet</em> API, which works exactly like you would expect - on a per packet level. The following process is employed when sending a packet:</p>
|
<p>For exchanges of small amounts of information, Reticulum offers the <em>Packet</em> API, which works exactly like you would expect - on a per packet level. The following process is employed when sending a packet:</p>
|
||||||
|
|
@ -681,7 +690,7 @@ an ECDH key exchange with the destination’s public key (or ratchet key, if ava
|
||||||
</li>
|
</li>
|
||||||
<li><div class="line-block">
|
<li><div class="line-block">
|
||||||
<div class="line">It is important to note that this key exchange does not require any network traffic. The sender already
|
<div class="line">It is important to note that this key exchange does not require any network traffic. The sender already
|
||||||
knows the public key of the destination from an earlier received <em>announce</em>, and can thus perform the ECDH
|
knows the public key of the destination from an earlier received announce, and can thus perform the ECDH
|
||||||
key exchange locally, before sending the packet.</div>
|
key exchange locally, before sending the packet.</div>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
|
@ -719,16 +728,16 @@ strictly necessary to use one of the others.</div>
|
||||||
<p>For exchanges of larger amounts of data, or when longer sessions of bidirectional communication is desired, Reticulum offers the <em>Link</em> API. To establish a <em>link</em>, the following process is employed:</p>
|
<p>For exchanges of larger amounts of data, or when longer sessions of bidirectional communication is desired, Reticulum offers the <em>Link</em> API. To establish a <em>link</em>, the following process is employed:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li><div class="line-block">
|
<li><div class="line-block">
|
||||||
<div class="line">First, the node that wishes to establish a link will send out a special packet, that
|
<div class="line">First, the node that wishes to establish a link will send out a <em>link request</em> packet, that
|
||||||
traverses the network and locates the desired destination. Along the way, the Transport Nodes that
|
traverses the network and locates the desired destination. Along the way, the Transport Nodes that
|
||||||
forward the packet will take note of this <em>link request</em>.</div>
|
forward the packet will take note of this <em>link request</em>, and mark it as pending.</div>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li><div class="line-block">
|
<li><div class="line-block">
|
||||||
<div class="line">Second, if the destination accepts the <em>link request</em> , it will send back a packet that proves the
|
<div class="line">Second, if the destination accepts the <em>link request</em> , it will send back a packet that proves the
|
||||||
authenticity of its identity (and the receipt of the link request) to the initiating node. All
|
authenticity of its identity (and the receipt of the link request) to the initiating node. All
|
||||||
nodes that initially forwarded the packet will also be able to verify this proof, and thus
|
nodes that initially forwarded the packet will also be able to verify this proof, and thus
|
||||||
accept the validity of the <em>link</em> throughout the network.</div>
|
accept the validity of the <em>link</em> throughout the network. The link is now marked as <em>established</em>.</div>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<li><div class="line-block">
|
<li><div class="line-block">
|
||||||
|
|
@ -841,8 +850,11 @@ that is used to encrypt the channel. Information can now be exchanged reliably a
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
<div class="admonition note">
|
||||||
|
<p class="admonition-title">Note</p>
|
||||||
<p>It’s important to note that this methodology ensures that the source of the request does not need to
|
<p>It’s important to note that this methodology ensures that the source of the request does not need to
|
||||||
reveal any identifying information about itself. The link initiator remains completely anonymous.</p>
|
reveal any identifying information about itself. <strong>The link initiator remains completely anonymous</strong>.</p>
|
||||||
|
</div>
|
||||||
<p>When using <em>links</em>, Reticulum will automatically verify all data sent over the link, and can also
|
<p>When using <em>links</em>, Reticulum will automatically verify all data sent over the link, and can also
|
||||||
automate retransmissions if <em>Resources</em> are used.</p>
|
automate retransmissions if <em>Resources</em> are used.</p>
|
||||||
</section>
|
</section>
|
||||||
|
|
@ -903,27 +915,30 @@ into the future. The current Reference System Setup is as follows:</p>
|
||||||
<li><dl class="simple">
|
<li><dl class="simple">
|
||||||
<dt><strong>Interface Device</strong></dt><dd><p>A data radio consisting of a LoRa radio module, and a microcontroller with open source
|
<dt><strong>Interface Device</strong></dt><dd><p>A data radio consisting of a LoRa radio module, and a microcontroller with open source
|
||||||
firmware, that can connect to host devices via USB. It operates in either the 430, 868 or 900
|
firmware, that can connect to host devices via USB. It operates in either the 430, 868 or 900
|
||||||
MHz frequency bands. More details can be found on the <a class="reference external" href="https://unsigned.io/rnode">RNode Page</a>.</p>
|
MHz frequency bands. More details can be found on the <a class="reference external" href="https://github.com/markqvist/rnode_firmware">RNode Page</a>.</p>
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</li>
|
</li>
|
||||||
<li><dl class="simple">
|
<li><dl class="simple">
|
||||||
<dt><strong>Host Device</strong></dt><dd><p>Any computer device running Linux and Python. A Raspberry Pi with a Debian based OS is
|
<dt><strong>Host Device</strong></dt><dd><p>Any computer device running Linux and Python. A Raspberry Pi with a Debian based OS is
|
||||||
recommended.</p>
|
a good place to start, but anything can be used.</p>
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</li>
|
</li>
|
||||||
<li><dl class="simple">
|
<li><dl class="simple">
|
||||||
<dt><strong>Software Stack</strong></dt><dd><p>The most recently released Python Implementation of Reticulum, running on a Debian based
|
<dt><strong>Software Stack</strong></dt><dd><p>The most recently released Python Implementation of Reticulum, running on a Linux-based
|
||||||
operating system.</p>
|
operating system.</p>
|
||||||
</dd>
|
</dd>
|
||||||
</dl>
|
</dl>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
<div class="admonition note">
|
||||||
|
<p class="admonition-title">Note</p>
|
||||||
<p>To avoid confusion, it is very important to note, that the reference interface device <strong>does not</strong>
|
<p>To avoid confusion, it is very important to note, that the reference interface device <strong>does not</strong>
|
||||||
use the LoRaWAN standard, but uses a custom MAC layer on top of the plain LoRa modulation! As such, you will
|
use the LoRaWAN standard, but uses a custom MAC layer on top of the plain LoRa modulation! As such, you will
|
||||||
need a plain LoRa radio module connected to an controller with the correct firmware. Full details on how to
|
need a plain LoRa radio module connected to a controller with the correct firmware. Full details on how to
|
||||||
get or make such a device is available on the <a class="reference external" href="https://unsigned.io/rnode">RNode Page</a>.</p>
|
get or make such a device is available on the <a class="reference external" href="https://github.com/markqvist/rnode_firmware">RNode Page</a>.</p>
|
||||||
|
</div>
|
||||||
<p>With the current reference setup, it should be possible to get on a Reticulum network for around 100$
|
<p>With the current reference setup, it should be possible to get on a Reticulum network for around 100$
|
||||||
even if you have none of the hardware already, and need to purchase everything.</p>
|
even if you have none of the hardware already, and need to purchase everything.</p>
|
||||||
<p>This reference setup is of course just a recommendation for getting started easily, and you should
|
<p>This reference setup is of course just a recommendation for getting started easily, and you should
|
||||||
|
|
@ -932,20 +947,20 @@ tailor it to your own specific needs, or whatever hardware you have available.</
|
||||||
<section id="protocol-specifics">
|
<section id="protocol-specifics">
|
||||||
<span id="understanding-protocolspecifics"></span><h2>Protocol Specifics<a class="headerlink" href="#protocol-specifics" title="Link to this heading">¶</a></h2>
|
<span id="understanding-protocolspecifics"></span><h2>Protocol Specifics<a class="headerlink" href="#protocol-specifics" title="Link to this heading">¶</a></h2>
|
||||||
<p>This chapter will detail protocol specific information that is essential to the implementation of
|
<p>This chapter will detail protocol specific information that is essential to the implementation of
|
||||||
Reticulum, but non critical in understanding how the protocol works on a general level. It should be
|
Reticulum, but non-critical in understanding how the protocol works on a general level. It should be
|
||||||
treated more as a reference than as essential reading.</p>
|
treated more as a reference than as essential reading.</p>
|
||||||
<section id="packet-prioritisation">
|
<section id="packet-prioritisation">
|
||||||
<h3>Packet Prioritisation<a class="headerlink" href="#packet-prioritisation" title="Link to this heading">¶</a></h3>
|
<h3>Packet Prioritisation<a class="headerlink" href="#packet-prioritisation" title="Link to this heading">¶</a></h3>
|
||||||
<p>Currently, Reticulum is completely priority-agnostic regarding general traffic. All traffic is handled
|
<p>Currently, Reticulum is completely priority-agnostic regarding <em>general</em> traffic. All traffic is handled
|
||||||
on a first-come, first-serve basis. Announce re-transmission are handled according to the re-transmission
|
on a first-come, first-serve basis. Announce re-transmission and other maintenance traffic is handled
|
||||||
times and priorities described earlier in this chapter.</p>
|
according to the re-transmission times and priorities described earlier in this chapter.</p>
|
||||||
</section>
|
</section>
|
||||||
<section id="interface-access-codes">
|
<section id="interface-access-codes">
|
||||||
<h3>Interface Access Codes<a class="headerlink" href="#interface-access-codes" title="Link to this heading">¶</a></h3>
|
<h3>Interface Access Codes<a class="headerlink" href="#interface-access-codes" title="Link to this heading">¶</a></h3>
|
||||||
<p>Reticulum can create named virtual networks, and networks that are only accessible by knowing a preshared
|
<p>Reticulum can create named virtual networks, and networks that are only accessible by knowing a preshared
|
||||||
passphrase. The configuration of this is detailed in the <a class="reference internal" href="interfaces.html#interfaces-options"><span class="std std-ref">Common Interface Options</span></a>
|
passphrase. The configuration of this is detailed in the <a class="reference internal" href="interfaces.html#interfaces-options"><span class="std std-ref">Common Interface Options</span></a>
|
||||||
section. To implement these feature, Reticulum uses the concept of Interface Access Codes, that are calculated
|
section. To implement this feature, Reticulum uses the concept of Interface Access Codes, that are calculated
|
||||||
and verified per packet.</p>
|
and verified per-packet.</p>
|
||||||
<p>An interface with a named virtual network or passphrase authentication enabled will derive a shared Ed25519
|
<p>An interface with a named virtual network or passphrase authentication enabled will derive a shared Ed25519
|
||||||
signing identity, and for every outbound packet generate a signature of the entire packet. This signature is
|
signing identity, and for every outbound packet generate a signature of the entire packet. This signature is
|
||||||
then inserted into the packet as an Interface Access Code before transmission. Depending on the speed and
|
then inserted into the packet as an Interface Access Code before transmission. Depending on the speed and
|
||||||
|
|
@ -1141,6 +1156,10 @@ instead use the internal pure-python primitives. A trivial consequence of this i
|
||||||
with the OpenSSL backend being <em>much</em> faster. The most important consequence however, is the
|
with the OpenSSL backend being <em>much</em> faster. The most important consequence however, is the
|
||||||
potential loss of security by using primitives that has not seen the same amount of scrutiny,
|
potential loss of security by using primitives that has not seen the same amount of scrutiny,
|
||||||
testing and review as those from OpenSSL.</p>
|
testing and review as those from OpenSSL.</p>
|
||||||
|
<p>Using the normal RNS installation procedures, it is not possible to install Reticulum on a
|
||||||
|
system without the required OpenSSL primitives being available, and if they are not, they will
|
||||||
|
be resolved and installed as a dependency. It is only possible to use the pure-python primitives
|
||||||
|
by manually specifying this, for example by using the <code class="docutils literal notranslate"><span class="pre">rnspure</span></code> package.</p>
|
||||||
<div class="admonition warning">
|
<div class="admonition warning">
|
||||||
<p class="admonition-title">Warning</p>
|
<p class="admonition-title">Warning</p>
|
||||||
<p>If you want to use the internal pure-python primitives, it is <strong>highly advisable</strong> that you
|
<p>If you want to use the internal pure-python primitives, it is <strong>highly advisable</strong> that you
|
||||||
|
|
@ -1248,7 +1267,7 @@ those risks are acceptable to you.</p>
|
||||||
|
|
||||||
</aside>
|
</aside>
|
||||||
</div>
|
</div>
|
||||||
</div><script src="_static/documentation_options.js?v=baaebd52"></script>
|
</div><script src="_static/documentation_options.js?v=71272d9f"></script>
|
||||||
<script src="_static/doctools.js?v=9bcbadda"></script>
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
||||||
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||||
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
<link rel="prefetch" href="_static/rns_logo_512.png" as="image">
|
<link rel="prefetch" href="_static/rns_logo_512.png" as="image">
|
||||||
|
|
||||||
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 -->
|
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 -->
|
||||||
<title>Using Reticulum on Your System - Reticulum Network Stack 1.0.3 documentation</title>
|
<title>Using Reticulum on Your System - Reticulum Network Stack 1.0.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
||||||
|
|
@ -180,7 +180,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">Reticulum Network Stack 1.0.3 documentation</div></a>
|
<a href="index.html"><div class="brand">Reticulum Network Stack 1.0.4 documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
|
@ -204,7 +204,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.3 documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.4 documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
|
@ -1191,7 +1191,7 @@ systemctl --user enable rnsd.service
|
||||||
|
|
||||||
</aside>
|
</aside>
|
||||||
</div>
|
</div>
|
||||||
</div><script src="_static/documentation_options.js?v=baaebd52"></script>
|
</div><script src="_static/documentation_options.js?v=71272d9f"></script>
|
||||||
<script src="_static/doctools.js?v=9bcbadda"></script>
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
||||||
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||||
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,7 @@
|
||||||
<link rel="prefetch" href="_static/rns_logo_512.png" as="image">
|
<link rel="prefetch" href="_static/rns_logo_512.png" as="image">
|
||||||
|
|
||||||
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 -->
|
<!-- Generated with Sphinx 8.2.3 and Furo 2025.09.25.dev1 -->
|
||||||
<title>What is Reticulum? - Reticulum Network Stack 1.0.3 documentation</title>
|
<title>What is Reticulum? - Reticulum Network Stack 1.0.4 documentation</title>
|
||||||
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
<link rel="stylesheet" type="text/css" href="_static/pygments.css?v=d111a655" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
<link rel="stylesheet" type="text/css" href="_static/styles/furo.css?v=580074bf" />
|
||||||
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
<link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
|
||||||
|
|
@ -180,7 +180,7 @@
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-center">
|
<div class="header-center">
|
||||||
<a href="index.html"><div class="brand">Reticulum Network Stack 1.0.3 documentation</div></a>
|
<a href="index.html"><div class="brand">Reticulum Network Stack 1.0.4 documentation</div></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="header-right">
|
<div class="header-right">
|
||||||
<div class="theme-toggle-container theme-toggle-header">
|
<div class="theme-toggle-container theme-toggle-header">
|
||||||
|
|
@ -204,7 +204,7 @@
|
||||||
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
<img class="sidebar-logo" src="_static/rns_logo_512.png" alt="Logo"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.3 documentation</span>
|
<span class="sidebar-brand-text">Reticulum Network Stack 1.0.4 documentation</span>
|
||||||
|
|
||||||
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
</a><form class="sidebar-search-container" method="get" action="search.html" role="search">
|
||||||
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
<input class="sidebar-search" placeholder="Search" name="q" aria-label="Search">
|
||||||
|
|
@ -494,7 +494,7 @@ want to help out with this, or can help sponsor an audit, please do get in touch
|
||||||
|
|
||||||
</aside>
|
</aside>
|
||||||
</div>
|
</div>
|
||||||
</div><script src="_static/documentation_options.js?v=baaebd52"></script>
|
</div><script src="_static/documentation_options.js?v=71272d9f"></script>
|
||||||
<script src="_static/doctools.js?v=9bcbadda"></script>
|
<script src="_static/doctools.js?v=9bcbadda"></script>
|
||||||
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
<script src="_static/sphinx_highlight.js?v=dc90522c"></script>
|
||||||
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
<script src="_static/scripts/furo.js?v=46bd48cc"></script>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue