From b21e0bee2026bd7c708f6198299e2c14e35e65c1 Mon Sep 17 00:00:00 2001 From: Mark Qvist Date: Fri, 8 Oct 2021 18:30:17 +0200 Subject: [PATCH] Updated documentation --- RNS/Utilities/rnstatus.py | 2 +- docs/manual/.buildinfo | 2 +- .../_sources/gettingstartedfast.rst.txt | 16 +++++++++++++-- docs/manual/_sources/interfaces.rst.txt | 4 ++++ docs/manual/_sources/networks.rst.txt | 3 ++- docs/manual/_static/documentation_options.js | 2 +- docs/manual/examples.html | 6 +++--- docs/manual/genindex.html | 6 +++--- docs/manual/gettingstartedfast.html | 20 +++++++++++++++---- docs/manual/index.html | 7 ++++--- docs/manual/interfaces.html | 9 ++++++--- docs/manual/networks.html | 9 +++++---- docs/manual/reference.html | 14 ++++++------- docs/manual/search.html | 6 +++--- docs/manual/searchindex.js | 2 +- docs/manual/understanding.html | 16 +++++++-------- docs/manual/using.html | 6 +++--- docs/manual/whatis.html | 6 +++--- docs/source/conf.py | 2 +- docs/source/gettingstartedfast.rst | 16 +++++++++++++-- docs/source/interfaces.rst | 4 ++++ docs/source/networks.rst | 3 ++- 22 files changed, 106 insertions(+), 55 deletions(-) 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 |
  • - + @@ -2319,7 +2319,7 @@ interface to efficiently pass files of any size over a Reticulum previous | - + 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
  • - + @@ -416,7 +416,7 @@
  • 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 |
  • - + @@ -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.

    _images/nomadnet_3.png

    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 |
  • - + @@ -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 |
  • - + @@ -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.

    UDP Interface

    A UDP interface can be useful for communicating over IP networks, both @@ -406,7 +409,7 @@ beaconing functionality described above.

  • previous |
  • - +
    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 |
  • - + @@ -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 |
  • - + 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

    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
  • - + @@ -85,7 +85,7 @@
  • index
  • - + 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 |
  • - + 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 |
  • - + @@ -246,7 +246,7 @@ optional arguments:
  • previous |
  • - + 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 |
  • - + @@ -183,7 +183,7 @@ network, and vice versa.

  • previous |
  • - + 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