diff --git a/RNS/Utilities/rnstatus.py b/RNS/Utilities/rnstatus.py
index a442622..a24ed3e 100644
--- a/RNS/Utilities/rnstatus.py
+++ b/RNS/Utilities/rnstatus.py
@@ -32,8 +32,8 @@ def program_setup(configdir, dispall=False, verbosity = 0):
for ifstat in ifstats:
name = ifstat["name"]
- print("")
if dispall or not (name.startswith("LocalInterface[") or name.startswith("TCPInterface[Client")):
+ print("")
if ifstat["status"]:
ss = "Up"
else:
diff --git a/docs/manual/.buildinfo b/docs/manual/.buildinfo
index ca1af37..5e25844 100644
--- a/docs/manual/.buildinfo
+++ b/docs/manual/.buildinfo
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
-config: bf2e68cefd79a49afe077549bac593bf
+config: 55e1a358a797ca9390d1b4f0e18f7ba3
tags: 645f666f9bcd5a90fca523b33c5a78b7
diff --git a/docs/manual/_sources/gettingstartedfast.rst.txt b/docs/manual/_sources/gettingstartedfast.rst.txt
index cb5fa7a..c51b99f 100644
--- a/docs/manual/_sources/gettingstartedfast.rst.txt
+++ b/docs/manual/_sources/gettingstartedfast.rst.txt
@@ -10,7 +10,7 @@ Try Using a Reticulum-based Program
=============================================
If you simply want to try using a program built with Reticulum, you can take
a look at `Nomad Network `_, which
-provides a basic encrypted communications suite built completely on Reticulum.
+provides a complete encrypted communications suite built with Reticulum.
.. image:: screenshots/nomadnet_3.png
:target: _images/nomadnet_3.png
@@ -31,9 +31,21 @@ You can install Nomad Network via pip:
+Using the Included Utilities
+=============================================
+Reticulum comes with a range of included utilities that make it easier to
+manage your network, check connectivity and make Reticulum available to other
+programs on your system.
+
+You can use ``rnsd`` to run Reticulum as a background or foreground service,
+and the ``rnstatus``, ``rnpath`` and ``rnprobe`` utilities to view and query
+network status and connectivity.
+
+To learn more about these utility programs, have a look at the
+:ref:`Using Reticulum on Your System` chapter of this manual.
+
Creating a Network With Reticulum
=============================================
-
To create a network, you will need to specify one or more *interfaces* for
Reticulum to use. This is done in the Reticulum configuration file, which by
default is located at ``~/.reticulum/config``.
diff --git a/docs/manual/_sources/interfaces.rst.txt b/docs/manual/_sources/interfaces.rst.txt
index e75cb53..0a00746 100644
--- a/docs/manual/_sources/interfaces.rst.txt
+++ b/docs/manual/_sources/interfaces.rst.txt
@@ -14,6 +14,10 @@ for Reticulum to use.
The following sections describe the interfaces currently available in Reticulum,
and gives example configurations for the respective interface types.
+For a high-level overview of how networks can be formed over different interface
+types, have a look at the :ref:`Building Networks` chapter of this
+manual.
+
.. _interfaces-udp:
UDP Interface
diff --git a/docs/manual/_sources/networks.rst.txt b/docs/manual/_sources/networks.rst.txt
index 842f1f5..928b1ef 100644
--- a/docs/manual/_sources/networks.rst.txt
+++ b/docs/manual/_sources/networks.rst.txt
@@ -63,7 +63,8 @@ the underlying carrier for Reticulum.
However, most real-world networks will probably involve either some form of
wireless or direct hardline communications. To allow Reticulum to communicate
over any type of medium, you must specify it in the configuration file, by default
-located at ``~/.reticulum/config``.
+located at ``~/.reticulum/config``. See the :ref:`Supported Interfaces`
+chapter of this manual for interface configuration examples.
Any number of interfaces can be configured, and Reticulum will automatically
decide which are suitable to use in any given situation, depending on where
diff --git a/docs/manual/_static/documentation_options.js b/docs/manual/_static/documentation_options.js
index ee435f4..8694648 100644
--- a/docs/manual/_static/documentation_options.js
+++ b/docs/manual/_static/documentation_options.js
@@ -1,6 +1,6 @@
var DOCUMENTATION_OPTIONS = {
URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'),
- VERSION: '0.2.6 beta',
+ VERSION: '0.2.7 beta',
LANGUAGE: 'None',
COLLAPSE_INDEX: false,
BUILDER: 'html',
diff --git a/docs/manual/examples.html b/docs/manual/examples.html
index 63e0e65..a249e25 100644
--- a/docs/manual/examples.html
+++ b/docs/manual/examples.html
@@ -5,7 +5,7 @@
- Code Examples — Reticulum Network Stack 0.2.6 beta documentation
+ Code Examples — Reticulum Network Stack 0.2.7 beta documentation
@@ -27,7 +27,7 @@
previous |
- Reticulum Network Stack 0.2.6 beta documentation »
+ Reticulum Network Stack 0.2.7 beta documentation »
Code Examples
@@ -2319,7 +2319,7 @@ interface to efficiently pass files of any size over a Reticulum
previous |
- Reticulum Network Stack 0.2.6 beta documentation »
+ Reticulum Network Stack 0.2.7 beta documentation »
Code Examples
diff --git a/docs/manual/genindex.html b/docs/manual/genindex.html
index feed7c3..406342b 100644
--- a/docs/manual/genindex.html
+++ b/docs/manual/genindex.html
@@ -5,7 +5,7 @@
- Index — Reticulum Network Stack 0.2.6 beta documentation
+ Index — Reticulum Network Stack 0.2.7 beta documentation
@@ -23,7 +23,7 @@
index
- Reticulum Network Stack 0.2.6 beta documentation »
+ Reticulum Network Stack 0.2.7 beta documentation »
Index
@@ -416,7 +416,7 @@
index
- Reticulum Network Stack 0.2.6 beta documentation »
+ Reticulum Network Stack 0.2.7 beta documentation »
Index
diff --git a/docs/manual/gettingstartedfast.html b/docs/manual/gettingstartedfast.html
index 2fa646c..fefc605 100644
--- a/docs/manual/gettingstartedfast.html
+++ b/docs/manual/gettingstartedfast.html
@@ -5,7 +5,7 @@
- Getting Started Fast — Reticulum Network Stack 0.2.6 beta documentation
+ Getting Started Fast — Reticulum Network Stack 0.2.7 beta documentation
@@ -31,7 +31,7 @@
previous |
- Reticulum Network Stack 0.2.6 beta documentation »
+ Reticulum Network Stack 0.2.7 beta documentation »
Getting Started Fast
@@ -50,7 +50,7 @@ scenarios.
Try Using a Reticulum-based Program
If you simply want to try using a program built with Reticulum, you can take
a look at Nomad Network , which
-provides a basic encrypted communications suite built completely on Reticulum.
+provides a complete encrypted communications suite built with Reticulum.
Nomad Network is a user-facing client
in the development for the messaging and information-sharing protocol
@@ -64,6 +64,17 @@ in the development for the messaging and information-sharing protocol
+
+
Using the Included Utilities
+
Reticulum comes with a range of included utilities that make it easier to
+manage your network, check connectivity and make Reticulum available to other
+programs on your system.
+
You can use rnsd
to run Reticulum as a background or foreground service,
+and the rnstatus
, rnpath
and rnprobe
utilities to view and query
+network status and connectivity.
+
To learn more about these utility programs, have a look at the
+Using Reticulum on Your System chapter of this manual.
+
Creating a Network With Reticulum
To create a network, you will need to specify one or more interfaces for
@@ -145,6 +156,7 @@ don’t use pip, but try this recipe:
diff --git a/docs/manual/index.html b/docs/manual/index.html
index 36e7b4d..4416e9d 100644
--- a/docs/manual/index.html
+++ b/docs/manual/index.html
@@ -5,7 +5,7 @@
- Reticulum Network Stack Manual — Reticulum Network Stack 0.2.6 beta documentation
+ Reticulum Network Stack Manual — Reticulum Network Stack 0.2.7 beta documentation
@@ -27,7 +27,7 @@
next |
- Reticulum Network Stack 0.2.6 beta documentation »
+ Reticulum Network Stack 0.2.7 beta documentation »
Reticulum Network Stack Manual
@@ -54,6 +54,7 @@ to participate in the development of Reticulum itself.
Getting Started Fast
diff --git a/docs/manual/interfaces.html b/docs/manual/interfaces.html
index 849f3e1..3495869 100644
--- a/docs/manual/interfaces.html
+++ b/docs/manual/interfaces.html
@@ -5,7 +5,7 @@
- Supported Interfaces — Reticulum Network Stack 0.2.6 beta documentation
+ Supported Interfaces — Reticulum Network Stack 0.2.7 beta documentation
@@ -31,7 +31,7 @@
previous |
- Reticulum Network Stack 0.2.6 beta documentation »
+ Reticulum Network Stack 0.2.7 beta documentation »
Supported Interfaces
@@ -50,6 +50,9 @@ common to them all is that you will need to define one or more interfaces
The following sections describe the interfaces currently available in Reticulum,
and gives example configurations for the respective interface types.
+For a high-level overview of how networks can be formed over different interface
+types, have a look at the Building Networks chapter of this
+manual.
diff --git a/docs/manual/networks.html b/docs/manual/networks.html
index 2fd0033..e55dc33 100644
--- a/docs/manual/networks.html
+++ b/docs/manual/networks.html
@@ -5,7 +5,7 @@
- Building Networks — Reticulum Network Stack 0.2.6 beta documentation
+ Building Networks — Reticulum Network Stack 0.2.7 beta documentation
@@ -31,7 +31,7 @@
previous |
- Reticulum Network Stack 0.2.6 beta documentation »
+ Reticulum Network Stack 0.2.7 beta documentation »
Building Networks
@@ -114,7 +114,8 @@ the underlying carrier for Reticulum.
However, most real-world networks will probably involve either some form of
wireless or direct hardline communications. To allow Reticulum to communicate
over any type of medium, you must specify it in the configuration file, by default
-located at ~/.reticulum/config
.
+located at ~/.reticulum/config
. See the Supported Interfaces
+chapter of this manual for interface configuration examples.
Any number of interfaces can be configured, and Reticulum will automatically
decide which are suitable to use in any given situation, depending on where
traffic needs to flow.
@@ -246,7 +247,7 @@ connected outliers are now an integral part of the network.
previous |
- Reticulum Network Stack 0.2.6 beta documentation »
+ Reticulum Network Stack 0.2.7 beta documentation »
Building Networks
diff --git a/docs/manual/reference.html b/docs/manual/reference.html
index 979eb62..7c60452 100644
--- a/docs/manual/reference.html
+++ b/docs/manual/reference.html
@@ -5,7 +5,7 @@
- API Reference — Reticulum Network Stack 0.2.6 beta documentation
+ API Reference — Reticulum Network Stack 0.2.7 beta documentation
@@ -16,7 +16,7 @@
-
+
@@ -1204,7 +1204,7 @@ will announce it.
title="previous chapter">Understanding Reticulum
Next topic
Examples
+ title="next chapter">Code Examples
This Page
diff --git a/docs/manual/search.html b/docs/manual/search.html
index 7c830e5..8f55072 100644
--- a/docs/manual/search.html
+++ b/docs/manual/search.html
@@ -5,7 +5,7 @@
- Search — Reticulum Network Stack 0.2.6 beta documentation
+ Search — Reticulum Network Stack 0.2.7 beta documentation
@@ -29,7 +29,7 @@
index
- Reticulum Network Stack 0.2.6 beta documentation »
+ Reticulum Network Stack 0.2.7 beta documentation »
Search
@@ -85,7 +85,7 @@
index
- Reticulum Network Stack 0.2.6 beta documentation »
+ Reticulum Network Stack 0.2.7 beta documentation »
Search
diff --git a/docs/manual/searchindex.js b/docs/manual/searchindex.js
index 37efe09..f7a72d2 100644
--- a/docs/manual/searchindex.js
+++ b/docs/manual/searchindex.js
@@ -1 +1 @@
-Search.setIndex({docnames:["examples","gettingstartedfast","index","interfaces","networks","reference","understanding","using","whatis"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["examples.rst","gettingstartedfast.rst","index.rst","interfaces.rst","networks.rst","reference.rst","understanding.rst","using.rst","whatis.rst"],objects:{"RNS.Destination":{announce:[5,1,1,""],app_and_aspects_from_name:[5,1,1,""],clear_default_app_data:[5,1,1,""],create_keys:[5,1,1,""],decrypt:[5,1,1,""],deregister_request_handler:[5,1,1,""],encrypt:[5,1,1,""],full_name:[5,1,1,""],get_private_key:[5,1,1,""],hash:[5,1,1,""],hash_from_name_and_identity:[5,1,1,""],load_private_key:[5,1,1,""],register_request_handler:[5,1,1,""],set_default_app_data:[5,1,1,""],set_link_established_callback:[5,1,1,""],set_packet_callback:[5,1,1,""],set_proof_requested_callback:[5,1,1,""],set_proof_strategy:[5,1,1,""],sign:[5,1,1,""]},"RNS.Identity":{CURVE:[5,2,1,""],KEYSIZE:[5,2,1,""],TRUNCATED_HASHLENGTH:[5,2,1,""],decrypt:[5,1,1,""],encrypt:[5,1,1,""],from_bytes:[5,1,1,""],from_file:[5,1,1,""],full_hash:[5,1,1,""],get_private_key:[5,1,1,""],get_public_key:[5,1,1,""],get_random_hash:[5,1,1,""],load_private_key:[5,1,1,""],load_public_key:[5,1,1,""],recall:[5,1,1,""],recall_app_data:[5,1,1,""],sign:[5,1,1,""],to_file:[5,1,1,""],truncated_hash:[5,1,1,""],validate:[5,1,1,""]},"RNS.Link":{CURVE:[5,2,1,""],ESTABLISHMENT_TIMEOUT_PER_HOP:[5,2,1,""],KEEPALIVE:[5,2,1,""],get_remote_identity:[5,1,1,""],identify:[5,1,1,""],inactive_for:[5,1,1,""],no_inbound_for:[5,1,1,""],no_outbound_for:[5,1,1,""],request:[5,1,1,""],set_packet_callback:[5,1,1,""],set_remote_identified_callback:[5,1,1,""],set_resource_callback:[5,1,1,""],set_resource_concluded_callback:[5,1,1,""],set_resource_started_callback:[5,1,1,""],set_resource_strategy:[5,1,1,""],teardown:[5,1,1,""]},"RNS.Packet":{ENCRYPTED_MDU:[5,2,1,""],PLAIN_MDU:[5,2,1,""],resend:[5,1,1,""],send:[5,1,1,""]},"RNS.PacketReceipt":{get_rtt:[5,1,1,""],get_status:[5,1,1,""],set_delivery_callback:[5,1,1,""],set_timeout:[5,1,1,""],set_timeout_callback:[5,1,1,""]},"RNS.RequestReceipt":{get_progress:[5,1,1,""],get_request_id:[5,1,1,""],get_response:[5,1,1,""],get_response_time:[5,1,1,""],get_status:[5,1,1,""]},"RNS.Resource":{advertise:[5,1,1,""],cancel:[5,1,1,""],get_progress:[5,1,1,""]},"RNS.Reticulum":{MTU:[5,2,1,""],should_use_implicit_proof:[5,1,1,""],transport_enabled:[5,1,1,""]},"RNS.Transport":{PATHFINDER_M:[5,2,1,""],deregister_announce_handler:[5,1,1,""],has_path:[5,1,1,""],hops_to:[5,1,1,""],next_hop:[5,1,1,""],next_hop_interface:[5,1,1,""],register_announce_handler:[5,1,1,""],request_path:[5,1,1,""]},RNS:{Destination:[5,0,1,""],Identity:[5,0,1,""],Link:[5,0,1,""],Packet:[5,0,1,""],PacketReceipt:[5,0,1,""],RequestReceipt:[5,0,1,""],Resource:[5,0,1,""],Reticulum:[5,0,1,""],Transport:[5,0,1,""]}},objnames:{"0":["py","class","Python class"],"1":["py","method","Python method"],"2":["py","attribute","Python attribute"]},objtypes:{"0":"py:class","1":"py:method","2":"py:attribute"},terms:{"0":[0,3,5,6,7,8],"00":6,"000":[6,8],"00000000":6,"00000100":6,"00000111":6,"01":[6,7],"01010000":6,"02":7,"05":0,"07":7,"1":[0,3,5,6,7,8],"10":[0,3,6],"100":[0,6],"1000":[0,6],"1024":0,"11":6,"115200":3,"12":3,"1200":6,"125":3,"125000":3,"127":3,"128":[5,6,8],"13":7,"14":6,"141":[],"15":[3,6],"150":3,"150m":3,"151":6,"16":[3,7],"18":6,"180":6,"182":[],"2":[0,3,6,7],"20":[0,3,6],"200":3,"2000000":[],"205":[],"211":[],"237":[6,8],"24":3,"240":[],"25":[0,2,8],"255":3,"256":[5,6],"270":6,"2f":0,"3":[0,6,8],"323":[],"33":6,"34":6,"360":5,"3600":0,"37":7,"37428":7,"38":7,"383":5,"3e12fc71692f8ec47bc5":1,"4":[6,7],"409":[],"4242":[3,7],"430":6,"45":0,"469":7,"477":[5,6],"4965":7,"5":[0,3,5,6],"500":[5,6,8],"512":5,"55":3,"56b115c30cd386cad69c":7,"60":0,"600":3,"62":[6,8],"7":[3,6],"72":3,"77":6,"7ca6f4e4dc26ae329e61":[],"8":[0,3],"80":[5,6],"80e29bf7cccaf31431b3":6,"83":6,"86":[],"867":3,"867200000":3,"868":6,"88":3,"9":7,"900":6,"9382f334de63217a4278":7,"95":6,"abstract":6,"break":[5,6,8],"byte":[0,5,6,7,8],"case":[1,3,4,6,7],"class":[0,2,8],"default":[0,1,3,4,5,6,7],"do":[0,1,3,5,6,7,8],"float":[0,5],"function":[0,2,3,4,5,8],"import":[0,1,4,6],"int":0,"long":[0,3,6],"new":[0,3,4,5,6],"public":[0,2,5],"return":[0,5],"short":6,"static":5,"throw":[],"true":[0,3,5],"try":[0,2],"while":[0,4,5,6,8],A:[0,3,4,5,6,8],And:0,As:[4,5,6,8],At:[4,6],Be:5,But:6,By:[0,3,5,6],For:[3,4,5,6,8],IN:[0,5],If:[0,1,3,4,5,6,7,8],In:[0,1,3,4,5,6,7,8],It:[0,3,5,6,8],No:[6,8],On:0,One:5,Or:[3,6],That:6,The:[0,1,2,3,4,5,8],There:[4,6,8],These:[3,6],To:[0,1,3,4,6,7,8],Will:5,With:[2,3,4,6,7],_:6,__:6,______:6,_______:6,________:6,________________:6,__init__:0,__main__:0,__name__:0,_exit:0,ab:0,abl:[0,4,5,6],about:[0,4,5,6],abov:[1,3,6],absolut:[],accept:[5,6],accept_al:[0,5],accept_app:5,accept_non:5,access:[5,6,7],accord:6,accordingli:0,acheiv:6,achiev:[5,6],acknowledg:8,across:4,act:[5,6],action:0,activ:[0,1,5,6],actor:6,actual:[0,1,3,6],ad:[0,4,5,6,8],adapt:4,add:[0,1,3,4],add_argu:0,addit:[6,8],addr1:6,addr2:6,address:[0,3,4,5,6,8],adher:5,adress:[0,4,5,8],advantag:5,advertis:[0,5],advis:6,ae:[6,8],after:[0,4,6],again:[1,6],against:6,agent:6,agnost:[4,6],agnostic:6,aim:[2,6],air:8,airtim:3,aliv:[5,6],all:[0,2,3,4,5,6,7,8],allow:[0,1,3,4,5,6,7,8],allow_al:[0,5],allow_list:5,allow_non:5,allowed_list:5,almost:6,along:[4,6],alreadi:[0,4,6],also:[0,3,4,5,6,7,8],alter:[3,6],altern:[0,3,7],although:8,alwai:[5,6],amateur:[3,8],amount:[3,4,5,6,8],an:[0,1,3,4,5,6,8],ani:[0,1,3,4,5,6,7,8],announc:[2,5],announce_handl:0,announced_ident:[0,5],announceloop:0,announcesampl:0,anonym:[4,5,6],anoth:[1,5,6,7],answer:[6,7],anyon:[0,4,5,6],anyth:[3,6],anywher:0,apart:6,api:[1,2,6,8],app:[0,5,6],app_and_aspects_from_nam:5,app_data:[0,5],app_nam:[0,5],app_timeout:0,append:[0,6],appli:6,applic:[0,5,6,7],approach:7,approv:6,approxim:6,ar:[0,1,3,4,5,6,7,8],arbitrari:[5,6],arbritrari:8,area:[3,4,8],arg:0,argon:0,argpars:0,argument:[0,5,7],argumentpars:0,around:6,arriv:[0,6],ask:[0,5],aspect:[0,5,6],aspect_filt:[0,5],assign:6,associ:[1,5,6],assum:[3,6],asymmetr:8,attached_interfac:[],attempt:5,attribut:5,audit:8,authent:[5,6,8],author:6,auto:[5,6],auto_compress:5,autoconfigur:8,autom:6,automat:[0,3,4,5,6,7,8],autonom:[4,6],autoomat:0,avail:[0,3,4,6,7,8],availadbl:[],averag:6,avoid:6,awai:[0,4,6,7],awar:6,ax25kissinterfac:3,ax:[2,8],b:[0,4],back:[0,6,8],backhaul:4,band:6,bandwidth:[3,4,6,8],bare:0,barrier:6,base:[2,4,5,6,8],basi:[5,6,8],basic:[0,1,2],baud:[3,6],beacon:3,becaus:[4,6],becki:0,becom:[0,4],been:[0,3,4,5,6,8],befor:[0,5,6],begin:[0,5],begun:5,behind:6,being:[3,5,6],belief:6,below:[1,3],best:[1,6,8],beta:8,between:[0,4,5,6],bgp:6,bi:6,bidirect:6,billion:4,binari:[0,2],bind:3,bit:[5,6,8],blob:[0,6],board:8,both:[3,4,5,6,8],bp:6,bridg:2,briefli:6,broadcast:[1,2,3,5,6],broadcast_destin:0,broadcastloop:0,brought:7,buffer:3,bug:8,build:[0,1,2,6,8],built:[1,6,8],bundl:0,c:[0,4,6],cabl:4,cad:6,calcul:[5,6],call:[0,4,5,6,8],callabl:5,callback:[0,5],callsign:3,can:[0,1,2,3,4,5,6,7],cancel:5,candid:4,cannot:0,capac:6,carambola:0,care:[5,6,8],carri:[5,6],carrier:[4,8],caveat:2,cb:6,cbc:8,cd:1,cdma:3,censor:6,censorship:6,central:[4,6],certain:[0,3,4,6],challeng:6,chang:[0,1,5,6,8],channel:[0,3,4,6,8],channelarg:0,chapter:[1,4,6,8],charact:0,characterist:6,cheap:6,check:[0,5],checksum:[5,8],choos:[0,3],chose:6,chosen:4,chunk:0,ciphertext:5,ciphertext_token:5,cl:0,clear:[0,5,6],clear_default_app_data:5,clear_screen:0,client:[0,1,2,5],client_connect:0,client_disconnect:0,client_ident:0,client_loop:0,client_packet_receiv:0,client_request:0,clone:1,close:[0,5],closed_callback:5,closer:6,cluster:6,code:[2,3,6],codingr:3,com:[0,1],combin:[4,6],come:6,command:[0,1,7],comment:3,common:[3,6],commun:[0,1,3,4,5,6,7,8],compat:[5,6],complet:[0,1,4,5,6,8],compon:6,compos:6,compress:[0,5,6],comput:[1,6,8],concaten:5,concept:[2,6],conclud:[0,5],concurr:[6,7],condit:6,config:[0,1,4,7],configarg:0,configdir:5,configpath:0,configur:[0,1,3,4,5,6,7,8],confirm:[6,8],connect:[0,3,4,5,6,7,8],consequ:6,consid:[3,6,8],consist:6,constant:[5,6],construct:6,contact:6,contain:[0,4,5,6],content:4,context:6,control:[0,3,4,5,6],conveni:0,convent:0,converg:2,coordin:[4,5,6,8],core:[4,6,8],correct:[0,6],correctli:0,correspond:6,cost:[6,8],could:[0,4,5,6,8],count:6,counter:0,cours:3,cover:8,coverag:4,cpu:0,creat:[0,2,3,5,6],create_kei:5,create_receipt:[0,5],creation:6,creator:6,critic:6,cryptograph:[4,8],cryptographi:[1,6,8],ctrl:0,cull:5,current:[0,2,3,5,6],current_download:0,current_filenam:0,curv:[4,5,6,8],curve25519:[4,5,6,8],custom:[5,6],d:[4,6],daemon:[5,7],dai:[4,6],data:[0,3,4,5,6,8],databit:3,date:0,dbm:3,debian:6,debug:[],decai:6,decid:[4,5,6],decod:0,decrypt:[5,6],dedic:6,def:0,default_timeout:[],defin:[0,3,6],definit:6,degrad:4,delai:6,deliv:[0,5],deliveri:[0,5,8],demand:5,demonstr:[0,3],depend:[1,4,7],deploi:6,deregist:5,deregister_announce_handl:5,deregister_request_handl:5,deriv:[6,8],describ:[3,5,6],descript:0,design:[4,6,8],desir:[0,6],destin:[0,1,2,4,7],destination_1:0,destination_2:0,destination_clos:0,destination_hash:[0,5,7],destination_hexhash:0,detail:[0,2,5,8],detect:0,determin:[5,6],dev:3,develop:[2,6,8],devic:[2,3,4,5,6],dh:5,did:0,differ:[0,1,3,4,5,6,7,8],diffi:[4,6,8],digit:[6,8],dir:0,direct:[0,4,5,6],directli:[3,5,6,8],directori:[0,7],disabl:3,disable_encrypt:[],disappear:[],discard:6,disconnect:0,discoveri:[6,7],discrimin:4,discuss:6,disk:[0,5],displai:[0,6],distanc:6,distinct:[3,6],distribut:[0,4,5,6,7],divmod:0,document:6,doe:[0,2,4,5,6],doesn:3,domain:[1,3],don:[0,1,4],done:[0,1,4,6],dori:4,dot:[6,7],down:0,downgrad:[],download:0,download_began:0,download_conclud:0,download_finish:0,download_start:0,download_tim:0,driver:[7,8],drop:6,due:4,duplex:[6,8],e:[0,4],each:[0,4,6],earlier:6,eas:6,easi:[3,6,7,8],easier:4,easiest:[1,6],easili:[6,8],eca6f4e4dc26ae329e61:7,ecdh:[6,8],echo:[1,2,7],echo_destin:0,echo_request:0,ed25519:[6,8],effici:[0,3,6,8],ei:0,either:[3,4,6],elaps:3,elif:0,ellipt:[4,5,6,8],els:[0,4,6],emploi:6,emptor:2,enabl:[3,4,5,7],enable_transport:6,encapsul:[3,8],encod:0,encrypt:[0,1,4,5,6,8],encrypted_mdu:5,encryptionless:[],end:[0,4,5,6,8],endless:3,endpoint:[0,4,5,6],engin:6,enough:1,ensur:6,enter:0,entir:[4,6],entiti:6,entri:[0,6],enumer:0,environ:6,environment:6,environmentlogg:6,ephemer:[4,5,6,8],equal:[4,6],equip:[4,6],equival:3,equl:[],error:0,essenti:6,establish:[0,5,8],established_callback:5,establishment_timeout_per_hop:5,eth0:3,ethernet:[1,4,6,8],even:[4,6,7,8],everi:[0,3,4,5,6],everyon:[4,6],everyth:[0,4,6],evolv:4,exact:6,exactli:[5,6],exampl:[1,2,3,5,6,7,8],example_util:[0,7],exampleannouncehandl:0,exce:0,except:[0,6],exchang:[4,5,6,8],execut:[0,5],exhaust:6,exist:[0,1,3,6,8],exit:[0,1,5,7],exit_handl:0,expand:6,expect:[0,5,6,7],experi:[1,6],experiment:8,explain:5,explan:6,explicit:5,explicitli:[],explor:[0,6,8],expos:5,extend:[0,6],extern:[5,8],extra:[3,4],extrem:8,fa7ddfab5213f916dea:6,face:1,fact:[6,8],factor:3,fail:[0,5],failed_callback:[0,5],fals:[0,3,5],far:[4,6],fast:2,fastest:3,featur:[6,8],feed:5,feedback:0,fernet:8,few:[4,6,8],field:6,file:[0,1,4,5,6,8],file_resourc:0,file_s:0,filelist:0,filelist_data:0,filelist_receiv:0,filelist_timeout_job:0,filenam:0,filetransf:[1,2,5],filter:[0,4,6],find:[4,6],firmwar:6,first:[0,1,5,6],fit:0,five:0,fix:6,flag:[5,6],flow:[3,4],flow_control:3,flush:0,folder:1,follow:[0,3,6,8],forcibl:5,foremost:8,form:[4,5,6],format:[0,2,8],forth:0,forward:[3,5,6,8],forward_ip:3,forward_port:3,found:[0,1,4,6,7],four:4,frankfurt:7,free:8,frequenc:[3,6],friendli:8,from:[0,1,3,4,5,6,7,8],from_byt:5,from_fil:5,fromhex:0,fruit:0,full:[0,3,5,6,7,8],full_hash:5,full_nam:[5,7],fulli:[6,8],funcion:5,fundament:6,further:[1,2],futur:[4,6],g:0,ga:0,gatekeep:6,gatewai:4,gen:[],gener:[0,4,5,6,8],generalis:8,geograph:4,get:[0,2,3,5,8],get_private_kei:5,get_progress:[0,5],get_public_kei:5,get_random_hash:[0,5],get_remote_ident:[0,5],get_request_id:5,get_respons:5,get_response_tim:5,get_rtt:[0,5],get_statu:5,gi:0,gigabyt:8,gipsum:[],git:1,github:[0,1],give:[3,6],given:[4,6],global:[0,4,8],go:[0,1,6],goal:2,good:[4,6],got:0,got_respons:0,govern:6,grape:0,great:6,greater:6,group:[5,6],grow:4,growth:2,guarante:6,guid:[1,5,6],h:[1,6,7],ha:[0,3,4,5,6,8],had:6,half:[6,8],hand:0,handheld:6,handl:[0,4,5,6,7,8],handler:[0,5],happen:[0,5],hardlin:4,hardwar:[4,5,6,8],has_path:[0,5],hasattr:0,hash:[0,1,5,6,7],hash_from_name_and_ident:5,hashmap:0,have:[0,1,3,4,5,6,7],hazard:5,header:6,header_1:6,header_2:6,header_typ:[],hear:6,heard:[5,6],helium:0,hellman:[4,6,8],help:[0,4,6,7,8],her:4,here:[0,3,6],hexadecim:[0,6,7],high:[6,8],higher:[6,8],highli:6,hill:4,hint:0,hit:0,hmac:8,hoc:8,hold:[5,6],home:4,homebrew:3,hop:[4,5,6,7,8],hops_to:5,host:[0,6,7,8],hostnam:3,hour:0,how:[0,3,4,6,8],howev:[4,6],http:[0,1],human:[0,5],i:0,id:[3,5,6],id_callsign:3,id_interv:3,idea:6,ident:[0,2],identif:[2,3,8],identifi:[0,3,5,6],identify:6,identifyexampl:0,ie:[],ifconfig:7,ignor:[5,6],illustr:4,immedi:[1,7],impact:6,implement:[0,4,5,6,8],implicit:[5,6],inactive_for:5,inbound:5,includ:[0,1,2,3,5,6],incom:[0,3,5],incompat:[5,6],increas:3,incur:3,indefinit:6,independ:5,independt:8,index:[0,2],indirectli:6,individu:6,inevit:6,infer:6,info:[5,6],inform:[0,1,2,4,5,6],infrastructur:[4,6],ingo:5,initi:[0,4,5,6],initialis:[0,5,7],input:0,insert:6,inspect:4,instal:[1,3,4,7],instanc:[0,5,7],instanti:5,instead:[0,3,6,7],integr:[4,6],intend:[4,6],intention:6,inter:5,interact:[0,5,6],interconnect:2,interest:6,interfac:[0,1,2,4,5,6,7],interface_en:3,intern:[3,5,6],internet:[1,2,3,6,8],interv:[3,5],intiat:0,introduc:6,introduct:2,intuit:8,invalid:[0,5],investig:[4,6],involv:4,io:7,ip:[3,6,8],ipsum:[],is_request:[],is_respons:[],isdir:0,isfil:0,island:4,ism:6,its:[5,6],itself:[2,6],iv:8,job:0,join:[0,6],just:[0,4,6,8],k:0,kb:7,kbp:6,keep:[0,4,5,6,7,8],keepal:[5,6],kei:[0,2,4,5,8],kept:[3,4,5,6],kernel:[7,8],keyboardinterrupt:0,keyerror:5,keypair:6,keysiz:5,keystor:4,khz:3,ki:0,kill:5,kilomet:6,kind:[3,4,6],kiss:2,kissinterfac:3,know:[0,4,5,6],knowledg:[4,6],known:[0,5,6],krypton:0,lack:6,laid:6,lan:3,larg:[0,4,6],larger:6,laser:3,last:[0,3,5],last_unit:0,latenc:[6,8],later:0,latest:[0,1],latest_client_link:0,launch:1,lavg:6,layer:[3,4,6,8],lead:6,learn:[0,6],least:[6,8],leav:[4,6],ledger:6,left:[5,6],len:0,length:[0,5],less:[3,6,8],let:[0,4,6,7],level:6,librari:1,licens:6,light:6,like:[1,3,5,6,8],limit:6,line:[0,1,4,6,8],link:[2,4,8],link_clos:0,link_establish:0,linkexampl:0,linux:6,list:[0,5,6,8],list_deliv:0,list_fil:0,list_packet:0,list_receipt:0,list_timeout:0,listdir:0,listen:[0,3,6],listen_ip:3,listen_port:3,littl:6,lki:6,lkr:6,ll:[0,1,8],ln:1,load:[0,5,7],load_private_kei:5,load_public_kei:5,local:[0,1,3,4,5,6,8],locat:[1,4,6],log:0,log_error:0,log_info:0,loglevel:[0,5],longer:[0,4,6],longest:3,look:[0,1,6,7],loop:0,lora:[1,2,6,8],lorawan:6,lorem:[],lot:6,low:[3,4,6,8],lxmf:1,m:[0,6,7],mac:6,machin:6,made:[5,6],mai:[3,6],main:0,mainli:4,maintain:6,make:[1,6],malici:6,manag:5,mani:[0,3,4,6,7,8],manipul:6,manual:[0,1,3,5],mark:6,markqvist:[0,1],master:[0,5],match:[0,3],maximum:[5,6],mcu:6,mdu:0,mean:[6,7],measur:6,mechan:2,medium:[4,6,8],member:4,memori:6,mention:6,menu:0,menu_mod:0,mesh:[4,8],messag:[0,1,5,6,7],messeng:6,metavar:0,method:[0,5,6],methodolog:6,mhz:[3,6],mi:0,microcontrol:6,microwav:6,might:[3,4,6,7],millisecond:[0,7],mind:[4,8],minim:[2,6],minimalsampl:0,minimum:[0,4,6],minut:[0,6],mix:[3,4],mode:[0,1,6,8],modem:[3,4,5,6,8],modul:[0,6,7,8],moment:[6,8],monitor:6,moon:0,mor:[],more:[1,3,4,5,6,8],most:[1,3,4,6,8],motiv:2,move:1,mqtt:4,mtu:[5,6,8],much:6,multi:[6,8],multilater:6,multipl:[0,4,6,7],multipoint:6,must:[0,4,5,6],mw:3,my:6,mycal:3,n:0,name:[0,4,5,7],namespac:0,nano:1,narg:0,natur:3,necesarri:4,necessari:[1,5,6],necessarili:6,need:[0,1,2,3,4,6,7,8],neglig:6,neither:6,neon:0,netifac:1,network:[0,3,5,6,7,8],never:5,newer:6,newest:6,newli:[4,6],next:[1,4,5,6],next_hop:5,next_hop_interfac:5,nicknam:6,no1cll:3,no_inbound_for:5,no_outbound_for:5,nobl:0,noble_ga:0,noble_gas:0,node:[2,4,7,8],nomad:1,nomadnet:1,non:[5,6],none:[0,3,5,6],normal:0,notat:[6,7],note:[0,3,6,7],noth:8,notic:6,notif:[0,5],now:[0,1,4,6,7],nt:0,num:0,number:[0,1,3,4,5,6,7],object:5,obtain:6,occur:8,off:[6,8],offer:[2,3,5,6],often:[4,6,7],oganesson:0,old:6,onc:[0,4,5,6,8],one:[0,1,3,4,5,6,7,8],onli:[0,1,3,4,5,6,7,8],onlin:6,open:[0,3,5,6,7,8],openmodem:[3,8],oper:[4,5,6,8],opt:6,optic:8,optim:4,option:[0,1,3,4,5,7],orem:[],organis:4,orient:6,origin:[0,4,6],original_hash:[],os:[0,6,8],ospf:6,other:[1,3,4,5,6,7],otherwis:[5,6],our:[0,6],out:[0,3,4,5,6,8],outbound:5,outgo:[0,3,5,6],outli:4,outlier:4,outlin:[1,6],output:7,outward:6,over:[0,1,2,3,5,6,7,8],overal:6,overcom:6,overhead:[3,6],overrid:0,overview:[2,6],own:[0,1,4,5,6],owner:[],p:[0,6],pack:0,packb:0,packet:[0,1,2,3,4,7,8],packet_callback:0,packet_deliv:0,packet_receipt:[0,5],packet_timed_out:0,packet_typ:[],packetreceipt:[0,5],pad:8,page:[2,6],pair:[3,6],palm:0,paramet:[3,4,5],pariti:3,pars:0,parse_arg:0,parser:0,part:[0,4,6],particip:[2,6],pass:[0,3,4,5,6],path:[0,1,5,6,7],path_respons:5,pathfind:[],pathfinder_m:5,pattern:6,payload:[5,6],peach:0,peer:[0,1,3,5,6],peer_pub_byt:[],peer_sig_pub_byt:[],peopl:6,per:[5,6,8],percent:0,perfect:6,perform:[0,4,6],period:[3,6],persecut:6,persist:3,person:6,pet:0,philosophi:6,physic:6,pi:[0,4,6,8],piec:6,ping:[1,7],pip3:[1,7],pip:1,pkcs7:8,place:[4,6],plain:[0,3,5,6],plain_mdu:5,plaintext:[0,5],plan:4,platform:6,pleas:[0,7,8],plenti:6,plu:6,pmr:6,point:[4,6],pomelo:0,poorli:4,port:[3,4,6,8],posit:7,possess:6,possibl:[1,3,4,5,6,8],potenti:[0,6],power:3,practic:[6,8],pre:[3,5,6],preambl:3,predict:6,prefer:6,prepar:[0,4],prerequisit:5,presenc:5,preserv:5,press:0,pretend:6,pretti:6,prettyhexrep:0,previou:0,previous:[4,5,6],primari:6,principl:[6,8],print:0,print_filelist:0,print_help:0,print_menu:0,prioriti:6,prioritis:[2,4],privaci:8,privat:[3,5,6,8],privileg:7,probabl:[0,4,6,7,8],probe:7,procedur:6,process:[1,5,6],product:[],program:[0,2,5,6],program_setup:0,programm:6,programmat:6,progress:[0,5,8],progress_callback:5,project:1,prompt:0,proof:[0,5,6,7],proof_requested_callback:5,proof_strategi:5,propag:6,properti:5,protocol:[1,2,8],prove:[0,6],prove_al:[0,5],prove_app:5,prove_non:5,proven:[5,6],provid:[0,1,2,3,4,5,6,8],prv_byte:5,pub_byt:5,public_inform:0,purchas:[4,6,8],purg:5,purpos:[3,5,6],purposefulli:6,put:0,py:[0,1,7],pyseri:1,python3:[1,7],python:[6,7,8],q:[0,7],queri:0,queue:6,quiet:7,quinc:0,quit:0,r:[0,6],radio:[1,3,4,5,6,8],radiu:6,radon:0,rais:[0,5],ram:3,rand:6,randint:0,random:[0,5,6],random_text_gener:0,randomli:[0,6],rang:[0,1,3,4,6,8],raspberri:[4,6,8],rate:[0,3],rb:0,re:[0,3,5,6],reach:[2,4],reachabl:[0,4,5,6],read:[0,1,6],readabl:[0,5,6],readi:[0,1,4,5],readili:8,real:[4,8],realli:[3,5],reason:[3,6],reassembl:6,recal:[0,5],recall_app_data:5,recap:6,receipt:[0,2,6],receiv:[0,5,6,7],received_announc:[0,5],recip:1,recipi:6,recommend:[0,6],reconstruct:6,record:6,recreat:6,refer:[0,1,2],regard:6,regist:[0,5],register_announce_handl:[0,5],register_request_handl:[0,5],rel:[6,8],releas:[1,6],relev:[0,5],reli:6,reliabl:[4,6,8],rem:0,remain:6,rememb:6,remot:[0,5],remote_ident:[0,5],remote_identifi:0,remote_identity_hash:[],remote_p:0,remotesensor:6,repeat:1,replac:[1,6],repli:[0,7],replic:6,reply_data:0,reply_text:0,repositori:1,repres:6,represent:[0,6],request:[2,6,7],request_destin:0,request_fail:0,request_id:[0,5],request_packet:0,request_path:[0,5],request_receipt:[0,5],request_receiv:0,requested_at:[0,5],requestexampl:0,requestreceipt:5,requir:[0,4,6,7,8],research:8,resend:5,reserv:6,resili:8,resourc:[0,2],resource_callback:5,resource_sending_conclud:0,resource_strategi:5,respect:3,respond:[0,5],respons:[2,5],response_callback:[0,5],response_gener:[0,5],response_tim:[],rest:[4,8],result:[0,6],reticulum:[0,3,4],retransmiss:6,retransmit:6,retri:6,reveal:[5,6],review:8,right:4,rn:[0,1,5,7],rnode:[2,6,8],rnodeinterfac:3,rnpath:2,rnprobe:2,rnsd:2,rnstatu:2,robot:6,rotat:6,round:[0,5,7],rout:[4,5,6,8],rprogress:0,rsa:[],rtt:[0,5,6],rttstring:0,rule:6,run:[0,1,4,5,6,7,8],runtim:6,rw:6,rx:[3,7],s:[0,1,3,4,6,7,8],said:6,same:[1,3,5,6,7],satisfi:6,save:[5,6],save_error:0,saved_filenam:0,scenario:[1,2,6],screen:0,search:2,second:[0,3,5,6,8],secreci:[5,6,8],section:[3,4,6],secur:[6,8],see:[0,5,6,8],seen:6,segment:[3,4],segment_index:[],select:[0,3],self:[0,4,8],send:[0,3,5,6,7],sender:[0,4,6],sendig:0,sensibl:1,sensor:6,sent:[0,5,6,7],sentiment:6,separ:[4,6,7],sequenc:[0,5,6,8],serial:[2,6,8],serialinterfac:3,serv:[0,4,6],serve_path:0,server:[0,1,2],server_callback:0,server_destin:0,server_fil:0,server_ident:0,server_link:0,server_loop:0,server_packet_receiv:0,servic:[4,7],session:6,set:[0,3,4,5,6,8],set_default_app_data:5,set_delivery_callback:[0,5],set_link_closed_callback:0,set_link_established_callback:[0,5],set_packet_callback:[0,5],set_proof_requested_callback:5,set_proof_strategi:[0,5],set_remote_identified_callback:[0,5],set_resource_callback:5,set_resource_concluded_callback:[0,5],set_resource_started_callback:[0,5],set_resource_strategi:[0,5],set_timeout:[0,5],set_timeout_callback:[0,5],setdaemon:0,setup:[0,2,3],sever:[4,5,7],sha256:8,sha:[5,6],shall:6,share:[1,4,5,6,7],she:4,shelf:[6,8],shop:0,shortest:6,should:[0,3,4,5,6,8],should_allow_unencrypt:[],should_quit:0,should_use_implicit_proof:5,show:7,shown:0,side:8,sight:4,sign:[5,6],signatur:[5,6,8],significantli:[],similar:[4,7,8],simpl:[0,6,8],simplest:6,simpli:[0,1,4,6,7],simplic:6,sinc:[0,3,4,5,6],singl:[0,3,5,6,8],singular:6,site:2,situat:[4,6],size:[0,5,6],size_str:0,sleep:0,slice:0,slottim:3,slow:[0,3,6],small:[0,3,4,6,8],so:[0,1,3,4,5,6,7,8],softwar:[6,8],some:[0,1,4,6],someth:[3,6],somethign:0,soon:5,sort:6,sourc:[0,1,4,6,8],space:[0,4,8],span:6,special:[6,7],specif:[0,2,3,5,8],specifi:[0,1,3,4,5,7],spectrum:[3,6],speed:3,split:0,sponsor:8,spread:3,spreadingfactor:3,squelch:3,ssid:3,stabl:[6,8],stack:[0,1,4,6,7,8],stage:6,stai:[0,7],standard:6,start:[0,2,3,5,6,7],startup:0,state:0,station:[3,6],stationari:4,statist:0,statu:[0,2,5,6,7],stdout:0,step:1,still:[0,4,6],stock:0,stop:8,stopbit:3,store:[0,6],store_tru:0,str:0,strategi:5,stream:6,strength:8,strictli:6,string:[0,5],structur:6,subject:6,subnet:4,subsequ:6,successful:5,successfulli:0,sucessfulli:6,suffic:6,suffici:[6,7],suffix:0,suit:[1,6],suitabl:[0,3,4,6],suppli:[4,5,6],support:[0,2,4,6,8],sy:0,symlink:1,symmetr:[5,6],system:[0,2,5,8],t:[0,1,3,4,6],tabl:[4,6],tail:3,take:[0,1,6,8],taken:[0,6],tangerin:0,target:0,target_host:3,target_port:3,tcp:[1,2,4,6,8],tcpclientinterfac:3,tcpinterfac:7,tcpserverinterfac:3,tdata:0,teardown:[0,5],teardown_reason:0,teffect:0,tell:0,temperatur:6,ten:6,term:[4,6],termin:5,terminolog:[4,6],test:[3,6],testnet:7,text:[0,4,6],tfile:0,than:[0,4,6],thei:[0,4,5,6],them:[0,3,6],thereaft:6,therefor:[6,8],thi:[0,1,2,3,4,5,6,7],those:4,though:6,thourough:8,thread:0,three:[4,6],throough:3,throttl:4,through:[3,4,5,6,8],throughout:6,throughput:[6,8],thu:[4,5,6],ti:[0,6],time:[0,1,3,4,5,6,7],timeout:[0,5],timeout_callback:[],timeoutarg:0,timestr:0,tnc:[3,5,8],to_fil:5,todai:6,todo:[],togeth:6,token:[5,6],too:[0,4,6],tool:8,top:[4,6],topic:6,topographi:4,topolog:[3,6],total:[6,8],total_s:0,touch:8,toward:[0,6],tradit:4,traffic:[0,3,4,5,6],tramsit:[],transceiv:[3,6,8],transfer:[0,5,6,8],transfer_s:0,transmiss:[3,6],transmit:[0,3,6],transpar:[3,6],transport:[0,2,4,7,8],transport_en:5,transport_id:[],transport_typ:[],travers:6,treat:6,tri:0,trip:[0,5,7],trivial:8,truli:6,truncat:[5,6],truncated_hash:5,truncated_hashlength:5,trust:6,trustless:[6,8],ttime:0,ttransfer:0,ttyusb0:3,ttyusb1:3,ttyusb2:3,tunnel:[6,8],tupl:5,turnaround:3,two:[0,3,4,6],tx:[3,7],txpower:3,txtail:3,type:[0,2,3,4,5],typeerror:5,udp:[2,4,6,7,8],udpinterfac:[3,7],umsgpack:0,uncencrypt:0,underli:[4,8],understand:[1,2],unencrypt:[0,5,6],unequivoc:6,unforg:8,unidentifi:0,unifi:4,uninterest:0,uniqu:[6,8],unit:0,unknown:[0,5,6],unless:[1,5,6],unlicens:6,unpack:0,unpackb:0,unsign:7,unsupport:5,until:[0,5,6],unwant:6,up:[0,4,6,7,8],updat:[0,5],upon:[0,6],upset:0,urandom:8,us:[0,2,3,4,5,6],usabl:6,usag:7,usb:[4,6,8],useabl:6,user:[0,1,4,6],user_input:0,userland:8,utf:0,util:[0,1,2,6],utilis:[4,6,7,8],v:7,valid:[0,3,5,6,7],valu:[5,6],valueerror:[0,5],variabl:0,varieti:[3,6,8],variou:[0,6],ve:1,vendor:0,verbos:7,veri:[4,5,6,7,8],verif:[5,6],verifi:[0,5,6],versa:[4,8],version:7,vhf:[4,6],via:[1,6,7],vice:[4,8],view:[6,7],virtual:4,visibl:0,wa:[0,4,5,6,8],wai:[0,1,3,4,6],wait:[0,6],want:[0,1,3,4,6,7,8],warrant:8,wast:3,wb:0,we:[0,3,6],well:[4,5,6,8],went:0,were:4,what:[0,1,2,5,6],whatev:[5,6],when:[0,1,3,4,5,6,7],whenev:5,where:[2,4,5,6],whereupon:6,whether:[0,3,5,6],which:[0,1,4,5,6],who:6,wide:[6,8],wifi:[4,6,8],wildcard:0,willing:4,window:6,wire:[3,6,8],wireless:4,wish:6,within:[0,1,3,4,5,6],without:4,won:0,work:[6,7,8],world:[4,8],worri:4,would:[3,4,6],write:[0,5],written:6,wrong:0,x25519:[5,6,8],x:6,xenon:0,y:0,ye:6,year:6,yet:[0,6],yi:0,you:[0,1,2,3,4,5,6,7,8],your:[0,1,2,3,4,6,8],yourself:[6,8],z:0,zero:[5,8],zeromq:4,zi:0},titles:["Code Examples","Getting Started Fast","Reticulum Network Stack Manual","Supported Interfaces","Building Networks","API Reference","Understanding Reticulum","Using Reticulum on Your System","What is Reticulum?"],titleterms:{"1":[],"2":[],"25":3,"class":5,"function":6,"public":6,"try":1,The:[6,7],With:1,announc:[0,6],api:5,ax:3,base:1,basic:6,binari:6,bridg:4,broadcast:0,build:4,can:8,caveat:8,client:3,code:0,concept:4,converg:4,creat:1,current:8,deliveri:[],destin:[5,6],detail:6,develop:1,devic:8,doe:8,echo:0,emptor:8,establish:6,exampl:[0,4],fast:1,filetransf:0,format:6,further:6,get:[1,6],gipsum:[],goal:6,growth:4,ident:[5,6],identif:0,includ:7,indic:2,interconnect:4,interfac:[3,8],internet:4,introduct:6,kei:6,kiss:3,link:[0,5,6],lora:[3,4],manual:2,mechan:6,minim:0,motiv:6,name:6,network:[1,2,4],node:6,offer:8,orem:[],over:4,overview:4,packet:[5,6],particip:1,pathfind:[],prioritis:6,program:[1,7],protocol:6,proven:[],reach:6,receipt:5,refer:[5,6],request:[0,5],resourc:[5,6],respons:0,reticulum:[1,2,5,6,7,8],rnode:3,rnpath:7,rnprobe:7,rnsd:7,rnstatu:7,scenario:4,serial:3,server:3,setup:6,site:4,specif:6,stack:2,start:1,statu:8,step:[],support:3,system:[6,7],tabl:2,tcp:3,transport:[5,6],type:[6,8],udp:3,understand:6,us:[1,7,8],util:7,what:8,where:8,your:7}})
\ No newline at end of file
+Search.setIndex({docnames:["examples","gettingstartedfast","index","interfaces","networks","reference","understanding","using","whatis"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":3,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["examples.rst","gettingstartedfast.rst","index.rst","interfaces.rst","networks.rst","reference.rst","understanding.rst","using.rst","whatis.rst"],objects:{"RNS.Destination":{announce:[5,1,1,""],app_and_aspects_from_name:[5,1,1,""],clear_default_app_data:[5,1,1,""],create_keys:[5,1,1,""],decrypt:[5,1,1,""],deregister_request_handler:[5,1,1,""],encrypt:[5,1,1,""],full_name:[5,1,1,""],get_private_key:[5,1,1,""],hash:[5,1,1,""],hash_from_name_and_identity:[5,1,1,""],load_private_key:[5,1,1,""],register_request_handler:[5,1,1,""],set_default_app_data:[5,1,1,""],set_link_established_callback:[5,1,1,""],set_packet_callback:[5,1,1,""],set_proof_requested_callback:[5,1,1,""],set_proof_strategy:[5,1,1,""],sign:[5,1,1,""]},"RNS.Identity":{CURVE:[5,2,1,""],KEYSIZE:[5,2,1,""],TRUNCATED_HASHLENGTH:[5,2,1,""],decrypt:[5,1,1,""],encrypt:[5,1,1,""],from_bytes:[5,1,1,""],from_file:[5,1,1,""],full_hash:[5,1,1,""],get_private_key:[5,1,1,""],get_public_key:[5,1,1,""],get_random_hash:[5,1,1,""],load_private_key:[5,1,1,""],load_public_key:[5,1,1,""],recall:[5,1,1,""],recall_app_data:[5,1,1,""],sign:[5,1,1,""],to_file:[5,1,1,""],truncated_hash:[5,1,1,""],validate:[5,1,1,""]},"RNS.Link":{CURVE:[5,2,1,""],ESTABLISHMENT_TIMEOUT_PER_HOP:[5,2,1,""],KEEPALIVE:[5,2,1,""],get_remote_identity:[5,1,1,""],identify:[5,1,1,""],inactive_for:[5,1,1,""],no_inbound_for:[5,1,1,""],no_outbound_for:[5,1,1,""],request:[5,1,1,""],set_packet_callback:[5,1,1,""],set_remote_identified_callback:[5,1,1,""],set_resource_callback:[5,1,1,""],set_resource_concluded_callback:[5,1,1,""],set_resource_started_callback:[5,1,1,""],set_resource_strategy:[5,1,1,""],teardown:[5,1,1,""]},"RNS.Packet":{ENCRYPTED_MDU:[5,2,1,""],PLAIN_MDU:[5,2,1,""],resend:[5,1,1,""],send:[5,1,1,""]},"RNS.PacketReceipt":{get_rtt:[5,1,1,""],get_status:[5,1,1,""],set_delivery_callback:[5,1,1,""],set_timeout:[5,1,1,""],set_timeout_callback:[5,1,1,""]},"RNS.RequestReceipt":{get_progress:[5,1,1,""],get_request_id:[5,1,1,""],get_response:[5,1,1,""],get_response_time:[5,1,1,""],get_status:[5,1,1,""]},"RNS.Resource":{advertise:[5,1,1,""],cancel:[5,1,1,""],get_progress:[5,1,1,""]},"RNS.Reticulum":{MTU:[5,2,1,""],should_use_implicit_proof:[5,1,1,""],transport_enabled:[5,1,1,""]},"RNS.Transport":{PATHFINDER_M:[5,2,1,""],deregister_announce_handler:[5,1,1,""],has_path:[5,1,1,""],hops_to:[5,1,1,""],next_hop:[5,1,1,""],next_hop_interface:[5,1,1,""],register_announce_handler:[5,1,1,""],request_path:[5,1,1,""]},RNS:{Destination:[5,0,1,""],Identity:[5,0,1,""],Link:[5,0,1,""],Packet:[5,0,1,""],PacketReceipt:[5,0,1,""],RequestReceipt:[5,0,1,""],Resource:[5,0,1,""],Reticulum:[5,0,1,""],Transport:[5,0,1,""]}},objnames:{"0":["py","class","Python class"],"1":["py","method","Python method"],"2":["py","attribute","Python attribute"]},objtypes:{"0":"py:class","1":"py:method","2":"py:attribute"},terms:{"0":[0,3,5,6,7,8],"00":6,"000":[6,8],"00000000":6,"00000100":6,"00000111":6,"01":[6,7],"01010000":6,"02":7,"05":0,"07":7,"1":[0,3,5,6,7,8],"10":[0,3,6],"100":[0,6],"1000":[0,6],"1024":0,"11":6,"115200":3,"12":3,"1200":6,"125":3,"125000":3,"127":3,"128":[5,6,8],"13":7,"14":6,"141":[],"15":[3,6],"150":3,"150m":3,"151":6,"16":[3,7],"18":6,"180":6,"182":[],"2":[0,3,6,7],"20":[0,3,6],"200":3,"2000000":[],"205":[],"211":[],"237":[6,8],"24":3,"240":[],"25":[0,2,8],"255":3,"256":[5,6],"270":6,"2f":0,"3":[0,6,8],"323":[],"33":6,"34":6,"360":5,"3600":0,"37":7,"37428":7,"38":7,"383":5,"3e12fc71692f8ec47bc5":1,"4":[6,7],"409":[],"4242":[3,7],"430":6,"45":0,"469":7,"477":[5,6],"4965":7,"5":[0,3,5,6],"500":[5,6,8],"512":5,"55":3,"56b115c30cd386cad69c":7,"60":0,"600":3,"62":[6,8],"7":[3,6],"72":3,"77":6,"7ca6f4e4dc26ae329e61":[],"8":[0,3],"80":[5,6],"80e29bf7cccaf31431b3":6,"83":6,"86":[],"867":3,"867200000":3,"868":6,"88":3,"9":7,"900":6,"9382f334de63217a4278":7,"95":6,"abstract":6,"break":[5,6,8],"byte":[0,5,6,7,8],"case":[1,3,4,6,7],"class":[0,2,8],"default":[0,1,3,4,5,6,7],"do":[0,1,3,5,6,7,8],"float":[0,5],"function":[0,2,3,4,5,8],"import":[0,1,4,6],"int":0,"long":[0,3,6],"new":[0,3,4,5,6],"public":[0,2,5],"return":[0,5],"short":6,"static":5,"throw":[],"true":[0,3,5],"try":[0,2],"while":[0,4,5,6,8],A:[0,3,4,5,6,8],And:0,As:[4,5,6,8],At:[4,6],Be:5,But:6,By:[0,3,5,6],For:[3,4,5,6,8],IN:[0,5],If:[0,1,3,4,5,6,7,8],In:[0,1,3,4,5,6,7,8],It:[0,3,5,6,8],No:[6,8],On:0,One:5,Or:[3,6],That:6,The:[0,1,2,3,4,5,8],There:[4,6,8],These:[3,6],To:[0,1,3,4,6,7,8],Will:5,With:[2,3,4,6,7],_:6,__:6,______:6,_______:6,________:6,________________:6,__init__:0,__main__:0,__name__:0,_exit:0,ab:0,abl:[0,4,5,6],about:[0,1,4,5,6],abov:[1,3,6],absolut:[],accept:[5,6],accept_al:[0,5],accept_app:5,accept_non:5,access:[5,6,7],accord:6,accordingli:0,acheiv:6,achiev:[5,6],acknowledg:8,across:4,act:[5,6],action:0,activ:[0,1,5,6],actor:6,actual:[0,1,3,6],ad:[0,4,5,6,8],adapt:4,add:[0,1,3,4],add_argu:0,addit:[6,8],addr1:6,addr2:6,address:[0,3,4,5,6,8],adher:5,adress:[0,4,5,8],advantag:5,advertis:[0,5],advis:6,ae:[6,8],after:[0,4,6],again:[1,6],against:6,agent:6,agnost:[4,6],agnostic:6,aim:[2,6],air:8,airtim:3,aliv:[5,6],all:[0,2,3,4,5,6,7,8],allow:[0,1,3,4,5,6,7,8],allow_al:[0,5],allow_list:5,allow_non:5,allowed_list:5,almost:6,along:[4,6],alreadi:[0,4,6],also:[0,3,4,5,6,7,8],alter:[3,6],altern:[0,3,7],although:8,alwai:[5,6],amateur:[3,8],amount:[3,4,5,6,8],an:[0,1,3,4,5,6,8],ani:[0,1,3,4,5,6,7,8],announc:[2,5],announce_handl:0,announced_ident:[0,5],announceloop:0,announcesampl:0,anonym:[4,5,6],anoth:[1,5,6,7],answer:[6,7],anyon:[0,4,5,6],anyth:[3,6],anywher:0,apart:6,api:[1,2,6,8],app:[0,5,6],app_and_aspects_from_nam:5,app_data:[0,5],app_nam:[0,5],app_timeout:0,append:[0,6],appli:6,applic:[0,5,6,7],approach:7,approv:6,approxim:6,ar:[0,1,3,4,5,6,7,8],arbitrari:[5,6],arbritrari:8,area:[3,4,8],arg:0,argon:0,argpars:0,argument:[0,5,7],argumentpars:0,around:6,arriv:[0,6],ask:[0,5],aspect:[0,5,6],aspect_filt:[0,5],assign:6,associ:[1,5,6],assum:[3,6],asymmetr:8,attached_interfac:[],attempt:5,attribut:5,audit:8,authent:[5,6,8],author:6,auto:[5,6],auto_compress:5,autoconfigur:8,autom:6,automat:[0,3,4,5,6,7,8],autonom:[4,6],autoomat:0,avail:[0,1,3,4,6,7,8],availadbl:[],averag:6,avoid:6,awai:[0,4,6,7],awar:6,ax25kissinterfac:3,ax:[2,8],b:[0,4],back:[0,6,8],background:1,backhaul:4,band:6,bandwidth:[3,4,6,8],bare:0,barrier:6,base:[2,4,5,6,8],basi:[5,6,8],basic:[0,1,2],baud:[3,6],beacon:3,becaus:[4,6],becki:0,becom:[0,4],been:[0,3,4,5,6,8],befor:[0,5,6],begin:[0,5],begun:5,behind:6,being:[3,5,6],belief:6,below:[1,3],best:[1,6,8],beta:8,between:[0,4,5,6],bgp:6,bi:6,bidirect:6,billion:4,binari:[0,2],bind:3,bit:[5,6,8],blob:[0,6],board:8,both:[3,4,5,6,8],bp:6,bridg:2,briefli:6,broadcast:[1,2,3,5,6],broadcast_destin:0,broadcastloop:0,brought:7,buffer:3,bug:8,build:[0,1,2,3,6,8],built:[1,6,8],bundl:0,c:[0,4,6],cabl:4,cad:6,calcul:[5,6],call:[0,4,5,6,8],callabl:5,callback:[0,5],callsign:3,can:[0,1,2,3,4,5,6,7],cancel:5,candid:4,cannot:0,capac:6,carambola:0,care:[5,6,8],carri:[5,6],carrier:[4,8],caveat:2,cb:6,cbc:8,cd:1,cdma:3,censor:6,censorship:6,central:[4,6],certain:[0,3,4,6],challeng:6,chang:[0,1,5,6,8],channel:[0,3,4,6,8],channelarg:0,chapter:[1,3,4,6,8],charact:0,characterist:6,cheap:6,check:[0,1,5],checksum:[5,8],choos:[0,3],chose:6,chosen:4,chunk:0,ciphertext:5,ciphertext_token:5,cl:0,clear:[0,5,6],clear_default_app_data:5,clear_screen:0,client:[0,1,2,5],client_connect:0,client_disconnect:0,client_ident:0,client_loop:0,client_packet_receiv:0,client_request:0,clone:1,close:[0,5],closed_callback:5,closer:6,cluster:6,code:[2,3,6],codingr:3,com:[0,1],combin:[4,6],come:[1,6],command:[0,1,7],comment:3,common:[3,6],commun:[0,1,3,4,5,6,7,8],compat:[5,6],complet:[0,1,4,5,6,8],compon:6,compos:6,compress:[0,5,6],comput:[1,6,8],concaten:5,concept:[2,6],conclud:[0,5],concurr:[6,7],condit:6,config:[0,1,4,7],configarg:0,configdir:5,configpath:0,configur:[0,1,3,4,5,6,7,8],confirm:[6,8],connect:[0,1,3,4,5,6,7,8],consequ:6,consid:[3,6,8],consist:6,constant:[5,6],construct:6,contact:6,contain:[0,4,5,6],content:4,context:6,control:[0,3,4,5,6],conveni:0,convent:0,converg:2,coordin:[4,5,6,8],core:[4,6,8],correct:[0,6],correctli:0,correspond:6,cost:[6,8],could:[0,4,5,6,8],count:6,counter:0,cours:3,cover:8,coverag:4,cpu:0,creat:[0,2,3,5,6],create_kei:5,create_receipt:[0,5],creation:6,creator:6,critic:6,cryptograph:[4,8],cryptographi:[1,6,8],ctrl:0,cull:5,current:[0,2,3,5,6],current_download:0,current_filenam:0,curv:[4,5,6,8],curve25519:[4,5,6,8],custom:[5,6],d:[4,6],daemon:[5,7],dai:[4,6],data:[0,3,4,5,6,8],databit:3,date:0,dbm:3,debian:6,debug:[],decai:6,decid:[4,5,6],decod:0,decrypt:[5,6],dedic:6,def:0,default_timeout:[],defin:[0,3,6],definit:6,degrad:4,delai:6,deliv:[0,5],deliveri:[0,5,8],demand:5,demonstr:[0,3],depend:[1,4,7],deploi:6,deregist:5,deregister_announce_handl:5,deregister_request_handl:5,deriv:[6,8],describ:[3,5,6],descript:0,design:[4,6,8],desir:[0,6],destin:[0,1,2,4,7],destination_1:0,destination_2:0,destination_clos:0,destination_hash:[0,5,7],destination_hexhash:0,detail:[0,2,5,8],detect:0,determin:[5,6],dev:3,develop:[2,6,8],devic:[2,3,4,5,6],dh:5,did:0,differ:[0,1,3,4,5,6,7,8],diffi:[4,6,8],digit:[6,8],dir:0,direct:[0,4,5,6],directli:[3,5,6,8],directori:[0,7],disabl:3,disable_encrypt:[],disappear:[],discard:6,disconnect:0,discoveri:[6,7],discrimin:4,discuss:6,disk:[0,5],displai:[0,6],distanc:6,distinct:[3,6],distribut:[0,4,5,6,7],divmod:0,document:6,doe:[0,2,4,5,6],doesn:3,domain:[1,3],don:[0,1,4],done:[0,1,4,6],dori:4,dot:[6,7],down:0,downgrad:[],download:0,download_began:0,download_conclud:0,download_finish:0,download_start:0,download_tim:0,driver:[7,8],drop:6,due:4,duplex:[6,8],e:[0,4],each:[0,4,6],earlier:6,eas:6,easi:[3,6,7,8],easier:[1,4],easiest:[1,6],easili:[6,8],eca6f4e4dc26ae329e61:7,ecdh:[6,8],echo:[1,2,7],echo_destin:0,echo_request:0,ed25519:[6,8],effici:[0,3,6,8],ei:0,either:[3,4,6],elaps:3,elif:0,ellipt:[4,5,6,8],els:[0,4,6],emploi:6,emptor:2,enabl:[3,4,5,7],enable_transport:6,encapsul:[3,8],encod:0,encrypt:[0,1,4,5,6,8],encrypted_mdu:5,encryptionless:[],end:[0,4,5,6,8],endless:3,endpoint:[0,4,5,6],engin:6,enough:1,ensur:6,enter:0,entir:[4,6],entiti:6,entri:[0,6],enumer:0,environ:6,environment:6,environmentlogg:6,ephemer:[4,5,6,8],equal:[4,6],equip:[4,6],equival:3,equl:[],error:0,essenti:6,establish:[0,5,8],established_callback:5,establishment_timeout_per_hop:5,eth0:3,ethernet:[1,4,6,8],even:[4,6,7,8],everi:[0,3,4,5,6],everyon:[4,6],everyth:[0,4,6],evolv:4,exact:6,exactli:[5,6],exampl:[1,2,3,5,6,7,8],example_util:[0,7],exampleannouncehandl:0,exce:0,except:[0,6],exchang:[4,5,6,8],execut:[0,5],exhaust:6,exist:[0,1,3,6,8],exit:[0,1,5,7],exit_handl:0,expand:6,expect:[0,5,6,7],experi:[1,6],experiment:8,explain:5,explan:6,explicit:5,explicitli:[],explor:[0,6,8],expos:5,extend:[0,6],extern:[5,8],extra:[3,4],extrem:8,fa7ddfab5213f916dea:6,face:1,fact:[6,8],factor:3,fail:[0,5],failed_callback:[0,5],fals:[0,3,5],far:[4,6],fast:2,fastest:3,featur:[6,8],feed:5,feedback:0,fernet:8,few:[4,6,8],field:6,file:[0,1,4,5,6,8],file_resourc:0,file_s:0,filelist:0,filelist_data:0,filelist_receiv:0,filelist_timeout_job:0,filenam:0,filetransf:[1,2,5],filter:[0,4,6],find:[4,6],firmwar:6,first:[0,1,5,6],fit:0,five:0,fix:6,flag:[5,6],flow:[3,4],flow_control:3,flush:0,folder:1,follow:[0,3,6,8],forcibl:5,foreground:1,foremost:8,form:[3,4,5,6],format:[0,2,8],forth:0,forward:[3,5,6,8],forward_ip:3,forward_port:3,found:[0,1,4,6,7],four:4,frankfurt:7,free:8,frequenc:[3,6],friendli:8,from:[0,1,3,4,5,6,7,8],from_byt:5,from_fil:5,fromhex:0,fruit:0,full:[0,3,5,6,7,8],full_hash:5,full_nam:[5,7],fulli:[6,8],funcion:5,fundament:6,further:[1,2],futur:[4,6],g:0,ga:0,gatekeep:6,gatewai:4,gen:[],gener:[0,4,5,6,8],generalis:8,geograph:4,get:[0,2,3,5,8],get_private_kei:5,get_progress:[0,5],get_public_kei:5,get_random_hash:[0,5],get_remote_ident:[0,5],get_request_id:5,get_respons:5,get_response_tim:5,get_rtt:[0,5],get_statu:5,gi:0,gigabyt:8,gipsum:[],git:1,github:[0,1],give:[3,6],given:[4,6],global:[0,4,8],go:[0,1,6],goal:2,good:[4,6],got:0,got_respons:0,govern:6,grape:0,great:6,greater:6,group:[5,6],grow:4,growth:2,guarante:6,guid:[1,5,6],h:[1,6,7],ha:[0,3,4,5,6,8],had:6,half:[6,8],hand:0,handheld:6,handl:[0,4,5,6,7,8],handler:[0,5],happen:[0,5],hardlin:4,hardwar:[4,5,6,8],has_path:[0,5],hasattr:0,hash:[0,1,5,6,7],hash_from_name_and_ident:5,hashmap:0,have:[0,1,3,4,5,6,7],hazard:5,header:6,header_1:6,header_2:6,header_typ:[],hear:6,heard:[5,6],helium:0,hellman:[4,6,8],help:[0,4,6,7,8],her:4,here:[0,3,6],hexadecim:[0,6,7],high:[3,6,8],higher:[6,8],highli:6,hill:4,hint:0,hit:0,hmac:8,hoc:8,hold:[5,6],home:4,homebrew:3,hop:[4,5,6,7,8],hops_to:5,host:[0,6,7,8],hostnam:3,hour:0,how:[0,3,4,6,8],howev:[4,6],http:[0,1],human:[0,5],i:0,id:[3,5,6],id_callsign:3,id_interv:3,idea:6,ident:[0,2],identif:[2,3,8],identifi:[0,3,5,6],identify:6,identifyexampl:0,ie:[],ifconfig:7,ignor:[5,6],illustr:4,immedi:[1,7],impact:6,implement:[0,4,5,6,8],implicit:[5,6],inactive_for:5,inbound:5,includ:[0,2,3,5,6],incom:[0,3,5],incompat:[5,6],increas:3,incur:3,indefinit:6,independ:5,independt:8,index:[0,2],indirectli:6,individu:6,inevit:6,infer:6,info:[5,6],inform:[0,1,2,4,5,6],infrastructur:[4,6],ingo:5,initi:[0,4,5,6],initialis:[0,5,7],input:0,insert:6,inspect:4,instal:[1,3,4,7],instanc:[0,5,7],instanti:5,instead:[0,3,6,7],integr:[4,6],intend:[4,6],intention:6,inter:5,interact:[0,5,6],interconnect:2,interest:6,interfac:[0,1,2,4,5,6,7],interface_en:3,intern:[3,5,6],internet:[1,2,3,6,8],interv:[3,5],intiat:0,introduc:6,introduct:2,intuit:8,invalid:[0,5],investig:[4,6],involv:4,io:7,ip:[3,6,8],ipsum:[],is_request:[],is_respons:[],isdir:0,isfil:0,island:4,ism:6,its:[5,6],itself:[2,6],iv:8,job:0,join:[0,6],just:[0,4,6,8],k:0,kb:7,kbp:6,keep:[0,4,5,6,7,8],keepal:[5,6],kei:[0,2,4,5,8],kept:[3,4,5,6],kernel:[7,8],keyboardinterrupt:0,keyerror:5,keypair:6,keysiz:5,keystor:4,khz:3,ki:0,kill:5,kilomet:6,kind:[3,4,6],kiss:2,kissinterfac:3,know:[0,4,5,6],knowledg:[4,6],known:[0,5,6],krypton:0,lack:6,laid:6,lan:3,larg:[0,4,6],larger:6,laser:3,last:[0,3,5],last_unit:0,latenc:[6,8],later:0,latest:[0,1],latest_client_link:0,launch:1,lavg:6,layer:[3,4,6,8],lead:6,learn:[0,1,6],least:[6,8],leav:[4,6],ledger:6,left:[5,6],len:0,length:[0,5],less:[3,6,8],let:[0,4,6,7],level:[3,6],librari:1,licens:6,light:6,like:[1,3,5,6,8],limit:6,line:[0,1,4,6,8],link:[2,4,8],link_clos:0,link_establish:0,linkexampl:0,linux:6,list:[0,5,6,8],list_deliv:0,list_fil:0,list_packet:0,list_receipt:0,list_timeout:0,listdir:0,listen:[0,3,6],listen_ip:3,listen_port:3,littl:6,lki:6,lkr:6,ll:[0,1,8],ln:1,load:[0,5,7],load_private_kei:5,load_public_kei:5,local:[0,1,3,4,5,6,8],locat:[1,4,6],log:0,log_error:0,log_info:0,loglevel:[0,5],longer:[0,4,6],longest:3,look:[0,1,3,6,7],loop:0,lora:[1,2,6,8],lorawan:6,lorem:[],lot:6,low:[3,4,6,8],lxmf:1,m:[0,6,7],mac:6,machin:6,made:[5,6],mai:[3,6],main:0,mainli:4,maintain:6,make:[1,6],malici:6,manag:[1,5],mani:[0,3,4,6,7,8],manipul:6,manual:[0,1,3,4,5],mark:6,markqvist:[0,1],master:[0,5],match:[0,3],maximum:[5,6],mcu:6,mdu:0,mean:[6,7],measur:6,mechan:2,medium:[4,6,8],member:4,memori:6,mention:6,menu:0,menu_mod:0,mesh:[4,8],messag:[0,1,5,6,7],messeng:6,metavar:0,method:[0,5,6],methodolog:6,mhz:[3,6],mi:0,microcontrol:6,microwav:6,might:[3,4,6,7],millisecond:[0,7],mind:[4,8],minim:[2,6],minimalsampl:0,minimum:[0,4,6],minut:[0,6],mix:[3,4],mode:[0,1,6,8],modem:[3,4,5,6,8],modul:[0,6,7,8],moment:[6,8],monitor:6,moon:0,mor:[],more:[1,3,4,5,6,8],most:[1,3,4,6,8],motiv:2,move:1,mqtt:4,mtu:[5,6,8],much:6,multi:[6,8],multilater:6,multipl:[0,4,6,7],multipoint:6,must:[0,4,5,6],mw:3,my:6,mycal:3,n:0,name:[0,4,5,7],namespac:0,nano:1,narg:0,natur:3,necesarri:4,necessari:[1,5,6],necessarili:6,need:[0,1,2,3,4,6,7,8],neglig:6,neither:6,neon:0,netifac:1,network:[0,3,5,6,7,8],never:5,newer:6,newest:6,newli:[4,6],next:[1,4,5,6],next_hop:5,next_hop_interfac:5,nicknam:6,no1cll:3,no_inbound_for:5,no_outbound_for:5,nobl:0,noble_ga:0,noble_gas:0,node:[2,4,7,8],nomad:1,nomadnet:1,non:[5,6],none:[0,3,5,6],normal:0,notat:[6,7],note:[0,3,6,7],noth:8,notic:6,notif:[0,5],now:[0,1,4,6,7],nt:0,num:0,number:[0,1,3,4,5,6,7],object:5,obtain:6,occur:8,off:[6,8],offer:[2,3,5,6],often:[4,6,7],oganesson:0,old:6,onc:[0,4,5,6,8],one:[0,1,3,4,5,6,7,8],onli:[0,1,3,4,5,6,7,8],onlin:6,open:[0,3,5,6,7,8],openmodem:[3,8],oper:[4,5,6,8],opt:6,optic:8,optim:4,option:[0,1,3,4,5,7],orem:[],organis:4,orient:6,origin:[0,4,6],original_hash:[],os:[0,6,8],ospf:6,other:[1,3,4,5,6,7],otherwis:[5,6],our:[0,6],out:[0,3,4,5,6,8],outbound:5,outgo:[0,3,5,6],outli:4,outlier:4,outlin:[1,6],output:7,outward:6,over:[0,1,2,3,5,6,7,8],overal:6,overcom:6,overhead:[3,6],overrid:0,overview:[2,3,6],own:[0,1,4,5,6],owner:[],p:[0,6],pack:0,packb:0,packet:[0,1,2,3,4,7,8],packet_callback:0,packet_deliv:0,packet_receipt:[0,5],packet_timed_out:0,packet_typ:[],packetreceipt:[0,5],pad:8,page:[2,6],pair:[3,6],palm:0,paramet:[3,4,5],pariti:3,pars:0,parse_arg:0,parser:0,part:[0,4,6],particip:[2,6],pass:[0,3,4,5,6],path:[0,1,5,6,7],path_respons:5,pathfind:[],pathfinder_m:5,pattern:6,payload:[5,6],peach:0,peer:[0,1,3,5,6],peer_pub_byt:[],peer_sig_pub_byt:[],peopl:6,per:[5,6,8],percent:0,perfect:6,perform:[0,4,6],period:[3,6],persecut:6,persist:3,person:6,pet:0,philosophi:6,physic:6,pi:[0,4,6,8],piec:6,ping:[1,7],pip3:[1,7],pip:1,pkcs7:8,place:[4,6],plain:[0,3,5,6],plain_mdu:5,plaintext:[0,5],plan:4,platform:6,pleas:[0,7,8],plenti:6,plu:6,pmr:6,point:[4,6],pomelo:0,poorli:4,port:[3,4,6,8],posit:7,possess:6,possibl:[1,3,4,5,6,8],potenti:[0,6],power:3,practic:[6,8],pre:[3,5,6],preambl:3,predict:6,prefer:6,prepar:[0,4],prerequisit:5,presenc:5,preserv:5,press:0,pretend:6,pretti:6,prettyhexrep:0,previou:0,previous:[4,5,6],primari:6,principl:[6,8],print:0,print_filelist:0,print_help:0,print_menu:0,prioriti:6,prioritis:[2,4],privaci:8,privat:[3,5,6,8],privileg:7,probabl:[0,4,6,7,8],probe:7,procedur:6,process:[1,5,6],product:[],program:[0,2,5,6],program_setup:0,programm:6,programmat:6,progress:[0,5,8],progress_callback:5,project:1,prompt:0,proof:[0,5,6,7],proof_requested_callback:5,proof_strategi:5,propag:6,properti:5,protocol:[1,2,8],prove:[0,6],prove_al:[0,5],prove_app:5,prove_non:5,proven:[5,6],provid:[0,1,2,3,4,5,6,8],prv_byte:5,pub_byt:5,public_inform:0,purchas:[4,6,8],purg:5,purpos:[3,5,6],purposefulli:6,put:0,py:[0,1,7],pyseri:1,python3:[1,7],python:[6,7,8],q:[0,7],queri:[0,1],queue:6,quiet:7,quinc:0,quit:0,r:[0,6],radio:[1,3,4,5,6,8],radiu:6,radon:0,rais:[0,5],ram:3,rand:6,randint:0,random:[0,5,6],random_text_gener:0,randomli:[0,6],rang:[0,1,3,4,6,8],raspberri:[4,6,8],rate:[0,3],rb:0,re:[0,3,5,6],reach:[2,4],reachabl:[0,4,5,6],read:[0,1,6],readabl:[0,5,6],readi:[0,1,4,5],readili:8,real:[4,8],realli:[3,5],reason:[3,6],reassembl:6,recal:[0,5],recall_app_data:5,recap:6,receipt:[0,2,6],receiv:[0,5,6,7],received_announc:[0,5],recip:1,recipi:6,recommend:[0,6],reconstruct:6,record:6,recreat:6,refer:[0,1,2],regard:6,regist:[0,5],register_announce_handl:[0,5],register_request_handl:[0,5],rel:[6,8],releas:[1,6],relev:[0,5],reli:6,reliabl:[4,6,8],rem:0,remain:6,rememb:6,remot:[0,5],remote_ident:[0,5],remote_identifi:0,remote_identity_hash:[],remote_p:0,remotesensor:6,repeat:1,replac:[1,6],repli:[0,7],replic:6,reply_data:0,reply_text:0,repositori:1,repres:6,represent:[0,6],request:[2,6,7],request_destin:0,request_fail:0,request_id:[0,5],request_packet:0,request_path:[0,5],request_receipt:[0,5],request_receiv:0,requested_at:[0,5],requestexampl:0,requestreceipt:5,requir:[0,4,6,7,8],research:8,resend:5,reserv:6,resili:8,resourc:[0,2],resource_callback:5,resource_sending_conclud:0,resource_strategi:5,respect:3,respond:[0,5],respons:[2,5],response_callback:[0,5],response_gener:[0,5],response_tim:[],rest:[4,8],result:[0,6],reticulum:[0,3,4],retransmiss:6,retransmit:6,retri:6,reveal:[5,6],review:8,right:4,rn:[0,1,5,7],rnode:[2,6,8],rnodeinterfac:3,rnpath:[1,2],rnprobe:[1,2],rnsd:[1,2],rnstatu:[1,2],robot:6,rotat:6,round:[0,5,7],rout:[4,5,6,8],rprogress:0,rsa:[],rtt:[0,5,6],rttstring:0,rule:6,run:[0,1,4,5,6,7,8],runtim:6,rw:6,rx:[3,7],s:[0,1,3,4,6,7,8],said:6,same:[1,3,5,6,7],satisfi:6,save:[5,6],save_error:0,saved_filenam:0,scenario:[1,2,6],screen:0,search:2,second:[0,3,5,6,8],secreci:[5,6,8],section:[3,4,6],secur:[6,8],see:[0,4,5,6,8],seen:6,segment:[3,4],segment_index:[],select:[0,3],self:[0,4,8],send:[0,3,5,6,7],sender:[0,4,6],sendig:0,sensibl:1,sensor:6,sent:[0,5,6,7],sentiment:6,separ:[4,6,7],sequenc:[0,5,6,8],serial:[2,6,8],serialinterfac:3,serv:[0,4,6],serve_path:0,server:[0,1,2],server_callback:0,server_destin:0,server_fil:0,server_ident:0,server_link:0,server_loop:0,server_packet_receiv:0,servic:[1,4,7],session:6,set:[0,3,4,5,6,8],set_default_app_data:5,set_delivery_callback:[0,5],set_link_closed_callback:0,set_link_established_callback:[0,5],set_packet_callback:[0,5],set_proof_requested_callback:5,set_proof_strategi:[0,5],set_remote_identified_callback:[0,5],set_resource_callback:5,set_resource_concluded_callback:[0,5],set_resource_started_callback:[0,5],set_resource_strategi:[0,5],set_timeout:[0,5],set_timeout_callback:[0,5],setdaemon:0,setup:[0,2,3],sever:[4,5,7],sha256:8,sha:[5,6],shall:6,share:[1,4,5,6,7],she:4,shelf:[6,8],shop:0,shortest:6,should:[0,3,4,5,6,8],should_allow_unencrypt:[],should_quit:0,should_use_implicit_proof:5,show:7,shown:0,side:8,sight:4,sign:[5,6],signatur:[5,6,8],significantli:[],similar:[4,7,8],simpl:[0,6,8],simplest:6,simpli:[0,1,4,6,7],simplic:6,sinc:[0,3,4,5,6],singl:[0,3,5,6,8],singular:6,site:2,situat:[4,6],size:[0,5,6],size_str:0,sleep:0,slice:0,slottim:3,slow:[0,3,6],small:[0,3,4,6,8],so:[0,1,3,4,5,6,7,8],softwar:[6,8],some:[0,1,4,6],someth:[3,6],somethign:0,soon:5,sort:6,sourc:[0,1,4,6,8],space:[0,4,8],span:6,special:[6,7],specif:[0,2,3,5,8],specifi:[0,1,3,4,5,7],spectrum:[3,6],speed:3,split:0,sponsor:8,spread:3,spreadingfactor:3,squelch:3,ssid:3,stabl:[6,8],stack:[0,1,4,6,7,8],stage:6,stai:[0,7],standard:6,start:[0,2,3,5,6,7],startup:0,state:0,station:[3,6],stationari:4,statist:0,statu:[0,1,2,5,6,7],stdout:0,step:1,still:[0,4,6],stock:0,stop:8,stopbit:3,store:[0,6],store_tru:0,str:0,strategi:5,stream:6,strength:8,strictli:6,string:[0,5],structur:6,subject:6,subnet:4,subsequ:6,successful:5,successfulli:0,sucessfulli:6,suffic:6,suffici:[6,7],suffix:0,suit:[1,6],suitabl:[0,3,4,6],suppli:[4,5,6],support:[0,2,4,6,8],sy:0,symlink:1,symmetr:[5,6],system:[0,1,2,5,8],t:[0,1,3,4,6],tabl:[4,6],tail:3,take:[0,1,6,8],taken:[0,6],tangerin:0,target:0,target_host:3,target_port:3,tcp:[1,2,4,6,8],tcpclientinterfac:3,tcpinterfac:7,tcpserverinterfac:3,tdata:0,teardown:[0,5],teardown_reason:0,teffect:0,tell:0,temperatur:6,ten:6,term:[4,6],termin:5,terminolog:[4,6],test:[3,6],testnet:7,text:[0,4,6],tfile:0,than:[0,4,6],thei:[0,4,5,6],them:[0,3,6],thereaft:6,therefor:[6,8],thi:[0,1,2,3,4,5,6,7],those:4,though:6,thourough:8,thread:0,three:[4,6],throough:3,throttl:4,through:[3,4,5,6,8],throughout:6,throughput:[6,8],thu:[4,5,6],ti:[0,6],time:[0,1,3,4,5,6,7],timeout:[0,5],timeout_callback:[],timeoutarg:0,timestr:0,tnc:[3,5,8],to_fil:5,todai:6,todo:[],togeth:6,token:[5,6],too:[0,4,6],tool:8,top:[4,6],topic:6,topographi:4,topolog:[3,6],total:[6,8],total_s:0,touch:8,toward:[0,6],tradit:4,traffic:[0,3,4,5,6],tramsit:[],transceiv:[3,6,8],transfer:[0,5,6,8],transfer_s:0,transmiss:[3,6],transmit:[0,3,6],transpar:[3,6],transport:[0,2,4,7,8],transport_en:5,transport_id:[],transport_typ:[],travers:6,treat:6,tri:0,trip:[0,5,7],trivial:8,truli:6,truncat:[5,6],truncated_hash:5,truncated_hashlength:5,trust:6,trustless:[6,8],ttime:0,ttransfer:0,ttyusb0:3,ttyusb1:3,ttyusb2:3,tunnel:[6,8],tupl:5,turnaround:3,two:[0,3,4,6],tx:[3,7],txpower:3,txtail:3,type:[0,2,3,4,5],typeerror:5,udp:[2,4,6,7,8],udpinterfac:[3,7],umsgpack:0,uncencrypt:0,underli:[4,8],understand:[1,2],unencrypt:[0,5,6],unequivoc:6,unforg:8,unidentifi:0,unifi:4,uninterest:0,uniqu:[6,8],unit:0,unknown:[0,5,6],unless:[1,5,6],unlicens:6,unpack:0,unpackb:0,unsign:7,unsupport:5,until:[0,5,6],unwant:6,up:[0,4,6,7,8],updat:[0,5],upon:[0,6],upset:0,urandom:8,us:[0,2,3,4,5,6],usabl:6,usag:7,usb:[4,6,8],useabl:6,user:[0,1,4,6],user_input:0,userland:8,utf:0,util:[0,2,6],utilis:[4,6,7,8],v:7,valid:[0,3,5,6,7],valu:[5,6],valueerror:[0,5],variabl:0,varieti:[3,6,8],variou:[0,6],ve:1,vendor:0,verbos:7,veri:[4,5,6,7,8],verif:[5,6],verifi:[0,5,6],versa:[4,8],version:7,vhf:[4,6],via:[1,6,7],vice:[4,8],view:[1,6,7],virtual:4,visibl:0,wa:[0,4,5,6,8],wai:[0,1,3,4,6],wait:[0,6],want:[0,1,3,4,6,7,8],warrant:8,wast:3,wb:0,we:[0,3,6],well:[4,5,6,8],went:0,were:4,what:[0,1,2,5,6],whatev:[5,6],when:[0,1,3,4,5,6,7],whenev:5,where:[2,4,5,6],whereupon:6,whether:[0,3,5,6],which:[0,1,4,5,6],who:6,wide:[6,8],wifi:[4,6,8],wildcard:0,willing:4,window:6,wire:[3,6,8],wireless:4,wish:6,within:[0,1,3,4,5,6],without:4,won:0,work:[6,7,8],world:[4,8],worri:4,would:[3,4,6],write:[0,5],written:6,wrong:0,x25519:[5,6,8],x:6,xenon:0,y:0,ye:6,year:6,yet:[0,6],yi:0,you:[0,1,2,3,4,5,6,7,8],your:[0,1,2,3,4,6,8],yourself:[6,8],z:0,zero:[5,8],zeromq:4,zi:0},titles:["Code Examples","Getting Started Fast","Reticulum Network Stack Manual","Supported Interfaces","Building Networks","API Reference","Understanding Reticulum","Using Reticulum on Your System","What is Reticulum?"],titleterms:{"1":[],"2":[],"25":3,"class":5,"function":6,"public":6,"try":1,The:[6,7],With:1,announc:[0,6],api:5,ax:3,base:1,basic:6,binari:6,bridg:4,broadcast:0,build:4,can:8,caveat:8,client:3,code:0,concept:4,converg:4,creat:1,current:8,deliveri:[],destin:[5,6],detail:6,develop:1,devic:8,doe:8,echo:0,emptor:8,establish:6,exampl:[0,4],fast:1,filetransf:0,format:6,further:6,get:[1,6],gipsum:[],goal:6,growth:4,ident:[5,6],identif:0,includ:[1,7],indic:2,interconnect:4,interfac:[3,8],internet:4,introduct:6,kei:6,kiss:3,link:[0,5,6],lora:[3,4],manual:2,mechan:6,minim:0,motiv:6,name:6,network:[1,2,4],node:6,offer:8,orem:[],over:4,overview:4,packet:[5,6],particip:1,pathfind:[],prioritis:6,program:[1,7],protocol:6,proven:[],reach:6,receipt:5,refer:[5,6],request:[0,5],resourc:[5,6],respons:0,reticulum:[1,2,5,6,7,8],rnode:3,rnpath:7,rnprobe:7,rnsd:7,rnstatu:7,scenario:4,serial:3,server:3,setup:6,site:4,specif:6,stack:2,start:1,statu:8,step:[],support:3,system:[6,7],tabl:2,tcp:3,transport:[5,6],type:[6,8],udp:3,understand:6,us:[1,7,8],util:[1,7],what:8,where:8,your:7}})
\ No newline at end of file
diff --git a/docs/manual/understanding.html b/docs/manual/understanding.html
index ae1ff65..3157cf5 100644
--- a/docs/manual/understanding.html
+++ b/docs/manual/understanding.html
@@ -5,7 +5,7 @@
- Understanding Reticulum — Reticulum Network Stack 0.2.6 beta documentation
+ Understanding Reticulum — Reticulum Network Stack 0.2.7 beta documentation
@@ -17,7 +17,7 @@
-
+
@@ -815,8 +815,8 @@ proof 11
Previous topic
- Building Networks
+ Supported Interfaces
Next topic
API Reference
@@ -851,9 +851,9 @@ proof 11
next |
- previous |
- Reticulum Network Stack 0.2.6 beta documentation »
+ Reticulum Network Stack 0.2.7 beta documentation »
Understanding Reticulum
diff --git a/docs/manual/using.html b/docs/manual/using.html
index bc67098..0b73f11 100644
--- a/docs/manual/using.html
+++ b/docs/manual/using.html
@@ -5,7 +5,7 @@
- Using Reticulum on Your System — Reticulum Network Stack 0.2.6 beta documentation
+ Using Reticulum on Your System — Reticulum Network Stack 0.2.7 beta documentation
@@ -31,7 +31,7 @@
previous |
- Reticulum Network Stack 0.2.6 beta documentation »
+ Reticulum Network Stack 0.2.7 beta documentation »
Using Reticulum on Your System
@@ -246,7 +246,7 @@ optional arguments:
previous |
- Reticulum Network Stack 0.2.6 beta documentation »
+ Reticulum Network Stack 0.2.7 beta documentation »
Using Reticulum on Your System
diff --git a/docs/manual/whatis.html b/docs/manual/whatis.html
index 932fb16..f0ea20b 100644
--- a/docs/manual/whatis.html
+++ b/docs/manual/whatis.html
@@ -5,7 +5,7 @@
- What is Reticulum? — Reticulum Network Stack 0.2.6 beta documentation
+ What is Reticulum? — Reticulum Network Stack 0.2.7 beta documentation
@@ -31,7 +31,7 @@
previous |
- Reticulum Network Stack 0.2.6 beta documentation »
+ Reticulum Network Stack 0.2.7 beta documentation »
What is Reticulum?
@@ -183,7 +183,7 @@ network, and vice versa.
previous |
- Reticulum Network Stack 0.2.6 beta documentation »
+ Reticulum Network Stack 0.2.7 beta documentation »
What is Reticulum?
diff --git a/docs/source/conf.py b/docs/source/conf.py
index 09106b7..a52429d 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -22,7 +22,7 @@ copyright = '2021, Mark Qvist'
author = 'Mark Qvist'
# The full version, including alpha/beta/rc tags
-release = '0.2.6 beta'
+release = '0.2.7 beta'
# -- General configuration ---------------------------------------------------
diff --git a/docs/source/gettingstartedfast.rst b/docs/source/gettingstartedfast.rst
index cb5fa7a..c51b99f 100644
--- a/docs/source/gettingstartedfast.rst
+++ b/docs/source/gettingstartedfast.rst
@@ -10,7 +10,7 @@ Try Using a Reticulum-based Program
=============================================
If you simply want to try using a program built with Reticulum, you can take
a look at `Nomad Network `_, which
-provides a basic encrypted communications suite built completely on Reticulum.
+provides a complete encrypted communications suite built with Reticulum.
.. image:: screenshots/nomadnet_3.png
:target: _images/nomadnet_3.png
@@ -31,9 +31,21 @@ You can install Nomad Network via pip:
+Using the Included Utilities
+=============================================
+Reticulum comes with a range of included utilities that make it easier to
+manage your network, check connectivity and make Reticulum available to other
+programs on your system.
+
+You can use ``rnsd`` to run Reticulum as a background or foreground service,
+and the ``rnstatus``, ``rnpath`` and ``rnprobe`` utilities to view and query
+network status and connectivity.
+
+To learn more about these utility programs, have a look at the
+:ref:`Using Reticulum on Your System` chapter of this manual.
+
Creating a Network With Reticulum
=============================================
-
To create a network, you will need to specify one or more *interfaces* for
Reticulum to use. This is done in the Reticulum configuration file, which by
default is located at ``~/.reticulum/config``.
diff --git a/docs/source/interfaces.rst b/docs/source/interfaces.rst
index e75cb53..0a00746 100644
--- a/docs/source/interfaces.rst
+++ b/docs/source/interfaces.rst
@@ -14,6 +14,10 @@ for Reticulum to use.
The following sections describe the interfaces currently available in Reticulum,
and gives example configurations for the respective interface types.
+For a high-level overview of how networks can be formed over different interface
+types, have a look at the :ref:`Building Networks` chapter of this
+manual.
+
.. _interfaces-udp:
UDP Interface
diff --git a/docs/source/networks.rst b/docs/source/networks.rst
index 842f1f5..928b1ef 100644
--- a/docs/source/networks.rst
+++ b/docs/source/networks.rst
@@ -63,7 +63,8 @@ the underlying carrier for Reticulum.
However, most real-world networks will probably involve either some form of
wireless or direct hardline communications. To allow Reticulum to communicate
over any type of medium, you must specify it in the configuration file, by default
-located at ``~/.reticulum/config``.
+located at ``~/.reticulum/config``. See the :ref:`Supported Interfaces`
+chapter of this manual for interface configuration examples.
Any number of interfaces can be configured, and Reticulum will automatically
decide which are suitable to use in any given situation, depending on where