mirror of
https://github.com/markqvist/Reticulum.git
synced 2024-11-26 15:30:18 +00:00
Updated documentation
This commit is contained in:
parent
5ba125c801
commit
3d645ae2f4
@ -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.
|
||||||
|
@ -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.
|
||||||
|
@ -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.
|
||||||
|
|
||||||
|
@ -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.
|
||||||
|
@ -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.
@ -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 don’t 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
@ -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
|
||||||
|
@ -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>
|
||||||
|
@ -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.
|
||||||
|
|
||||||
|
@ -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.
|
||||||
|
Loading…
Reference in New Issue
Block a user