mirror of
https://github.com/markqvist/Reticulum.git
synced 2024-11-30 01:00:18 +00:00
Compare commits
6 Commits
91e064cdf1
...
5e27a81412
Author | SHA1 | Date | |
---|---|---|---|
|
5e27a81412 | ||
|
0dcb009579 | ||
|
943f76804b | ||
|
8bbe6ae3ae | ||
|
f0d85dd078 | ||
|
f85dda1829 |
27
Changelog.md
27
Changelog.md
@ -1,3 +1,30 @@
|
|||||||
|
### 2023-10-01: RNS β 0.6.1
|
||||||
|
|
||||||
|
This release brings a number of bugfixes, along with useful new mechanisms for ensuring network stability under high, non-constructive and unusual announce load situation.
|
||||||
|
|
||||||
|
**Changes**
|
||||||
|
- Added announce ingress rate control for new and unknown destinations
|
||||||
|
- Added per-interface announce frequency monitoring to the transport engine
|
||||||
|
- Added per-interface announce burst hold queues
|
||||||
|
- Added announce frequency statistics to `rnstatus`
|
||||||
|
- Added option to sort `rnstatus` output according to various metrics
|
||||||
|
- Added timeout options to `rnprobe`
|
||||||
|
- Added ability to drop all paths via a specific transport instance to `rnpath`
|
||||||
|
- Added new options and features to documentation and manual
|
||||||
|
|
||||||
|
**Bugfixes**
|
||||||
|
- Fixed announce queue not clearing all announces with exceeded retry limit at the same time
|
||||||
|
- Fixed a bug that caused local packet RSSI and SNR cache to get stuck
|
||||||
|
- Fixed output formatting in `rncp`
|
||||||
|
- Fixed `rnid` not allowing single-aspect destination names
|
||||||
|
- Fixed a number of typos in the documentation
|
||||||
|
|
||||||
|
**Release Hashes**
|
||||||
|
```
|
||||||
|
461e5cafa7560dcd3ec047141d10f0f48f151c36e1af1d65ec6c65f732cea46a rns-0.6.1-py3-none-any.whl
|
||||||
|
be6a4a6069f2d050e21582f2cf9d3bb59ed4040a0f07761a540bd752d90ea591 rnspure-0.6.1-py3-none-any.whl
|
||||||
|
```
|
||||||
|
|
||||||
### 2023-09-21: RNS β 0.6.0
|
### 2023-09-21: RNS β 0.6.0
|
||||||
|
|
||||||
This release brings a few performance improvements, additions to the included utilities, and fixes a number of bugs.
|
This release brings a few performance improvements, additions to the included utilities, and fixes a number of bugs.
|
||||||
|
@ -32,7 +32,7 @@ def program_setup(configpath):
|
|||||||
# Destinations are endpoints in Reticulum, that can be addressed
|
# Destinations are endpoints in Reticulum, that can be addressed
|
||||||
# and communicated with. Destinations can also announce their
|
# and communicated with. Destinations can also announce their
|
||||||
# existence, which will let the network know they are reachable
|
# existence, which will let the network know they are reachable
|
||||||
# and autoomatically create paths to them, from anywhere else
|
# and automatically create paths to them, from anywhere else
|
||||||
# in the network.
|
# in the network.
|
||||||
destination_1 = RNS.Destination(
|
destination_1 = RNS.Destination(
|
||||||
identity,
|
identity,
|
||||||
@ -53,7 +53,7 @@ def program_setup(configpath):
|
|||||||
)
|
)
|
||||||
|
|
||||||
# We configure the destinations to automatically prove all
|
# We configure the destinations to automatically prove all
|
||||||
# packets adressed to it. By doing this, RNS will automatically
|
# packets addressed to it. By doing this, RNS will automatically
|
||||||
# generate a proof for each incoming packet and transmit it
|
# generate a proof for each incoming packet and transmit it
|
||||||
# back to the sender of that packet. This will let anyone that
|
# back to the sender of that packet. This will let anyone that
|
||||||
# tries to communicate with the destination know whether their
|
# tries to communicate with the destination know whether their
|
||||||
|
@ -46,7 +46,7 @@ def server(configpath):
|
|||||||
)
|
)
|
||||||
|
|
||||||
# We configure the destination to automatically prove all
|
# We configure the destination to automatically prove all
|
||||||
# packets adressed to it. By doing this, RNS will automatically
|
# packets addressed to it. By doing this, RNS will automatically
|
||||||
# generate a proof for each incoming packet and transmit it
|
# generate a proof for each incoming packet and transmit it
|
||||||
# back to the sender of that packet.
|
# back to the sender of that packet.
|
||||||
echo_destination.set_proof_strategy(RNS.Destination.PROVE_ALL)
|
echo_destination.set_proof_strategy(RNS.Destination.PROVE_ALL)
|
||||||
|
@ -25,7 +25,7 @@ def program_setup(configpath):
|
|||||||
# Destinations are endpoints in Reticulum, that can be addressed
|
# Destinations are endpoints in Reticulum, that can be addressed
|
||||||
# and communicated with. Destinations can also announce their
|
# and communicated with. Destinations can also announce their
|
||||||
# existence, which will let the network know they are reachable
|
# existence, which will let the network know they are reachable
|
||||||
# and autoomatically create paths to them, from anywhere else
|
# and automatically create paths to them, from anywhere else
|
||||||
# in the network.
|
# in the network.
|
||||||
destination = RNS.Destination(
|
destination = RNS.Destination(
|
||||||
identity,
|
identity,
|
||||||
@ -36,7 +36,7 @@ def program_setup(configpath):
|
|||||||
)
|
)
|
||||||
|
|
||||||
# We configure the destination to automatically prove all
|
# We configure the destination to automatically prove all
|
||||||
# packets adressed to it. By doing this, RNS will automatically
|
# packets addressed to it. By doing this, RNS will automatically
|
||||||
# generate a proof for each incoming packet and transmit it
|
# generate a proof for each incoming packet and transmit it
|
||||||
# back to the sender of that packet. This will let anyone that
|
# back to the sender of that packet. This will let anyone that
|
||||||
# tries to communicate with the destination know whether their
|
# tries to communicate with the destination know whether their
|
||||||
|
@ -30,7 +30,7 @@ class Packet:
|
|||||||
"""
|
"""
|
||||||
The Packet class is used to create packet instances that can be sent
|
The Packet class is used to create packet instances that can be sent
|
||||||
over a Reticulum network. Packets will automatically be encrypted if
|
over a Reticulum network. Packets will automatically be encrypted if
|
||||||
they are adressed to a ``RNS.Destination.SINGLE`` destination,
|
they are addressed to a ``RNS.Destination.SINGLE`` destination,
|
||||||
``RNS.Destination.GROUP`` destination or a :ref:`RNS.Link<api-link>`.
|
``RNS.Destination.GROUP`` destination or a :ref:`RNS.Link<api-link>`.
|
||||||
|
|
||||||
For ``RNS.Destination.GROUP`` destinations, Reticulum will use the
|
For ``RNS.Destination.GROUP`` destinations, Reticulum will use the
|
||||||
|
Binary file not shown.
Binary file not shown.
@ -301,19 +301,23 @@ Filter output to only show some interfaces:
|
|||||||
|
|
||||||
.. code:: text
|
.. code:: text
|
||||||
|
|
||||||
usage: rnstatus.py [-h] [--config CONFIG] [--version] [-a] [-j] [-v] [filter]
|
usage: rnstatus.py [-h] [--config CONFIG] [--version] [-a] [-A] [-s SORT]
|
||||||
|
[-r] [-j] [-v] [filter]
|
||||||
|
|
||||||
Reticulum Network Stack Status
|
Reticulum Network Stack Status
|
||||||
|
|
||||||
positional arguments:
|
positional arguments:
|
||||||
filter only display interfaces with names including filter
|
filter only display interfaces with names including filter
|
||||||
|
|
||||||
options:
|
options:
|
||||||
-h, --help show this help message and exit
|
-h, --help show this help message and exit
|
||||||
--config CONFIG path to alternative Reticulum config directory
|
--config CONFIG path to alternative Reticulum config directory
|
||||||
--version show program's version number and exit
|
--version show program's version number and exit
|
||||||
-a, --all show all interfaces
|
-a, --all show all interfaces
|
||||||
-j, --json output in JSON format
|
-A, --announce-stats show announce stats
|
||||||
|
-s SORT, --sort SORT sort interfaces by [rate, traffic, rx, tx, announces, arx, atx, held]
|
||||||
|
-r, --reverse reverse sorting
|
||||||
|
-j, --json output in JSON format
|
||||||
-v, --verbose
|
-v, --verbose
|
||||||
|
|
||||||
|
|
||||||
@ -438,7 +442,7 @@ Resolve path to a destination:
|
|||||||
.. code:: text
|
.. code:: text
|
||||||
|
|
||||||
usage: rnpath.py [-h] [--config CONFIG] [--version] [-t] [-r] [-d] [-D]
|
usage: rnpath.py [-h] [--config CONFIG] [--version] [-t] [-r] [-d] [-D]
|
||||||
[-w seconds] [-v] [destination]
|
[-x] [-w seconds] [-v] [destination]
|
||||||
|
|
||||||
Reticulum Path Discovery Utility
|
Reticulum Path Discovery Utility
|
||||||
|
|
||||||
@ -453,6 +457,7 @@ Resolve path to a destination:
|
|||||||
-r, --rates show announce rate info
|
-r, --rates show announce rate info
|
||||||
-d, --drop remove the path to a destination
|
-d, --drop remove the path to a destination
|
||||||
-D, --drop-announces drop all queued announces
|
-D, --drop-announces drop all queued announces
|
||||||
|
-x, --drop-via drop all paths via specified transport instance
|
||||||
-w seconds timeout before giving up
|
-w seconds timeout before giving up
|
||||||
-v, --verbose
|
-v, --verbose
|
||||||
|
|
||||||
|
@ -396,7 +396,7 @@ notifications about announces from relevant destinations.</p>
|
|||||||
<span class="p">)</span>
|
<span class="p">)</span>
|
||||||
|
|
||||||
<span class="c1"># We configure the destinations to automatically prove all</span>
|
<span class="c1"># We configure the destinations to automatically prove all</span>
|
||||||
<span class="c1"># packets adressed to it. By doing this, RNS will automatically</span>
|
<span class="c1"># packets addressed to it. By doing this, RNS will automatically</span>
|
||||||
<span class="c1"># generate a proof for each incoming packet and transmit it</span>
|
<span class="c1"># generate a proof for each incoming packet and transmit it</span>
|
||||||
<span class="c1"># back to the sender of that packet. This will let anyone that</span>
|
<span class="c1"># back to the sender of that packet. This will let anyone that</span>
|
||||||
<span class="c1"># tries to communicate with the destination know whether their</span>
|
<span class="c1"># tries to communicate with the destination know whether their</span>
|
||||||
@ -697,7 +697,7 @@ the Packet interface.</p>
|
|||||||
<span class="p">)</span>
|
<span class="p">)</span>
|
||||||
|
|
||||||
<span class="c1"># We configure the destination to automatically prove all</span>
|
<span class="c1"># We configure the destination to automatically prove all</span>
|
||||||
<span class="c1"># packets adressed to it. By doing this, RNS will automatically</span>
|
<span class="c1"># packets addressed to it. By doing this, RNS will automatically</span>
|
||||||
<span class="c1"># generate a proof for each incoming packet and transmit it</span>
|
<span class="c1"># generate a proof for each incoming packet and transmit it</span>
|
||||||
<span class="c1"># back to the sender of that packet.</span>
|
<span class="c1"># back to the sender of that packet.</span>
|
||||||
<span class="n">echo_destination</span><span class="o">.</span><span class="n">set_proof_strategy</span><span class="p">(</span><span class="n">RNS</span><span class="o">.</span><span class="n">Destination</span><span class="o">.</span><span class="n">PROVE_ALL</span><span class="p">)</span>
|
<span class="n">echo_destination</span><span class="o">.</span><span class="n">set_proof_strategy</span><span class="p">(</span><span class="n">RNS</span><span class="o">.</span><span class="n">Destination</span><span class="o">.</span><span class="n">PROVE_ALL</span><span class="p">)</span>
|
||||||
|
@ -850,7 +850,7 @@ unless other app_data is specified in the <em>announce</em> method.</p>
|
|||||||
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">RNS.</span></span><span class="sig-name descname"><span class="pre">Packet</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">destination</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">create_receipt</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#RNS.Packet" title="Permalink to this definition">#</a></dt>
|
<em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">RNS.</span></span><span class="sig-name descname"><span class="pre">Packet</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">destination</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">create_receipt</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="headerlink" href="#RNS.Packet" title="Permalink to this definition">#</a></dt>
|
||||||
<dd><p>The Packet class is used to create packet instances that can be sent
|
<dd><p>The Packet class is used to create packet instances that can be sent
|
||||||
over a Reticulum network. Packets will automatically be encrypted if
|
over a Reticulum network. Packets will automatically be encrypted if
|
||||||
they are adressed to a <code class="docutils literal notranslate"><span class="pre">RNS.Destination.SINGLE</span></code> destination,
|
they are addressed to a <code class="docutils literal notranslate"><span class="pre">RNS.Destination.SINGLE</span></code> destination,
|
||||||
<code class="docutils literal notranslate"><span class="pre">RNS.Destination.GROUP</span></code> destination or a <a class="reference internal" href="#api-link"><span class="std std-ref">RNS.Link</span></a>.</p>
|
<code class="docutils literal notranslate"><span class="pre">RNS.Destination.GROUP</span></code> destination or a <a class="reference internal" href="#api-link"><span class="std std-ref">RNS.Link</span></a>.</p>
|
||||||
<p>For <code class="docutils literal notranslate"><span class="pre">RNS.Destination.GROUP</span></code> destinations, Reticulum will use the
|
<p>For <code class="docutils literal notranslate"><span class="pre">RNS.Destination.GROUP</span></code> destinations, Reticulum will use the
|
||||||
pre-shared key configured for the destination. All packets to group
|
pre-shared key configured for the destination. All packets to group
|
||||||
|
File diff suppressed because one or more lines are too long
@ -481,19 +481,23 @@ Reticulum Transport Instance <5245a8efe1788c6a1cd36144a270e13b> running
|
|||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
<p><strong>All Command-Line Options</strong></p>
|
<p><strong>All Command-Line Options</strong></p>
|
||||||
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>usage: rnstatus.py [-h] [--config CONFIG] [--version] [-a] [-j] [-v] [filter]
|
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>usage: rnstatus.py [-h] [--config CONFIG] [--version] [-a] [-A] [-s SORT]
|
||||||
|
[-r] [-j] [-v] [filter]
|
||||||
|
|
||||||
Reticulum Network Stack Status
|
Reticulum Network Stack Status
|
||||||
|
|
||||||
positional arguments:
|
positional arguments:
|
||||||
filter only display interfaces with names including filter
|
filter only display interfaces with names including filter
|
||||||
|
|
||||||
options:
|
options:
|
||||||
-h, --help show this help message and exit
|
-h, --help show this help message and exit
|
||||||
--config CONFIG path to alternative Reticulum config directory
|
--config CONFIG path to alternative Reticulum config directory
|
||||||
--version show program's version number and exit
|
--version show program's version number and exit
|
||||||
-a, --all show all interfaces
|
-a, --all show all interfaces
|
||||||
-j, --json output in JSON format
|
-A, --announce-stats show announce stats
|
||||||
|
-s SORT, --sort SORT sort interfaces by [rate, traffic, rx, tx, announces, arx, atx, held]
|
||||||
|
-r, --reverse reverse sorting
|
||||||
|
-j, --json output in JSON format
|
||||||
-v, --verbose
|
-v, --verbose
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
@ -595,7 +599,7 @@ Path found, destination <c89b4da064bf66d280f0e4d8abfd9806> is 4 hops away
|
|||||||
</div>
|
</div>
|
||||||
<p><strong>All Command-Line Options</strong></p>
|
<p><strong>All Command-Line Options</strong></p>
|
||||||
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>usage: rnpath.py [-h] [--config CONFIG] [--version] [-t] [-r] [-d] [-D]
|
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>usage: rnpath.py [-h] [--config CONFIG] [--version] [-t] [-r] [-d] [-D]
|
||||||
[-w seconds] [-v] [destination]
|
[-x] [-w seconds] [-v] [destination]
|
||||||
|
|
||||||
Reticulum Path Discovery Utility
|
Reticulum Path Discovery Utility
|
||||||
|
|
||||||
@ -610,6 +614,7 @@ options:
|
|||||||
-r, --rates show announce rate info
|
-r, --rates show announce rate info
|
||||||
-d, --drop remove the path to a destination
|
-d, --drop remove the path to a destination
|
||||||
-D, --drop-announces drop all queued announces
|
-D, --drop-announces drop all queued announces
|
||||||
|
-x, --drop-via drop all paths via specified transport instance
|
||||||
-w seconds timeout before giving up
|
-w seconds timeout before giving up
|
||||||
-v, --verbose
|
-v, --verbose
|
||||||
</pre></div>
|
</pre></div>
|
||||||
|
@ -301,19 +301,23 @@ Filter output to only show some interfaces:
|
|||||||
|
|
||||||
.. code:: text
|
.. code:: text
|
||||||
|
|
||||||
usage: rnstatus.py [-h] [--config CONFIG] [--version] [-a] [-j] [-v] [filter]
|
usage: rnstatus.py [-h] [--config CONFIG] [--version] [-a] [-A] [-s SORT]
|
||||||
|
[-r] [-j] [-v] [filter]
|
||||||
|
|
||||||
Reticulum Network Stack Status
|
Reticulum Network Stack Status
|
||||||
|
|
||||||
positional arguments:
|
positional arguments:
|
||||||
filter only display interfaces with names including filter
|
filter only display interfaces with names including filter
|
||||||
|
|
||||||
options:
|
options:
|
||||||
-h, --help show this help message and exit
|
-h, --help show this help message and exit
|
||||||
--config CONFIG path to alternative Reticulum config directory
|
--config CONFIG path to alternative Reticulum config directory
|
||||||
--version show program's version number and exit
|
--version show program's version number and exit
|
||||||
-a, --all show all interfaces
|
-a, --all show all interfaces
|
||||||
-j, --json output in JSON format
|
-A, --announce-stats show announce stats
|
||||||
|
-s SORT, --sort SORT sort interfaces by [rate, traffic, rx, tx, announces, arx, atx, held]
|
||||||
|
-r, --reverse reverse sorting
|
||||||
|
-j, --json output in JSON format
|
||||||
-v, --verbose
|
-v, --verbose
|
||||||
|
|
||||||
|
|
||||||
@ -438,7 +442,7 @@ Resolve path to a destination:
|
|||||||
.. code:: text
|
.. code:: text
|
||||||
|
|
||||||
usage: rnpath.py [-h] [--config CONFIG] [--version] [-t] [-r] [-d] [-D]
|
usage: rnpath.py [-h] [--config CONFIG] [--version] [-t] [-r] [-d] [-D]
|
||||||
[-w seconds] [-v] [destination]
|
[-x] [-w seconds] [-v] [destination]
|
||||||
|
|
||||||
Reticulum Path Discovery Utility
|
Reticulum Path Discovery Utility
|
||||||
|
|
||||||
@ -453,6 +457,7 @@ Resolve path to a destination:
|
|||||||
-r, --rates show announce rate info
|
-r, --rates show announce rate info
|
||||||
-d, --drop remove the path to a destination
|
-d, --drop remove the path to a destination
|
||||||
-D, --drop-announces drop all queued announces
|
-D, --drop-announces drop all queued announces
|
||||||
|
-x, --drop-via drop all paths via specified transport instance
|
||||||
-w seconds timeout before giving up
|
-w seconds timeout before giving up
|
||||||
-v, --verbose
|
-v, --verbose
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user