Updated documentation

This commit is contained in:
Mark Qvist 2023-10-31 11:09:54 +01:00
parent 5ba125c801
commit 3d645ae2f4
12 changed files with 37 additions and 23 deletions

View File

@ -80,7 +80,7 @@ following resources.
## Where can Reticulum be used? ## Where can Reticulum be used?
Over practically any medium that can support at least a half-duplex channel Over practically any medium that can support at least a half-duplex channel
with 500 bits per second throughput, and an MTU of 500 bytes. Data radios, with greater throughput than 5 bits per second, and an MTU of 500 bytes. Data radios,
modems, LoRa radios, serial lines, AX.25 TNCs, amateur radio digital modes, modems, LoRa radios, serial lines, AX.25 TNCs, amateur radio digital modes,
WiFi and Ethernet devices, free-space optical links, and similar systems are WiFi and Ethernet devices, free-space optical links, and similar systems are
all examples of the types of physical devices Reticulum can use. all examples of the types of physical devices Reticulum can use.
@ -191,7 +191,7 @@ functionality and performance on low-bandwidth mediums. The goal is to
provide a dynamic performance envelope from 250 bits per second, to 1 gigabit provide a dynamic performance envelope from 250 bits per second, to 1 gigabit
per second on normal hardware. per second on normal hardware.
Currently, the usable performance envelope is approximately 500 bits per second Currently, the usable performance envelope is approximately 150 bits per second
to 20 megabits per second, with physical mediums faster than that not being to 20 megabits per second, with physical mediums faster than that not being
saturated. Performance beyond the current level is intended for future saturated. Performance beyond the current level is intended for future
upgrades, but not highly prioritised at this point in time. upgrades, but not highly prioritised at this point in time.

View File

@ -79,7 +79,7 @@ class Reticulum:
MTU = 500 MTU = 500
""" """
The MTU that Reticulum adheres to, and will expect other peers to The MTU that Reticulum adheres to, and will expect other peers to
adhere to. By default, the MTU is 507 bytes. In custom RNS network adhere to. By default, the MTU is 500 bytes. In custom RNS network
implementations, it is possible to change this value, but doing so will implementations, it is possible to change this value, but doing so will
completely break compatibility with all other RNS networks. An identical completely break compatibility with all other RNS networks. An identical
MTU is a prerequisite for peers to communicate in the same network. MTU is a prerequisite for peers to communicate in the same network.
@ -106,17 +106,19 @@ class Reticulum:
it will eventually be dropped. it will eventually be dropped.
This value will be applied by default to all created interfaces, This value will be applied by default to all created interfaces,
but it can be configured individually on a per-interface basis. but it can be configured individually on a per-interface basis. In
general, the global default setting should not be changed, and any
alterations should be made on a per-interface basis instead.
""" """
MINIMUM_BITRATE = 500 MINIMUM_BITRATE = 5
"""
Minimum bitrate required across a medium for Reticulum to be able
to successfully establish links. Currently 5 bits per second.
"""
# TODO: To reach the 300bps level without unreasonably impacting # TODO: Let Reticulum somehow continously build a map of per-hop
# performance on faster links, we need a mechanism for setting # latencies and use this map for global timeout calculation.
# this value more intelligently. One option could be inferring it
# from interface speed, but a better general approach would most
# probably be to let Reticulum somehow continously build a map of
# per-hop latencies and use this map for the timeout calculation.
DEFAULT_PER_HOP_TIMEOUT = 4 DEFAULT_PER_HOP_TIMEOUT = 4
# Length of truncated hashes in bits. # Length of truncated hashes in bits.

View File

@ -75,7 +75,7 @@ guide the design of Reticulum:
it can be easily modified and replicated by anyone interested in doing so. it can be easily modified and replicated by anyone interested in doing so.
* **Very low bandwidth requirements** * **Very low bandwidth requirements**
Reticulum should be able to function reliably over links with a transmission capacity as low Reticulum should be able to function reliably over links with a transmission capacity as low
as *500 bits per second*. as *5 bits per second*.
* **Encryption by default** * **Encryption by default**
Reticulum must use strong encryption by default for all communication. Reticulum must use strong encryption by default for all communication.
* **Initiator Anonymity** * **Initiator Anonymity**
@ -595,7 +595,7 @@ or less any medium that allows you to send and receive data, which satisfies som
minimum requirements. minimum requirements.
The communication channel must support at least half-duplex operation, and provide an average The communication channel must support at least half-duplex operation, and provide an average
throughput of around 500 bits per second, and supports a physical layer MTU of 500 bytes. The throughput of 5 bits per second or greater, and supports a physical layer MTU of 500 bytes. The
Reticulum stack should be able to run on more or less any hardware that can provide a Python 3.x Reticulum stack should be able to run on more or less any hardware that can provide a Python 3.x
runtime environment. runtime environment.

View File

@ -91,7 +91,7 @@ What does Reticulum Offer?
Where can Reticulum be Used? Where can Reticulum be Used?
============================ ============================
Over practically any medium that can support at least a half-duplex channel Over practically any medium that can support at least a half-duplex channel
with 500 bits per second throughput, and an MTU of 500 bytes. Data radios, with greater throughput than 5 bits per second, and an MTU of 500 bytes. Data radios,
modems, LoRa radios, serial lines, AX.25 TNCs, amateur radio digital modes, modems, LoRa radios, serial lines, AX.25 TNCs, amateur radio digital modes,
ad-hoc WiFi, free-space optical links and similar systems are all examples ad-hoc WiFi, free-space optical links and similar systems are all examples
of the types of interfaces Reticulum was designed for. of the types of interfaces Reticulum was designed for.

View File

@ -510,6 +510,8 @@
</li> </li>
</ul></td> </ul></td>
<td style="width: 33%; vertical-align: top;"><ul> <td style="width: 33%; vertical-align: top;"><ul>
<li><a href="reference.html#RNS.Reticulum.MINIMUM_BITRATE">MINIMUM_BITRATE (RNS.Reticulum attribute)</a>
</li>
<li><a href="reference.html#RNS.MessageBase.MSGTYPE">MSGTYPE (RNS.MessageBase attribute)</a> <li><a href="reference.html#RNS.MessageBase.MSGTYPE">MSGTYPE (RNS.MessageBase attribute)</a>
</li> </li>
<li><a href="reference.html#RNS.Reticulum.MTU">MTU (RNS.Reticulum attribute)</a> <li><a href="reference.html#RNS.Reticulum.MTU">MTU (RNS.Reticulum attribute)</a>

Binary file not shown.

View File

@ -253,7 +253,7 @@ other programs to use on demand.</p>
<dt class="sig sig-object py" id="RNS.Reticulum.MTU"> <dt class="sig sig-object py" id="RNS.Reticulum.MTU">
<span class="sig-name descname"><span class="pre">MTU</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">500</span></em><a class="headerlink" href="#RNS.Reticulum.MTU" title="Permalink to this definition">#</a></dt> <span class="sig-name descname"><span class="pre">MTU</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">500</span></em><a class="headerlink" href="#RNS.Reticulum.MTU" title="Permalink to this definition">#</a></dt>
<dd><p>The MTU that Reticulum adheres to, and will expect other peers to <dd><p>The MTU that Reticulum adheres to, and will expect other peers to
adhere to. By default, the MTU is 507 bytes. In custom RNS network adhere to. By default, the MTU is 500 bytes. In custom RNS network
implementations, it is possible to change this value, but doing so will implementations, it is possible to change this value, but doing so will
completely break compatibility with all other RNS networks. An identical completely break compatibility with all other RNS networks. An identical
MTU is a prerequisite for peers to communicate in the same network.</p> MTU is a prerequisite for peers to communicate in the same network.</p>
@ -275,7 +275,16 @@ links dont overwhelm the capacity of smaller networks on slower
mediums. If an announce remains queued for an extended amount of time, mediums. If an announce remains queued for an extended amount of time,
it will eventually be dropped.</p> it will eventually be dropped.</p>
<p>This value will be applied by default to all created interfaces, <p>This value will be applied by default to all created interfaces,
but it can be configured individually on a per-interface basis.</p> but it can be configured individually on a per-interface basis. In
general, the global default setting should not be changed, and any
alterations should be made on a per-interface basis instead.</p>
</dd></dl>
<dl class="py attribute">
<dt class="sig sig-object py" id="RNS.Reticulum.MINIMUM_BITRATE">
<span class="sig-name descname"><span class="pre">MINIMUM_BITRATE</span></span><em class="property"><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="pre">5</span></em><a class="headerlink" href="#RNS.Reticulum.MINIMUM_BITRATE" title="Permalink to this definition">#</a></dt>
<dd><p>Minimum bitrate required across a medium for Reticulum to be able
to successfully establish links. Currently 5 bits per second.</p>
</dd></dl> </dd></dl>
<dl class="py method"> <dl class="py method">
@ -1901,6 +1910,7 @@ will announce it.</p>
<li><a class="reference internal" href="#RNS.Reticulum"><code class="docutils literal notranslate"><span class="pre">Reticulum</span></code></a><ul> <li><a class="reference internal" href="#RNS.Reticulum"><code class="docutils literal notranslate"><span class="pre">Reticulum</span></code></a><ul>
<li><a class="reference internal" href="#RNS.Reticulum.MTU"><code class="docutils literal notranslate"><span class="pre">MTU</span></code></a></li> <li><a class="reference internal" href="#RNS.Reticulum.MTU"><code class="docutils literal notranslate"><span class="pre">MTU</span></code></a></li>
<li><a class="reference internal" href="#RNS.Reticulum.ANNOUNCE_CAP"><code class="docutils literal notranslate"><span class="pre">ANNOUNCE_CAP</span></code></a></li> <li><a class="reference internal" href="#RNS.Reticulum.ANNOUNCE_CAP"><code class="docutils literal notranslate"><span class="pre">ANNOUNCE_CAP</span></code></a></li>
<li><a class="reference internal" href="#RNS.Reticulum.MINIMUM_BITRATE"><code class="docutils literal notranslate"><span class="pre">MINIMUM_BITRATE</span></code></a></li>
<li><a class="reference internal" href="#RNS.Reticulum.get_instance"><code class="docutils literal notranslate"><span class="pre">get_instance()</span></code></a></li> <li><a class="reference internal" href="#RNS.Reticulum.get_instance"><code class="docutils literal notranslate"><span class="pre">get_instance()</span></code></a></li>
<li><a class="reference internal" href="#RNS.Reticulum.should_use_implicit_proof"><code class="docutils literal notranslate"><span class="pre">should_use_implicit_proof()</span></code></a></li> <li><a class="reference internal" href="#RNS.Reticulum.should_use_implicit_proof"><code class="docutils literal notranslate"><span class="pre">should_use_implicit_proof()</span></code></a></li>
<li><a class="reference internal" href="#RNS.Reticulum.transport_enabled"><code class="docutils literal notranslate"><span class="pre">transport_enabled()</span></code></a></li> <li><a class="reference internal" href="#RNS.Reticulum.transport_enabled"><code class="docutils literal notranslate"><span class="pre">transport_enabled()</span></code></a></li>

File diff suppressed because one or more lines are too long

View File

@ -286,7 +286,7 @@ it can be easily modified and replicated by anyone interested in doing so.</p>
</li> </li>
<li><dl class="simple"> <li><dl class="simple">
<dt><strong>Very low bandwidth requirements</strong></dt><dd><p>Reticulum should be able to function reliably over links with a transmission capacity as low <dt><strong>Very low bandwidth requirements</strong></dt><dd><p>Reticulum should be able to function reliably over links with a transmission capacity as low
as <em>500 bits per second</em>.</p> as <em>5 bits per second</em>.</p>
</dd> </dd>
</dl> </dl>
</li> </li>
@ -831,7 +831,7 @@ note that Reticulum is designed to be usable on more or less any computing devic
or less any medium that allows you to send and receive data, which satisfies some very low or less any medium that allows you to send and receive data, which satisfies some very low
minimum requirements.</p> minimum requirements.</p>
<p>The communication channel must support at least half-duplex operation, and provide an average <p>The communication channel must support at least half-duplex operation, and provide an average
throughput of around 500 bits per second, and supports a physical layer MTU of 500 bytes. The throughput of 5 bits per second or greater, and supports a physical layer MTU of 500 bytes. The
Reticulum stack should be able to run on more or less any hardware that can provide a Python 3.x Reticulum stack should be able to run on more or less any hardware that can provide a Python 3.x
runtime environment.</p> runtime environment.</p>
<p>That being said, this reference setup has been outlined to provide a common platform for anyone <p>That being said, this reference setup has been outlined to provide a common platform for anyone

View File

@ -293,7 +293,7 @@ considered complete and stable at the moment, but could change if absolutely war
<section id="where-can-reticulum-be-used"> <section id="where-can-reticulum-be-used">
<h2>Where can Reticulum be Used?<a class="headerlink" href="#where-can-reticulum-be-used" title="Permalink to this heading">#</a></h2> <h2>Where can Reticulum be Used?<a class="headerlink" href="#where-can-reticulum-be-used" title="Permalink to this heading">#</a></h2>
<p>Over practically any medium that can support at least a half-duplex channel <p>Over practically any medium that can support at least a half-duplex channel
with 500 bits per second throughput, and an MTU of 500 bytes. Data radios, with greater throughput than 5 bits per second, and an MTU of 500 bytes. Data radios,
modems, LoRa radios, serial lines, AX.25 TNCs, amateur radio digital modes, modems, LoRa radios, serial lines, AX.25 TNCs, amateur radio digital modes,
ad-hoc WiFi, free-space optical links and similar systems are all examples ad-hoc WiFi, free-space optical links and similar systems are all examples
of the types of interfaces Reticulum was designed for.</p> of the types of interfaces Reticulum was designed for.</p>

View File

@ -75,7 +75,7 @@ guide the design of Reticulum:
it can be easily modified and replicated by anyone interested in doing so. it can be easily modified and replicated by anyone interested in doing so.
* **Very low bandwidth requirements** * **Very low bandwidth requirements**
Reticulum should be able to function reliably over links with a transmission capacity as low Reticulum should be able to function reliably over links with a transmission capacity as low
as *500 bits per second*. as *5 bits per second*.
* **Encryption by default** * **Encryption by default**
Reticulum must use strong encryption by default for all communication. Reticulum must use strong encryption by default for all communication.
* **Initiator Anonymity** * **Initiator Anonymity**
@ -595,7 +595,7 @@ or less any medium that allows you to send and receive data, which satisfies som
minimum requirements. minimum requirements.
The communication channel must support at least half-duplex operation, and provide an average The communication channel must support at least half-duplex operation, and provide an average
throughput of around 500 bits per second, and supports a physical layer MTU of 500 bytes. The throughput of 5 bits per second or greater, and supports a physical layer MTU of 500 bytes. The
Reticulum stack should be able to run on more or less any hardware that can provide a Python 3.x Reticulum stack should be able to run on more or less any hardware that can provide a Python 3.x
runtime environment. runtime environment.

View File

@ -91,7 +91,7 @@ What does Reticulum Offer?
Where can Reticulum be Used? Where can Reticulum be Used?
============================ ============================
Over practically any medium that can support at least a half-duplex channel Over practically any medium that can support at least a half-duplex channel
with 500 bits per second throughput, and an MTU of 500 bytes. Data radios, with greater throughput than 5 bits per second, and an MTU of 500 bytes. Data radios,
modems, LoRa radios, serial lines, AX.25 TNCs, amateur radio digital modes, modems, LoRa radios, serial lines, AX.25 TNCs, amateur radio digital modes,
ad-hoc WiFi, free-space optical links and similar systems are all examples ad-hoc WiFi, free-space optical links and similar systems are all examples
of the types of interfaces Reticulum was designed for. of the types of interfaces Reticulum was designed for.