From 3b8490ae9c9d53cccb1c9778529a5e7ce459e9d7 Mon Sep 17 00:00:00 2001 From: Mark Qvist Date: Tue, 24 May 2022 20:47:45 +0200 Subject: [PATCH] Added rnx util to documentation --- docs/manual/_sources/using.rst.txt | 98 ++++++++++++++++++++++++----- docs/manual/genindex.html | 6 +- docs/manual/index.html | 1 + docs/manual/objects.inv | Bin 1979 -> 1988 bytes docs/manual/reference.html | 14 ++++- docs/manual/searchindex.js | 2 +- docs/manual/using.html | 93 ++++++++++++++++++++++----- docs/source/using.rst | 98 ++++++++++++++++++++++++----- 8 files changed, 260 insertions(+), 52 deletions(-) diff --git a/docs/manual/_sources/using.rst.txt b/docs/manual/_sources/using.rst.txt index d5d0d96..186e64d 100644 --- a/docs/manual/_sources/using.rst.txt +++ b/docs/manual/_sources/using.rst.txt @@ -138,6 +138,10 @@ take a look at the :ref:`Interfaces` chapter of this manual. Included Utility Programs ------------------------- +Reticulum includes a range of useful utilities, both for managing your Reticulum +networks, and for carrying out common tasks over Reticulum networks, such as +transferring files to remote systems, and executing commands and programs remotely. + If you often use Reticulum from several different programs, or simply want Reticulum to stay available all the time, for example if you are hosting a transport node, you might want to run Reticulum as a separate service that @@ -314,8 +318,8 @@ files through Reticulum. .. code:: text # Run rncp on the receiving system, specifying which identities - # are allowed to send files. - rncp --receive --allow 940ea3f9e1037d38758f --allow e28d5aee4317c24a9041 + # are allowed to send files + rncp --receive -a 940ea3f9e1037d38758f -a e28d5aee4317c24a9041 # From another system, copy a file to the receiving system rncp ~/path/to/file.tgz 256320d405d6d525d1e9 @@ -324,26 +328,88 @@ You can specify as many allowed senders as needed, or complete disable authentic .. code:: text - usage: rncp.py [-h] [--config path] [-v] [-q] [-i] [-r] [-b] [-a ALLOW] [-n] [-w seconds] [--version] [file] [destination] + usage: rncp [-h] [--config path] [-v] [-q] [-p] [-r] [-b] [-a allowed_hash] [-n] [-w seconds] [--version] [file] [destination] Reticulum File Transfer Utility positional arguments: - file file to be transferred - destination hexadecimal hash of the receiver + file file to be transferred + destination hexadecimal hash of the receiver optional arguments: - -h, --help show this help message and exit - --config path path to alternative Reticulum config directory - -v, --verbose increase verbosity - -q, --quiet decrease verbosity - -i, --identity print identity and destination info and exit - -r, --receive wait for incoming files - -b, --no-announce don't announce at program start - -a ALLOW, --allow ALLOW accept from this identity - -n, --no-auth accept files from anyone - -w seconds sender timeout before giving up - --version show program's version number and exit + -h, --help show this help message and exit + --config path path to alternative Reticulum config directory + -v, --verbose increase verbosity + -q, --quiet decrease verbosity + -p, --print-identity print identity and destination info and exit + -r, --receive wait for incoming files + -b, --no-announce don't announce at program start + -a allowed_hash accept from this identity + -n, --no-auth accept files from anyone + -w seconds sender timeout before giving up + --version show program's version number and exit + -v, --verbose + + +The rnx Utility +================ + +The ``rnx`` utility is a basic remote command execution program. It allows you to +execute commands on remote systems over Reticulum, and to view returned command +output. + +.. code:: text + + # Run rnx on the listening system, specifying which identities + # are allowed to execute commands + rncp --listen -a 8111c4ff2968ab0c1286 -a 590256654482b4ba4038 + + # From another system, run a command + rnx ad9a4c9da60089d41c29 "cat /proc/cpuinfo" + + # Or enter the interactive mode pseudo-shell + rnx ad9a4c9da60089d41c29 -x + + # The default identity file is stored in + # ~/.reticulum/identities/rnx, but you can use + # another one, which will be created if it does + # not already exist + rnx ad9a4c9da60089d41c29 -i /path/to/identity + +You can specify as many allowed senders as needed, or complete disable authentication. + +.. code:: text + + usage: rnx [-h] [--config path] [-v] [-q] [-p] [-l] [-i identity] [-x] [-b] [-a allowed_hash] [-n] [-N] [-d] [-m] [-w seconds] [-W seconds] [--stdin STDIN] [--stdout STDOUT] [--stderr STDERR] [--version] + [destination] [command] + + Reticulum Remote Execution Utility + + positional arguments: + destination hexadecimal hash of the listener + command command to be execute + + optional arguments: + -h, --help show this help message and exit + --config path path to alternative Reticulum config directory + -v, --verbose increase verbosity + -q, --quiet decrease verbosity + -p, --print-identity print identity and destination info and exit + -l, --listen listen for incoming commands + -i identity path to identity to use + -x, --interactive enter interactive mode + -b, --no-announce don't announce at program start + -a allowed_hash accept from this identity + -n, --noauth accept files from anyone + -N, --noid don't identify to listener + -d, --detailed show detailed result output + -m mirror exit code of remote command + -w seconds connect and request timeout before giving up + -W seconds max result download time + --stdin STDIN pass input to stdin + --stdout STDOUT max size in bytes of returned stdout + --stderr STDERR max size in bytes of returned stderr + --version show program's version number and exit Improving System Configuration diff --git a/docs/manual/genindex.html b/docs/manual/genindex.html index c19b73d..7314981 100644 --- a/docs/manual/genindex.html +++ b/docs/manual/genindex.html @@ -334,6 +334,8 @@
  • set_default_app_data() (RNS.Destination method)
  • set_delivery_callback() (RNS.PacketReceipt method) +
  • +
  • set_link_closed_callback() (RNS.Link method)
  • set_link_established_callback() (RNS.Destination method)
  • @@ -346,11 +348,11 @@
  • set_proof_requested_callback() (RNS.Destination method)
  • set_proof_strategy() (RNS.Destination method) -
  • -
  • set_remote_identified_callback() (RNS.Link method)
  • Improving System Configuration
      diff --git a/docs/manual/objects.inv b/docs/manual/objects.inv index d1452ea38ff52c9a9c4db4aa5764dd27017f0123..901beb9312ee1888145de9502cae0dd8e058040c 100644 GIT binary patch delta 1852 zcmV-C2gCTg55y0UoqvqPj^U4Pw-sU~-Q@il+QK@7P?oU* z?3GH2Wx`@N2T-1eD2qcRavVt!?m0`t45i*e5ygmyG2Wws%70MF#z-P>6^@a_;X6JG zUo^%MKjzXO?#60Bq-vaK02?T^<2>1D0XV$#)YlUpzq~8N!@W zq)Z$V<4h9iy*yQ1m`TEC&w$xk-XE zwy%P7t2?EZkbfNB)xrBs33A9>m{~28dP-*f#U#E*Nn`d7Qk0NIokGf=;a*ywh5(|H9Pbl`IR0VV` zN0u5;{+et7J2e`Faws+Mpx!PIsd+7UnA04q?LPqVDu0QV_1*C!$^5fMa+r6JDsA5H z;X9%P9?EIGSE%a_6-k+SRihG^t~cX{*V+1cK3#0W&1^n>+it?;bQM0oEq#Purqkv4 zb>_Ev^U=C%U};lhR=T0AaD<7jDc9(hbxo(-MmS}#5qu_ylGVW81ISP$$#)#?8Fz*< z7LsfSLw|Mbi?KrbbEZ=}+uNBVqD*-9cPlVp&aiCb?d{1>7dRHI;1Rx+W?4jw_+~F) zfaCHfsJM?xB`x9b6tf>rRdZRsG>4j`4M)?(Wc6*S=8pN}*0DYqbon}-Ee2pM54($l zvFaclt4q_kp#yIMXR&)UM}FpK4!YUvswbuQLVqO)sVNKL&*~Enh5E;jUU_{kBT0&( zy4?hOxp1l7I09x!WCzFx;lG~gQu=&J;=uwUXPLk^;${2>YPhG)%9JptP;1i;=F&7^ z>{>jEAvGm&jgX-t1ox;HqC%mD*-()Gus7*CW;UQ4+KKR|yi&FX3VcYRANzyQurdK= z{(qq%0-A4{D|fNu7Lg<>XpuVQn6Vv=7mGJIKTpHS*mW{K!Sl`5o9S@#Qd(DrZ3&UE zg2rJ1o0p_H9NdWcmf{trQTc9i#$|{zw4-iO-c*o7l&$S(Io>=!%@&Vv0+~BT>;!i# z*&VTyVOyg1HMaVq?ek&pBm|ok_MS{UDSwuWP%=L#!yix_SU!w`Lk2wU9=UzGKk+{) zPE~hvi51GpeO&t$Ldf_tMLQ_M_Z{}NPk<$9k9pUz>X2SC>VVT@ug2%nHbtb*rSWnW ztg4G8qz^znm>y+n_S}pkE?8jtaEY5}yYZ%vw**WJ?L)PhVXFGn2N}DPvPGwdvVW;` zhd&S$Iec$_ifVx7uCVXISXpex8Hyt$G}bgs-(l93eA>%?3eS*ZGua1}DSC4%2nu9Wkos1!tr#w&@()8fy22`ZOS# zkKU51ZI583zEe(ECOM-GwL-F95oKeYY0w{^{^+Iu9)Z!zY`yN*AfNI+iGSIrWjFgy zL~jT#uY8_w=XBrONFgJ8U9e~{SLSt|RXy$uuDR3W z=kf>xT-J2gHto8<%}(B$jRZzKN}5aQYo^xe`%84dcLl7$p$2EA%e566H#E0x*q$bi zhUtX~;#^LpLxNAWat@;a%7{qerNjIw5uq29;S`pmL&q4~xrkk0S%1S;g=%F@`5h7@ z+JmXGK=f?d?Npzs+8!4r1O50xX#`Jok=81;89YO274++i)c<;DQ9_qRg`ZwK2&OCV z3oeuPh}Ef8wd*HMwB;D0E*^bRb}iPNIS6(Um|5eN$~!(*d80qB^lL54-)Vyve6-0^ zqAlg~QqZa9wrf%*)qgL`ZYe#t#w``qP2@3midflHHp;jqqK`>?##1C6biNXfgQwE^ zOh_g!o~$s65)~XspvK9wCC8a$5u@sl-PCmM^ePP#tShJ`Y7412!ht+>^0unSYb=ZW zOiv%)+@9OmwlprB-Y#fV!|&-VSBQ2k7pEF78d(@XzI_8Hf;Dyd_!{lXY*Ei>7Y!ZH q_=?O)0Eqw@x*QJ(G_fBEnr*(zQX?lxNSB5y!#)SD9iNDx`aId delta 1843 zcmV-32h8}y54#VLoqvSHj^K}Ow-swA}=_t$qQQnbEok@lW;AEeqs&<-N-<(#jQ6NaMSmz|VBxKm}-yjjskOcY)?|`M#&0j zTaFBMMfq#9CG6DbDwIK~fd_SV`I?&7fvBFnPeqPL%n{eYV=5O0g7|d7U^IPB|^fI3Z z(^ubZ_4cC;*TBlA!K_q6S>Xs1RZ}j}9qWcpwT*B_VI#Oq5EZL{y#tV=NRaP1+*4)^ z z!V=Ik9z8%laQF3elTpV*5??LA3z~C$BVNVtN)7weS?LmH6>4QVz?^I5+OET+7*bOZ z+X!hYLU1p2LS!i9EE;n1A9f~fr^FUiKs({?lvBz!K#mU?^ka7r8dlE1%sn)OL-WlF z>3=S^+#-TRWm;xdIi_tV)8+CFj=%G8HnkmWPw-;1b!GesIYm1t!uJFAjW2i=X-;XEvHFZ%G4h+}h`k)2E87f_F_)%+@2%>K6{HS8 zBbXXx8um<&BQ}_)`*4NpXxs6+k9P!g3mrq1nP%$xGzMwAiZVrKgfgjghd&S$Ie&a_ zeo1P9`Yt!`LR%SZ$0&*;#KmRqp*AxhjuLvAnS+Hfm*0u%Zg&}bYFHZFd^@;^`ubEH zsr;|uem-}>DxGWdjN~Lk>1AS}j0{wN2e=67+~VGEGFPhklGh5nLSq{BKyOB4?9KHh zV?VIbHQlZQY!@=6_GZ^nHK%=>5ozR?+F;a`0Mqs2KiKsN%)_FVfLNy(SHz}U%8)e zeR}L|WRQ`gE*R8XNb@F73%RpL6=pQcpjDoP-W1oADoBCHbOLEJ7z~!ny)}ZbmeS~z zuF$Xu$Bc9f%|J|*)u4iiifD}A%mQzg5-5#lHMori_yH%zVU02#&C2a#GbLiPaWRuo?F{? zG|rsf&S=!b@98X8@@_5Xry9;%S?EE&eFG=Fb@liP9m;Ip%q(ad4HeJ$g3L((aSv&_ h8V?9Gu^$QKK&wZqE9x=6!v8(EZ8ZM8`yb~twDb=Rh(Z7W diff --git a/docs/manual/reference.html b/docs/manual/reference.html index 95e1f19..dcbace7 100644 --- a/docs/manual/reference.html +++ b/docs/manual/reference.html @@ -898,6 +898,18 @@ thus preserved. This method can be used for authentication.

      be used if a new link to the same destination is established.

      +
      + +

      Registers a function to be called when a link has been +torn down.

      +
      +
      Parameters
      +

      callback – A function or method with the signature callback(link) to be called.

      +
      +
      +
      +
      set_packet_callback(callback)
      @@ -1233,7 +1245,7 @@ Transport system of Reticulum.

      -static request_path(destination_hash, on_interface=None)
      +static request_path(destination_hash, on_interface=None, tag=None, recursive=False)

      Requests a path to the destination from the network. If another reachable peer on the network knows a path, it will announce it.

      diff --git a/docs/manual/searchindex.js b/docs/manual/searchindex.js index 2465252..f59e74a 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_data_size:[5,1,1,""],get_hash:[5,1,1,""],get_parts:[5,1,1,""],get_progress:[5,1,1,""],get_segments:[5,1,1,""],get_transfer_size:[5,1,1,""],is_compressed:[5,1,1,""]},"RNS.Reticulum":{ANNOUNCE_CAP:[5,2,1,""],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,7],"000":[],"00000000":6,"00000100":6,"00000111":6,"01":6,"01010000":6,"02":[],"05":0,"07":[],"1":[0,3,5,6,7],"10":[0,3,6,7],"100":[0,3,6],"1000":0,"10000000":6,"1024":0,"11":6,"115200":[3,7],"12":3,"1200":6,"125":3,"125000":3,"127":3,"128":[5,6,8],"13":7,"14":6,"141":[],"15":3,"150":[3,7],"150m":3,"151":6,"16":[3,7],"17":7,"18":[],"180":[],"182":[],"187":7,"2":[0,3,5,6,7],"20":[0,3,6,7],"200":[3,7],"2000000":[],"205":[],"211":[],"23":7,"237":[6,8],"24":3,"240":[],"25":[0,2,8],"255":3,"256":[5,6],"256320d405d6d525d1e9":7,"27":7,"270":[],"2f":0,"3":[0,3,6,7,8],"30":7,"323":[],"33":6,"34":[],"360":5,"3600":[0,3],"367":[],"37":[],"37428":7,"37429":7,"38":7,"383":5,"3e12fc71692f8ec47bc5":1,"3w3lha":[],"4":[6,7],"409":[],"4242":3,"430":6,"45":0,"460":[],"469":7,"476":5,"477":6,"48555":3,"49":7,"49555":3,"4965":[1,7],"5":[0,3,5,7],"500":[5,6,8],"5001":3,"507":5,"512":[3,5,6],"5245a8efe1788c6a70e1":7,"55":3,"56b115c30cd386cad69c":7,"5757":3,"5urvjicpzi7q3ybztsef4i5ow2aq4soktfj7zedz53s47r54jnqq":3,"6":7,"60":0,"600":3,"62":[6,8],"63":7,"64":[6,7],"7":[3,7],"72":3,"7200":3,"74":7,"77":6,"7c565719ec7a8cdb1fe2":[],"7ca6f4e4dc26ae329e61":[],"8":[0,3,7],"80":[5,6,7],"8001":3,"80e29bf7cccaf31431b3":6,"83":[6,7],"86":7,"867":3,"867200000":3,"868":6,"88":3,"9":7,"900":6,"9382f334de63217a4278":7,"940ea3f9e1037d38758f":7,"95":6,"\u00ec2pd":3,"abstract":6,"break":[5,6,8],"byte":[0,5,6,7,8],"case":[1,3,4,6,7],"class":[0,2,4,8],"default":[0,1,3,4,5,6,7],"do":[0,1,3,5,6,8],"export":1,"final":6,"float":[0,5],"function":[0,1,2,3,4,5,7,8],"import":[0,1,3,4,6],"int":0,"long":[0,3,6],"new":[0,3,4,5,6,7],"public":[0,2,3,5],"return":[0,5],"short":[6,7],"static":5,"switch":[3,6],"throw":[],"true":[0,1,3,5,7],"try":[0,2,3],"while":[0,1,3,4,5,6,8],A:[0,1,3,4,5,6,7,8],And:0,As:[1,3,4,5,6,8],At:[4,6],Be:[5,7],But:6,By:[0,1,3,5,6,7],For:[1,3,4,5,6,8],IF:[],IN:[0,5],If:[0,1,3,4,5,6,7,8],In:[0,1,3,4,5,6,7,8],It:[0,1,3,5,6,7,8],No:[3,6,7,8],On:[0,1,3,7],One:5,Or:[3,8],That:6,The:[0,1,2,3,4,5,8],Then:1,There:[1,4,6,8],These:[1,3,6,7],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,_other_:[],_with_:3,aarch64:1,ab:0,abil:1,abl:[0,1,3,4,5,6,7],about:[0,1,3,4,5,6],abov:[1,3,6,7],absolut:[1,8],accept:[5,6,7],accept_al:[0,5],accept_app:5,accept_non:5,access:[1,2,3,4,5,7],access_point:3,accomod:6,accord:6,accordingli:0,acheiv:[3,6],achiev:[5,6],acknowledg:8,across:4,act:[1,5,6,7],action:0,activ:[0,1,3,5,6],actor:6,actual:[0,1,3,6],ad:[0,2,3,4,5,6,8],adapt:4,add:[0,1,3,4,7],add_argu:0,addit:[3,6,7,8],additio:[],addition:3,addr1:[],addr2:[],address:[0,1,3,4,5,6,8],adher:5,admin:3,administr:7,adress:[0,1,4,5,6,8],advanc:6,advantag:5,adversari:1,advertis:[0,5],advis:6,ae:[6,8],affect:3,after:[0,3,4,6,7],again:[1,3,6,7],against:6,agenc:6,agent:6,agnost:[4,6],agnostic:6,aim:[2,6],air:8,airtim:3,aliv:[5,6],all:[0,1,2,3,4,5,6,7,8],alloc:[3,5,6,7],allow:[0,1,3,4,5,6,7,8],allow_al:[0,5],allow_list:5,allow_non:5,allowed_list:5,almost:[3,6,7],alo:6,alon:3,along:[3,4,6],alreadi:[0,1,4,6,7],als:[],also:[0,1,3,4,5,6,7,8],alter:6,altern:[0,3,7],although:[6,8],alwai:[1,3,5,6,7],amateur:[3,8],amet:[],amount:[3,4,5,6,8],an:[0,1,3,4,5,6,7,8],android:2,ani:[0,1,3,4,5,6,7,8],annouce_cap:3,announc:[2,5,7],announce_cap:[3,5],announce_handl:0,announce_rate_grac:3,announce_rate_penalti:3,announce_rate_target:3,announced_ident:[0,5],announceloop:0,announcesampl:0,announec:[],anonym:[1,4,5,6,8],anoth:[1,5,6,7],answer:[6,7],anymor:1,anyon:[0,1,4,5,6,7],anyth:[3,6,7,8],anywher:[0,3],ap:3,apart:[],api:[1,2,6,8],apk:1,app:[0,1,5,6],app_and_aspects_from_nam:5,app_data:[0,5],app_nam:[0,5],app_timeout:0,append:[0,6],appli:[5,6],applic:[0,3,4,5,6,7],approach:[6,7],approv:6,approxim:[],apt:1,ar:[0,1,3,4,5,6,7,8],arbitrari:[5,6],arbritrari:8,architectur:1,area:[3,4,6,8],arg:0,argon:0,argpars:0,argument:[0,5,7],argumentpars:0,arm64:2,around:6,arriv:[0,6],ask:[0,5],aspect:[0,3,5,6],aspect_filt:[0,5],assign:[6,7],associ:[1,5,6],assum:[3,6],asymmetr:[6,8],attached_interfac:[],attack:1,attempt:5,attribut:5,audit:8,auth:7,authent:[1,3,4,5,6,7,8],author:6,auto:[2,5,6],auto_compress:5,autoconfigur:[3,8],autodiscov:3,autointerfac:[3,7],autom:6,automat:[0,1,3,4,5,6,7,8],autonom:[4,6],autoomat:0,avail:[0,1,3,4,5,6,7,8],availadbl:[],averag:6,avoid:[6,7],awai:[0,3,4,6,7],awar:6,ax25kissinterfac:3,ax:[2,8],b32:[1,3],b:[0,4,7],back:[0,3,6,8],background:[1,3],backhaul:4,balanc:3,band:6,bandwidth:[1,3,4,5,6,8],bare:0,barrier:6,base32:3,base:[2,3,4,5,6,7,8],basi:[3,5,6,7,8],basic:[0,1,2,5,7],baud:3,beacon:3,beam:[],becaus:[4,6],becki:0,becom:[0,1,4,6],been:[0,1,3,4,5,6,8],befor:[0,1,3,5,6,7],begin:[0,5],begun:5,behalf:3,behaviour:[3,7],behind:[1,6],being:[3,5,6],beings:6,belief:6,below:[1,3,7],benefici:[3,7],best:[1,6,8],beta:8,better:3,between:[0,3,4,5,6],bgp:[],bi:6,bidirect:6,billion:[4,6],bin:7,binari:[0,1,6],bind:3,bit:[3,5,6,7,8],bitrat:3,blob:[0,6],block:3,board:[1,6,8],boot:7,both:[1,3,4,5,6,8],boundari:3,bp:[],breviti:7,bridg:2,briefli:6,bring:3,broadcast:[1,2,3,5,6],broadcast_destin:0,broadcastloop:0,brought:[3,7],browser:1,buffer:3,bug:8,build:[0,1,2,3,6,8],built:[1,3,6,8],bundl:0,c:[0,4],cabl:4,cad:[],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,cap:3,capabl:6,capac:[3,5,6],carambola:0,care:[1,5,8],carefulli:1,cargo_build_target:1,carri:[3,5,6],carrier:[4,8],caution:3,caveat:2,cb:6,cbc:8,cd:1,cdma:3,censor:6,censorship:6,central:[4,6],centralis:6,certain:[0,3,4,6],chain:3,challeng:6,chang:[0,1,3,5,6,7,8],channel:[0,3,4,6,8],channelarg:0,chapter:[1,3,4,6,7,8],charact:0,characterist:6,cheap:6,check:[0,1,5,6],checksum:[5,8],choos:[0,1,3,6],choosen:6,chose:6,chosen:4,chunk:0,ciphertext:5,ciphertext_token:5,circumst:6,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,4,5,7],closed_callback:5,closer:6,closest:6,cluster:6,co:[3,8],code:[1,2,3],codingr:3,com:[0,1],combin:[1,4,6],come:[1,6],comma:3,command:[0,1,3,7],comment:[3,7],common:[1,2,4,6,8],commun:[0,1,3,4,5,6,7,8],compat:[1,3,5,6],compil:1,complet:[0,1,3,4,5,6,7,8],complex:[3,6],compon:6,compos:6,compress:[0,5,6],comput:[1,6,8],concaten:5,concept:[2,6,7],conceptu:6,conclud:[0,5],concurr:[6,7],condit:6,config:[0,1,4,7],configarg:0,configdir:5,configpath:0,configur:[0,1,2,3,4,5,6,8],confirm:[6,8],confus:6,congest:6,conjunct:3,connect:[0,2,3,4,5,6,7,8],consequ:[],conserv:3,consid:[6,8],consider:[],consist:6,constant:5,constantli:6,construct:6,consumpt:[],contact:6,contain:[0,4,5,6,7],contend:6,content:[4,7],context:6,contin:3,continu:8,control:[0,1,2,4,5,6],conveni:0,convent:0,converg:[2,6],coordin:[4,5,6,8],copi:7,core:[4,6,8],correct:[0,6],correctli:0,correspond:6,cost:[6,8],could:[0,1,3,4,5,6,8],count:6,counter:0,cours:[3,6],cover:[6,8],coverag:4,cpu:0,creat:[0,2,3,4,5,6,7,8],create_kei:5,create_receipt:[0,5],creation:6,creator:6,critic:[6,7],cryptograph:[4,8],cryptographi:[1,6,8],ctrl:0,cull:5,current:[0,1,2,3,5,6],current_download:0,current_filenam:0,curv:[4,5,6,8],curve25519:[4,5,6,8],custom:[3,5,6,8],custom_network_nam:3,customis:3,d:[4,7],daemon:[1,3,5,7],dai:4,data:[0,1,2,3,4,5,6,8],data_port:3,databit:[3,7],date:[0,1],db:0,dbm:[0,3],de:[],debian:[6,7],debug:7,decai:[],decid:[4,5,6],decis:3,decod:0,decreas:7,decrypt:[5,6],dedic:[3,6],deep:1,def:0,default_timeout:[],defin:[0,3,6,7],definit:6,degrad:4,degre:3,delai:[1,3,6,7],deliv:[0,5],deliveri:[0,1,5,8],demand:5,demonstr:[0,3],depend:[1,4,6,7],deploi:6,deregist:5,deregister_announce_handl:5,deregister_request_handl:5,deriv:[6,8],describ:[3,5,6],descript:[0,7],design:[1,4,6,8],desir:[0,3,6],destin:[0,1,2,3,4,7],destination_1:0,destination_2:0,destination_clos:0,destination_hash:[0,5,7],destination_hexhash:0,detail:[0,1,2,3,5,7,8],detect:0,determin:[1,5,6],dev:[1,3,7],develop:[2,6,8],devic:[1,2,3,4,5,6,7],dh:5,dhcp:[3,7],did:0,differ:[0,1,3,4,5,6,7,8],diffi:[4,6,8],difficult:1,digit:[6,8],dir:0,direct:[0,1,4,5,6,7],directli:[3,5,6,7,8],directori:[0,7],disabl:[3,6,7],disable_encrypt:[],disappear:[3,7],disassoci:6,discard:6,disconnect:0,discov:[1,3],discover:3,discoveri:[3,6,7],discovery_port:3,discovery_scop:3,discrimin:4,discuss:[1,6],disk:[0,5],displai:[0,6],dissolv:4,distanc:6,distant:5,distinct:[3,6],distinguish:6,distribut:[0,1,4,5,6,7],divid:5,divmod:0,document:6,doe:[0,1,2,3,4,5,6,7],doesn:3,dolor:[],domain:[1,3],don:[0,1,4,5,7],done:[0,1,3,4,6,7],dori:4,dot:[6,7],down:[0,3],downgrad:[],download:[0,3],download_began:0,download_conclud:0,download_finish:0,download_start:0,download_tim:0,driver:[7,8],droid:1,drop:[5,6,7],due:4,duplex:[6,8],dynam:[1,7],e28d5aee4317c24a9041:7,e702c42ba8:7,e:[0,4],each:[0,1,3,4,6,7],earli:1,earlier:6,eas:[3,6],easi:[1,3,6,7,8],easier:[1,3,4,7],easiest:[1,3,6],easili:[3,4,6,7,8],eca6f4e4dc26ae329e61:7,ecdh:[6,8],echo:[1,2,7],echo_destin:0,echo_request:0,ed25519:[6,8],edit:[1,7],effeci:[],effect:3,effici:[0,1,3,6,8],ei:0,either:[3,4,6,7],elaps:3,elif:0,ellipt:[4,5,6,8],els:[0,4,6],emploi:6,emptor:2,emul:1,enabl:[1,3,4,5,6,7],enable_transport:[6,7],encapsul:[3,8],encod:0,encrypt:[0,1,4,5,6,8],encrypted_mdu:5,encryptionless:[],end:[0,3,4,5,6,8],endless:3,endpoint:[0,4,5,6],energi:1,enforc:3,engin:[],enhanc:6,enough:[1,6],ensur:[3,5,6],enter:0,entir:[4,6,7],entiti:6,entri:[0,1,6],enumer:0,environ:[1,4,6],environment:6,environmentlogg:6,eof:3,ephemer:[4,5,6,8],equal:[4,6],equip:[3,4,6],equival:3,equl:[],error:[0,1,7],especi:3,essenti:[1,3,6],establish:[0,1,3,4,5,8],established_callback:5,establishment_timeout_per_hop:5,etc:7,eth0:3,eth1:3,ethernet:[1,3,4,6,8],even:[1,3,4,6,7,8],event:3,eventu:5,everi:[0,3,4,5,6],everyon:[4,6],everyth:[0,4,6],evolv:4,exact:[3,6],exactli:[5,6],exampl:[1,2,3,5,6,7,8],example_util:[0,7],exampleannouncehandl:0,exampleconfig:7,exce:[0,3,5],except:[0,3],excess:3,exchang:[4,5,6,8],exclud:6,execstart:7,execstartpr:7,execut:[0,1,3,5,7],exhaust:6,exist:[0,1,3,6,7,8],exit:[0,1,5,7],exit_handl:0,expand:6,expect:[0,3,5,6,7],experi:[1,6],experiment:[1,8],expir:3,expiri:3,explain:5,explan:[6,7],explicit:5,explicitli:[],explor:[0,6,8],expos:[3,5],extend:[0,1,5],extern:[1,3,5,8],extra:[1,3,4,7],extrem:[1,6,7,8],f:1,fa7ddfab5213f916dea:6,face:[1,3],fact:8,factor:3,fail:[0,5],failed_callback:[0,5],failur:[1,3],fals:[0,3,5,7],far:[4,6],fast:[2,3,5,6],faster:[1,3,6],fastest:[3,6],featur:[1,6,8],feed:5,feedback:0,feel:1,fernet:8,few:[1,3,4,6,7,8],fewer:5,fibr:8,field:6,file:[0,1,3,4,5,6,7,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],firewal:[1,3],firmwar:[1,6],first:[0,1,3,5,6,7],fit:0,five:0,fix:[2,6],flag:[5,6],flexibl:[3,8],flow:[3,4],flow_control:3,flush:0,folder:1,follow:[0,1,3,6,7,8],forcibl:[5,7],foreground:1,foremost:8,form:[1,3,4,5,6],format:[0,2,8],forth:0,forward:[3,5,6,8],forward_ip:3,forward_port:3,found:[0,1,3,4,6,7],four:4,frame:3,frankfurt:[1,7],free:[4,8],freedom:6,freeli:6,frequenc:[3,6],frequent:3,friendli:8,from:[0,1,3,4,5,6,7,8],from_byt:5,from_fil:5,fromhex:0,fruit:0,ftdi_ft230x_basic_uart_43891ckm:7,full:[0,3,5,6,7,8],full_hash:5,full_nam:[5,7],fulli:[6,8],funcion:5,fundament:6,further:[1,2,3],furthermor:[],futur:[4,6],g:0,ga:0,gain:6,galact:6,gatekeep:6,gatewai:[1,3,4,6],gbp:7,gen:[],gener:[0,1,3,4,5,6,7,8],generalis:8,geograph:4,get:[0,2,3,5,8],get_data_s:5,get_hash:5,get_packet_rssi:0,get_packet_snr:0,get_part:5,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_seg:5,get_statu:5,get_transfer_s:5,geti2p:3,ghz:6,gi:0,gigabyt:8,gipsum:[],git:1,github:[0,1],give:[3,6,7],given:[3,4,5,6,7],global:[0,1,3,4,6,8],go:[0,1,3,6],goal:[2,3],good:[4,6,7],got:0,got_respons:0,govern:6,gracefulli:3,grape:0,graphic:1,great:6,greater:6,greatli:3,group:[3,5,6],group_id:3,grow:4,growth:2,guarante:[1,6],guess:3,guid:[1,5,6],gw:3,h:[1,7],ha:[0,1,3,4,5,6,8],hack:8,had:6,half:[6,8],hand:[0,1],handheld:6,handl:[0,3,4,5,6,7,8],handler:[0,5],happen:[0,5,6],hardlin:4,hardwar:[1,3,4,5,6,7,8],has_path:[0,5],hasattr:0,hash1:6,hash2:6,hash:[0,1,5,6,7],hash_from_name_and_ident:5,hashmap:0,have:[0,1,3,4,5,6,7],hazard:5,head:1,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,1,3,6,7],hexadecim:[0,6,7],hide:1,high:[3,6,8],higher:[4,8],highli:6,hill:4,hint:0,hit:0,hmac:8,hoc:8,hold:[5,6],home:4,homebrew:3,hop:[3,4,5,6,7,8],hops_to:5,host:[0,1,3,6,7],hostnam:3,hour:[0,3],how:[0,1,3,4,6,8],howev:[1,4],http:[0,1],hub:3,huge:[],human:[0,5,6],i2p:[1,2,8],i2p_tunnel:3,i2pd:1,i2pinterfac:[1,3],i:[0,7],id:[3,5,6,7],id_callsign:3,id_interv:3,idea:[6,7],ideal:8,ident:[0,1,2,7,8],identif:[2,3,8],identifi:[0,3,5,6],identify:6,identifyexampl:0,ie:7,if00:7,ifac:[6,7],ifac_s:3,ifconfig:7,ignor:[3,5,6],ignored_devic:3,illustr:[4,6],immedi:[1,3,7],impact:[3,6],implement:[0,3,4,5,6,8],implic:3,implicit:[5,6],imposs:6,improv:[2,3],inactive_for:5,inbound:[3,5],includ:[0,2,3,5,6],incom:[0,3,5,7],incompat:[5,6],increas:[3,7],incred:[],incur:3,indefinit:[],independ:[5,6],independt:8,index:[0,1,2],indirectli:6,individu:[5,6],inevit:6,infer:6,info:[5,6,7],inform:[0,1,2,3,4,5,6,7],infrastructur:[1,3,4,6,7],ingo:5,initi:[0,4,5,6,8],initialis:[0,5,7],input:0,insert:6,insid:6,inspect:[1,3,4,6],instal:[1,3,4,7,8],instanc:[0,2,3,5,6,7],instance_control_port:7,instanti:5,instead:[0,3,6,7],integr:[4,6],intend:[4,6],intention:6,inter:5,interact:[0,1,5,6],interchang:3,interconnect:[2,3,6],interest:6,interfac:[0,2,4,5,7],interface_en:[1,3,7],interface_mod:[],intermediari:6,intermitt:3,intern:[3,5],internet:[2,3,6,8],interoper:[1,4,6,8],interv:[3,5],intiat:0,introduc:6,introduct:2,intuit:8,invalid:[0,5],invers:6,investig:4,invis:[1,3],involv:4,io:[1,7],ip:[1,3,6,7,8],ipsum:[],ipv6:[3,7],is_compress:5,is_connected_to_shared_inst:0,is_request:[],is_respons:[],isdir:0,isfil:0,island:4,ism:6,isol:[3,7],issu:4,its:[3,5,6],itself:[2,6],iv:8,job:0,join:[0,1,4,6],just:[0,1,3,4,6,8],k:0,kb:7,kbp:7,keep:[0,4,5,6,7,8],keepal:[5,6],kei:[0,2,4,5,8],kept:[3,4,5,6],kernel:[3,7,8],keyboardinterrupt:0,keyerror:5,keypair:6,keysiz:5,keystor:4,khz:3,ki:0,kill:[5,6],kilomet:[],kind:[3,4,6],kiss:[2,7,8],kiss_fram:3,kissinterfac:[3,7],know:[0,1,4,5,6],knowledg:[4,6],known:[0,5,6,7],krypton:0,l:3,lack:6,laid:6,lan:3,larg:[0,3,4,5,6,8],larger:[4,6],laser:3,last:[0,3,5],last_unit:0,latenc:[1,6,8],later:[0,1,3],latest:[0,1,3],latest_client_link:0,launch:[1,7],lavg:[],layer:[3,4,6,8],lead:6,leak:1,learn:[0,1,6],least:[3,6,7,8],leav:[4,6],ledger:6,left:[3,5,6,7],legaci:4,len:0,length:[0,3,5,6],less:[3,6,8],let:[0,1,3,4,6,7],level:[3,6,7],libffi:1,librari:1,licens:6,light:7,like:[1,3,4,5,6,7,8],limit:[4,6],line:[0,1,3,4,6,8],link:[2,3,4,7,8],link_clos:0,link_establish:0,linkexampl:0,linux:[1,6],list:[0,3,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,7],load:[0,5,7],load_private_kei:5,load_public_kei:5,local:[0,1,3,4,5,6,7,8],locat:[1,4,6,7],log:[0,3,7],log_error:0,log_info:0,loglevel:[0,5,7],longer:[0,4,6,7],longest:3,look:[0,1,3,6,7],loop:0,lora32:[],lora:[1,2,6,8],lorawan:6,lorem:[],lot:6,low:[1,3,4,6,8],lower:[1,3,7],lxmf:1,m:[0,1,6],mac:6,machin:6,maco:1,made:[1,5,6],mai:[1,3,5,6,7],main:0,mainli:4,maintain:6,make:[1,3,6,7],malici:6,manag:[1,4,5,6],mani:[0,1,3,4,5,6,7,8],manipul:6,manner:4,manual:[0,1,3,4,5,7],mark:6,markqvist:[0,1],master:[0,5],match:[0,3,6],matter:3,maximum:[3,5,6],mbp:7,mcu:[],mdu:0,mean:[3,4,6,7],measur:6,mechan:[2,3],medium:[3,4,5,6,8],member:4,memori:6,mention:[3,6],menu:0,menu_mod:0,mesh:[1,3,4,8],messag:[0,1,5,6,7],messeng:6,metadata:1,metavar:0,method:[0,1,3,5,6],methodolog:[6,7],mhz:[3,6],mi:0,microcontrol:6,microwav:[],might:[1,3,4,6,7],millisecond:[0,7],mind:[4,8],minim:[2,6],minimalsampl:0,minimum:[0,3,4,6],minut:[0,1,3,6],mix:[1,3,4,7],mobil:[3,6],mode:[0,1,2,6,7,8],modem:[3,4,5,6,8],moder:3,modifi:[6,7],modul:[0,1,6,7,8],moment:[6,8],momentarili:3,monitor:6,moon:0,mor:[],more:[1,3,4,5,6,7,8],morej:[],most:[1,3,4,6,7],mostli:[3,4,6],motiv:2,move:[1,3,6],mqtt:[],mtu:[5,6,8],much:[1,3,4,7],multi:[6,7,8],multicast:3,multilater:6,multipl:[0,3,4,6,7],multipoint:6,must:[0,1,3,4,5,6],mw:3,my:6,mycal:3,myriad:6,n:[0,6,7],name:[0,2,3,4,5],namespac:0,nano:1,narg:0,natur:3,nearbi:3,nears:6,necesarri:[3,4],necessari:[1,3,5,6],necessarili:6,need:[0,1,2,3,4,5,6,7,8],neglig:6,neither:6,neon:0,net:3,netcat:3,netifac:1,network:[0,3,5,6,7,8],network_nam:3,never:[3,5,6],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:[1,2,3,4,7,8],nodet:[],nomad:2,nomadnet:1,non:[1,5,6],none:[0,3,5,6,7],normal:[0,3,5],notat:[6,7],note:[0,1,3,5,6,7],noth:8,notic:[6,7],notif:[0,5],now:[0,1,4,6,7],nt:0,num:0,number:[0,1,3,4,5,6,7],obfusc:[],object:5,obtain:6,obviusli:6,occasion:1,occur:[7,8],off:[6,8],offer:[1,2,3,5,6],offlin:1,often:[1,3,4,6,7],oganesson:0,old:6,on_interfac:5,onc:[0,1,3,4,5,6,7,8],one:[0,1,3,4,5,6,7,8],ones:[3,7],oneself:6,onli:[0,1,3,4,5,6,7,8],onlin:[],onto:6,open:[0,3,4,5,6,7,8],openmodem:[3,8],openssl:1,oper:[3,4,5,6,7,8],opposit:3,opt:6,optic:8,optim:4,optimis:[],option:[0,1,2,4,5,6,7],order:7,orem:[],organ:4,organis:[3,4],orient:6,origin:[0,4,6],original_hash:[],os:[0,3,6,7,8],ospf:[],other:[1,3,4,5,6,7],otherwis:5,our:[0,6],out:[0,1,3,4,5,6,7,8],outbound:[5,6],outgo:[0,1,3,5,6,7],outli:4,outlier:4,outlin:[1,6],output:[3,7],outward:[],over:[0,2,3,5,6,7,8],overal:6,overcom:6,overhead:[3,6],overrid:0,oversight:6,overview:[2,3,6],overwhelm:[3,5],own:[0,1,4,5,6,7],owner:[],p:0,pack:0,packag:[1,3],packb:0,packet:[0,1,2,3,4,7,8],packet_callback:0,packet_deliv:0,packet_hash:0,packet_receipt:[0,5],packet_timed_out:0,packet_typ:[],packetreceipt:[0,5],pad:8,page:[1,2,6],pair:[3,6],palm:[],panic:7,panic_on_interface_error:7,parallel:1,paramet:[3,4,5,6],pariti:[3,7],pars:0,parse_arg:0,parser:0,part:[0,3,4,5,6],particip:[2,4,6],pass:[0,3,4,5,6,7],passphras:[3,6],past:[],path:[0,1,3,5,6,7],path_respons:5,pathfind:[],pathfinder_m:5,pattern:6,payload:[5,6],peach:0,peer:[0,1,3,5,6,7],peer_pub_byt:[],peer_sig_pub_byt:[],penalti:3,peopl:6,per:[3,5,6,8],percent:0,percentag:5,perfect:[],perform:[0,1,3,4,6],period:[3,6],perman:7,permissionless:6,persecut:6,persist:[3,7],person:6,perspect:[3,6],pet:0,philosophi:6,physic:[1,3,6,7],pi:[0,4,6,7,8],pick:6,piec:6,ping:[1,7],pip3:[1,7],pip:[1,7],pipe:[2,8],pipeinterfac:3,pkcs7:8,pkg:1,place:[4,6,7],plain:[0,3,5,6],plain_mdu:5,plaintext:[0,5],plan:[4,6],platform:[1,6],pleas:[0,1,3,5,7,8],plenti:6,plu:[],plug:7,pmr:6,point:[1,3,4,6,7],pomelo:0,poorli:4,popular:8,port0:7,port:[2,3,4,6,8],portabl:[3,6],posit:7,possess:6,possibl:[1,3,4,5,6,8],potenti:[0,3,6,7],power:[1,3,6],practic:[6,8],pre:[1,3,5,6],preambl:[3,7],precompil:1,predict:6,prefer:6,prepar:[0,4],prerequisit:5,presenc:5,preserv:[1,5],preshar:6,press:0,pretend:6,pretti:6,prettyhexrep:0,previou:0,previous:[4,5,6],primari:6,principl:[6,8],print:[0,3,7],print_filelist:0,print_help:0,print_menu:0,prioriti:6,prioritis:[2,3,4,5],privaci:8,privat:[1,3,5,6,8],privileg:7,probabl:[0,4,6,7,8],probe:7,problem:6,procedur:6,process:[1,3,5,6],product:[],program:[0,2,3,5,6,8],program_setup:0,programm:6,programmat:6,progress:[0,5,8],progress_callback:5,project:1,prompt:0,proof:[0,5,6,7],proof_packet:0,proof_requested_callback:5,proof_strategi:5,propag:[2,3,5],properli:1,properti:[4,5],proport:6,propos:1,protocol:[1,2,3,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,publicli:1,purchas:[4,6,8],purg:5,purpos:[3,5,6],purposefulli:[],put:[0,3],py:[0,1,7],pyseri:1,python3:1,python:[1,6,7,8],q:[0,7],queri:[0,1],question:3,queu:[5,7],queue:[3,6],quickli:[6,8],quiet:[3,7],quinc:0,quit:0,r:[0,3,6,7],radio:[2,3,4,5,6,7,8],radiu:[],radon:0,rais:[0,5],ram:3,rand:[],randint:0,random:[0,5,6],random_text_gener:0,randomis:6,randomli:[0,6],rang:[0,1,3,4,6,8],rapidli:3,rare:3,raspberri:[4,6,7,8],rate:[0,2,7],rather:1,rb:0,re:[0,3,5,6],reach:[2,3,4],reachabl:[0,1,3,4,5,6,7],read:[0,1,3,6,7],readabl:[0,5,6],readi:[0,1,3,4,5,8],readili:8,real:[4,8],realli:[3,5],reappear:3,reason:[3,6],reassembl:6,reboot:1,recal:[0,5],recall_app_data:5,recap:6,receipt:[0,2,6],receiv:[0,1,3,5,6,7],received_announc:[0,5],recent:6,reception_rssi:0,reception_snr:0,reception_stat:0,recip:1,recipi:6,recommend:[0,1,6],reconstruct:6,record:[1,6],recoveri:3,recreat:6,refer:[0,1,2],regard:6,regist:[0,5],register_announce_handl:[0,5],register_request_handl:[0,5],rel:[6,8],relai:1,relat:1,releas:[1,3,6],relev:[0,3,5,6,7],reli:6,reliabl:[3,4,6,8],rem:0,remain:[3,5,6],rememb:6,remot:[0,5],remote_ident:[0,5],remote_identifi:0,remote_identity_hash:[],remote_p:0,remotesensor:6,remov:7,render:1,repeat:1,replac:[1,6,7],repli:[0,7],replic:6,reply_data:0,reply_text:0,report:3,repositori:[1,6],repres:6,represent:[0,6],request:[2,3,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,requestor:3,requestreceipt:5,requir:[0,1,3,4,6,7,8],research:8,resend:5,reserv:6,resid:3,resili:8,resolv:3,resourc:[0,1,2],resource_callback:5,resource_sending_conclud:0,resource_strategi:5,respawn:3,respawn_delai:3,respawn_interv:3,respect:3,respond:[0,5],respons:[2,5,6],response_callback:[0,5],response_gener:[0,5],response_tim:[],rest:[4,8],restart:7,restartsec:7,restor:3,restrict:4,result:[0,6],retain:3,reticulum:[0,3,4],retiiculum:[],retransmiss:6,retransmit:6,retri:6,reveal:[1,5,6,8],review:8,ridicul:6,right:[3,4],rn:[0,1,5,7],rncp:2,rnode:[1,2,6,7,8],rnodeinterfac:[3,7],rnpath:[1,2,3],rnprobe:[1,2],rnsconfig:1,rnsd:[1,2],rnstatu:[1,2,3,6],roam:3,robot:6,rotat:6,round:[0,5,7],rout:[1,3,4,5,6,7,8],routabl:[],router:[3,7],rprogress:0,rsa:[],rssi:0,rtt:[0,5,6],rttstring:0,rule:[2,3],run:[0,1,3,4,5,6,7,8],runtim:6,rust:1,rw:[],rx:3,s:[0,1,3,4,6,7,8],said:6,same:[1,3,4,5,6,7],satisfi:6,save:[5,6],save_error:0,saved_filenam:0,scalabl:8,scale:6,scan:3,scenario:[1,2,6],schedul:5,scope:3,screen:0,seamlessli:3,search:2,second:[0,3,5,6,7,8],secreci:[5,6,8],section:[1,3,4,6,7],secur:[1,6,8],see:[0,1,3,4,5,6,7,8],seek:6,seen:3,segment:[3,4,5,6,8],segment_index:[],select:[0,3],self:[0,4,8],send:[0,3,5,6,7],sender:[0,1,4,6,7],sendig:0,sensibl:1,sensor:6,sent:[0,1,5,6,7],sentiment:6,separ:[1,3,4,6,7],sequenc:[0,5,6,8],serial:[2,6,8],serialinterfac:3,serv:[0,3,4,6,7],serve_path:0,server:[0,1,2,7],server_callback:0,server_destin:0,server_fil:0,server_ident:0,server_link:0,server_loop:0,server_packet_receiv:0,servic:[1,2,4],session:6,set:[0,1,3,4,5,6,7,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,1,2,3],sever:[1,4,5,7],sha256:8,sha:[5,6],shall:6,share:[1,4,5,6,7],share_inst:7,shared_instance_port:7,she:4,shelf:[6,8],shop:0,shorter:3,shortest:6,shorthand:[3,7],should:[0,1,3,4,5,6,7,8],should_allow_unencrypt:[],should_quit:0,should_use_implicit_proof:5,show:7,shown:0,side:[3,8],sideband:2,sight:4,sign:[5,6],signatur:[5,6,8],significantli:3,similar:[1,3,4,7,8],simpl:[0,6,7,8],simpler:3,simplest:[3,6],simpli:[0,1,3,4,6,7],simplic:6,simultan:6,sinc:[0,1,3,4,5,6],singl:[0,3,5,6,7,8],singular:6,sit:[],site:[2,3],situat:[1,3,4,6],size:[0,1,3,5,6],size_str:0,sleep:[0,7],slice:0,slightli:1,slottim:[3,7],slow:[0,3,6],slower:[3,5,6],small:[0,3,4,6,8],smaller:5,snr:0,so:[0,1,3,4,5,6,8],socket:7,softwar:[1,3,6,8],solut:6,solv:6,some:[0,1,3,4,6,7],someon:[1,3],someth:6,somethign:0,soon:5,sort:[3,6],soundmodem:3,sourc:[0,1,4,6,8],space:[0,1,4,6,8],spam:3,span:[3,6],special:[6,7],specif:[0,2,3,5,8],specifi:[0,1,3,4,5,7],spectrum:[3,6],speed:[3,6,7],split:0,sponsor:8,spread:3,spreadingfactor:3,squelch:3,ssid:3,stabl:[6,8],stack:[0,1,4,6,7,8],stage:[1,6],stai:[0,6,7],standard:[1,6],start:[0,2,3,5,6,7],startlimitintervalsec:[],startup:0,state:0,station:3,stationari:[4,7],statist:[0,3],statu:[0,1,2,3,5,6,7],stdin:3,stdio:8,stdout:[0,3],step:1,still:[0,4,6],stock:0,stop:8,stopbit:[3,7],store:[0,6,7],store_tru:0,str:0,strategi:[3,5],stream:6,strength:8,strictli:[3,6],string:[0,5],strong:6,structur:6,subject:[],subnet:[1,4],subsequ:6,succe:1,successful:5,successfulli:0,sucessfulli:6,sudo:[1,7],suffic:6,suffici:[1,3,6,7],suffix:0,suit:[1,6,7],suitabl:[0,1,3,4,6,8],suppli:[4,5,6],support:[0,1,2,4,6,8],sure:[1,7],surveil:6,surviv:6,sy:0,symlink:[1,7],symmetr:[5,6],system:[0,1,2,3,4,5,6,8],systemctl:7,systemd:7,t:[0,1,3,4,5,7],tabl:[1,3,4,6,7],tail:3,tailor:6,take:[0,1,3,6,7,8],taken:[0,6],tangerin:0,target:[0,3,7],target_host:[1,3],target_port:[1,3],tcp:[1,2,4,6,8],tcpclientinterfac:[1,3],tcpinterfac:7,tcpserverinterfac:[1,3],tdata:0,teach:7,teardown:[0,5],teardown_reason:0,teffect:0,tell:[0,3],temperatur:6,ten:6,tend:3,term:[4,6],termin:[1,5],terminolog:[4,6],termux:1,test:[1,3,6],testnet:[2,7],text:[0,1,4,6],tfile:0,tgz:7,than:[0,1,3,4,6],thei:[0,1,3,4,5,6,7],them:[0,1,3,4,6,7],thereaft:6,therefor:[6,8],thi:[0,1,2,3,4,5,6,7,8],thing:1,think:1,those:[4,6],though:[1,3,6],thourough:8,thousand:6,thread:0,three:[4,6],throough:3,throttl:4,through:[1,3,4,5,6,7,8],throughout:6,throughput:[6,8],thu:[4,5,6],ti:[0,6],time:[0,1,3,4,5,6,7],timeout:[0,5,7],timeout_callback:[],timeoutarg:0,timestr:0,tnc:[3,5,7,8],to_fil:5,todai:6,todo:[],togeth:[6,7],token:[5,6],toler:3,too:[0,4],tool:[6,7,8],top:[4,6],topic:6,topographi:[1,4,6],topolog:[3,6],total:[5,6,8],total_s:0,touch:8,toward:[0,3,6],tradeoff:6,tradit:[4,6],traffic:[0,1,3,4,5,6,7],tramsit:[],transceiv:[1,3,6,8],transfer:[0,5,6,7,8],transfer_s:0,transform:8,transmiss:[1,3,5,6],transmit:[0,3,6],transpar:[3,6,7],transpor:[],transport:[0,1,2,3,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:[4,6,8],ttime:0,ttransfer:0,ttyusb0:[3,7],ttyusb1:3,ttyusb2:3,tun0:3,tune:[],tunnel:[3,6,8],tupl:5,turn:7,turnaround:3,tutori:1,two:[0,1,3,4,6],tx:3,txpower:3,txtail:[3,7],type:[0,1,2,3,4,5,7],typeerror:5,ubuntu:7,udp:[2,4,6,7,8],udpinterfac:3,uhf:[7,8],ultim:6,umsgpack:0,uncencrypt:0,uncensor:1,under:7,underli:[4,8],understand:[1,2,7],unencrypt:[0,5,6],unequivoc:6,unexplor:4,unforg:8,unidentifi:0,unifi:4,uninterest:0,uniqu:[6,8],unit:[0,7],unknown:[0,3,5,6],unless:[1,3,5,6],unlicens:6,unlik:6,unorganis:4,unpack:0,unpackb:0,unplug:7,unrecover:7,unreli:3,unsign:[1,7],unsupport:5,until:[0,3,5],unus:7,unwant:6,up:[0,1,3,4,6,7,8],updat:[0,1,5,6],upgrad:[1,6],upkeep:3,upon:[0,6],upset:0,urandom:8,us:[0,2,3,4,5,6],usabl:6,usag:[1,3,7],usb:[4,6,7],useabl:6,user:[0,1,3,4,6,7],user_input:0,userland:8,usernameher:7,usr:7,utf:0,util:[0,2,3,6],utilis:[1,4,7,8],v:7,valid:[0,3,5,6,7],valu:[3,5,6],valueerror:[0,5],vari:[6,7],variabl:0,varieti:[3,6,7,8],variou:[0,1,3,4,6],vast:6,ve:1,vehicl:3,vendor:0,verbos:7,veri:[1,3,4,5,6,7,8],verif:[5,6],verifi:[0,5,6],versa:[4,8],version:[6,7],vhf:[4,6,8],via:[1,3,6,7,8],vice:[4,8],view:[1,3,6,7],violat:3,virtual:[3,4,6,7,8],visibl:0,w:7,wa:[0,3,4,5,6,8],wai:[0,1,3,4,6],wait:[0,3,6,7],want:[0,1,3,4,6,7,8],wantedbi:7,warn:7,warrant:8,wast:3,wb:0,we:[0,1,3,6],websit:3,weight:7,welcom:1,well:[1,3,4,5,6,8],went:0,were:4,what:[0,1,2,5,6],whatev:[5,6],wheel:1,when:[0,1,3,4,5,6,7],whenev:[5,6],where:[1,2,3,4,5,6,7],whereupon:6,whether:[0,3,5,6],which:[0,1,3,4,5,6,7],who:[1,6],wide:[3,6,8],wider:[1,3,6,7],wifi:[1,3,4,6,7,8],wildcard:0,willing:4,window:[],wire:[1,2,3,8],wireless:4,wish:[6,7],within:[0,1,3,4,5,6],without:[1,4,6,8],wlan0:3,won:0,work:[1,3,4,6,7,8],world:[4,8],worri:4,would:[1,3,4,5,6],write:[0,1,3,5,6],written:6,wrong:[0,3],x25519:[5,6,8],x:6,xenon:0,y:0,ye:[1,3,6,7],year:6,yet:[0,3,6],yi:0,ykzlw5ujbaqc2xkec4cpvgyxj257wcrmmgkuxqmqcur7cq3w3lha:1,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:[],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":[1,6],"try":1,The:[6,7],With:1,access:6,ad:1,android:1,announc:[0,3,6],api:5,arm64:1,auto:3,ax:3,base:1,basic:6,binari:[],bridg:4,broadcast:0,build:4,can:8,caveat:8,client:3,code:[0,6],common:3,concept:4,configur:7,connect:1,control:3,converg:4,creat:1,current:8,data:7,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,fix:7,format:6,further:6,get:[1,6],gipsum:[],goal:6,growth:4,i2p:3,ident:[5,6],identif:0,improv:7,includ:[1,7],indic:2,instanc:1,interconnect:4,interfac:[1,3,6,8],internet:[1,4],introduct:6,kei:6,kiss:3,link:[0,5,6],lora:[3,4],manual:2,mechan:6,minim:0,mode:3,motiv:6,name:[6,7],network:[1,2,4],node:6,nomad:1,offer:8,option:3,orem:[],over:[1,4],overview:4,packet:[5,6],particip:1,pathfind:[],pipe:3,port:7,predict:[],prioritis:6,program:[1,7],propag:6,protocol:6,proven:[],radio:1,rate:3,reach:6,receipt:5,refer:[5,6],request:[0,5],resourc:[5,6],respons:0,reticulum:[1,2,5,6,7,8],retiiculum:[],rncp:7,rnode:3,rnpath:7,rnprobe:7,rnsd:7,rnstatu:7,rule:6,run:[],scenario:4,serial:[3,7],server:3,servic:7,setup:6,sideband:1,site:4,specif:6,stack:2,start:1,statu:8,step:[],support:3,system:7,tabl:2,tcp:3,testnet:1,transport:[5,6],type:[6,8],udp:3,understand:6,us:[1,7,8],util:[1,7],virtual:[],what:8,where:8,wire:6,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_link_closed_callback:[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_data_size:[5,1,1,""],get_hash:[5,1,1,""],get_parts:[5,1,1,""],get_progress:[5,1,1,""],get_segments:[5,1,1,""],get_transfer_size:[5,1,1,""],is_compressed:[5,1,1,""]},"RNS.Reticulum":{ANNOUNCE_CAP:[5,2,1,""],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,7],"000":[],"00000000":6,"00000100":6,"00000111":6,"01":6,"01010000":6,"02":[],"05":0,"07":[],"1":[0,3,5,6,7],"10":[0,3,6,7],"100":[0,3,6],"1000":0,"10000000":6,"1024":0,"11":6,"115200":[3,7],"12":3,"1200":6,"125":3,"125000":3,"127":3,"128":[5,6,8],"13":7,"14":6,"141":[],"15":3,"150":[3,7],"150m":3,"151":6,"16":[3,7],"17":7,"18":[],"180":[],"182":[],"187":7,"2":[0,3,5,6,7],"20":[0,3,6,7],"200":[3,7],"2000000":[],"205":[],"211":[],"23":7,"237":[6,8],"24":3,"240":[],"25":[0,2,8],"255":3,"256":[5,6],"256320d405d6d525d1e9":7,"27":7,"270":[],"2f":0,"3":[0,3,6,7,8],"30":7,"323":[],"33":6,"34":[],"360":5,"3600":[0,3],"367":[],"37":[],"37428":7,"37429":7,"38":7,"383":5,"3e12fc71692f8ec47bc5":1,"3w3lha":[],"4":[6,7],"409":[],"4242":3,"430":6,"45":0,"460":[],"469":7,"476":5,"477":6,"48555":3,"49":7,"49555":3,"4965":[1,7],"5":[0,3,5,7],"500":[5,6,8],"5001":3,"507":5,"512":[3,5,6],"5245a8efe1788c6a70e1":7,"55":3,"56b115c30cd386cad69c":7,"5757":3,"590256654482b4ba4038":7,"5urvjicpzi7q3ybztsef4i5ow2aq4soktfj7zedz53s47r54jnqq":3,"6":7,"60":0,"600":3,"62":[6,8],"63":7,"64":[6,7],"7":[3,7],"72":3,"7200":3,"74":7,"77":6,"7c565719ec7a8cdb1fe2":[],"7ca6f4e4dc26ae329e61":[],"8":[0,3,7],"80":[5,6,7],"8001":3,"80e29bf7cccaf31431b3":6,"8111c4ff2968ab0c1286":7,"83":[6,7],"86":7,"867":3,"867200000":3,"868":6,"88":3,"9":7,"900":6,"9382f334de63217a4278":7,"940ea3f9e1037d38758f":7,"95":6,"\u00ec2pd":3,"abstract":6,"break":[5,6,8],"byte":[0,5,6,7,8],"case":[1,3,4,6,7],"class":[0,2,4,8],"default":[0,1,3,4,5,6,7],"do":[0,1,3,5,6,8],"export":1,"final":6,"float":[0,5],"function":[0,1,2,3,4,5,7,8],"import":[0,1,3,4,6],"int":0,"long":[0,3,6],"new":[0,3,4,5,6,7],"public":[0,2,3,5],"return":[0,5,7],"short":[6,7],"static":5,"switch":[3,6],"throw":[],"true":[0,1,3,5,7],"try":[0,2,3],"while":[0,1,3,4,5,6,8],A:[0,1,3,4,5,6,7,8],And:0,As:[1,3,4,5,6,8],At:[4,6],Be:[5,7],But:6,By:[0,1,3,5,6,7],For:[1,3,4,5,6,8],IF:[],IN:[0,5],If:[0,1,3,4,5,6,7,8],In:[0,1,3,4,5,6,7,8],It:[0,1,3,5,6,7,8],No:[3,6,7,8],On:[0,1,3,7],One:5,Or:[3,7,8],That:6,The:[0,1,2,3,4,5,8],Then:1,There:[1,4,6,8],These:[1,3,6,7],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,_other_:[],_with_:3,aarch64:1,ab:0,abil:1,abl:[0,1,3,4,5,6,7],about:[0,1,3,4,5,6],abov:[1,3,6,7],absolut:[1,8],accept:[5,6,7],accept_al:[0,5],accept_app:5,accept_non:5,access:[1,2,3,4,5,7],access_point:3,accomod:6,accord:6,accordingli:0,acheiv:[3,6],achiev:[5,6],acknowledg:8,across:4,act:[1,5,6,7],action:0,activ:[0,1,3,5,6],actor:6,actual:[0,1,3,6],ad9a4c9da60089d41c29:7,ad:[0,2,3,4,5,6,8],adapt:4,add:[0,1,3,4,7],add_argu:0,addit:[3,6,7,8],additio:[],addition:3,addr1:[],addr2:[],address:[0,1,3,4,5,6,8],adher:5,admin:3,administr:7,adress:[0,1,4,5,6,8],advanc:6,advantag:5,adversari:1,advertis:[0,5],advis:6,ae:[6,8],affect:3,after:[0,3,4,6,7],again:[1,3,6,7],against:6,agenc:6,agent:6,agnost:[4,6],agnostic:6,aim:[2,6],air:8,airtim:3,aliv:[5,6],all:[0,1,2,3,4,5,6,7,8],alloc:[3,5,6,7],allow:[0,1,3,4,5,6,7,8],allow_al:[0,5],allow_list:5,allow_non:5,allowed_hash:7,allowed_list:5,almost:[3,6,7],alo:6,alon:3,along:[3,4,6],alreadi:[0,1,4,6,7],als:[],also:[0,1,3,4,5,6,7,8],alter:6,altern:[0,3,7],although:[6,8],alwai:[1,3,5,6,7],amateur:[3,8],amet:[],amount:[3,4,5,6,8],an:[0,1,3,4,5,6,7,8],android:2,ani:[0,1,3,4,5,6,7,8],annouce_cap:3,announc:[2,5,7],announce_cap:[3,5],announce_handl:0,announce_rate_grac:3,announce_rate_penalti:3,announce_rate_target:3,announced_ident:[0,5],announceloop:0,announcesampl:0,announec:[],anonym:[1,4,5,6,8],anoth:[1,5,6,7],answer:[6,7],anymor:1,anyon:[0,1,4,5,6,7],anyth:[3,6,7,8],anywher:[0,3],ap:3,apart:[],api:[1,2,6,8],apk:1,app:[0,1,5,6],app_and_aspects_from_nam:5,app_data:[0,5],app_nam:[0,5],app_timeout:0,append:[0,6],appli:[5,6],applic:[0,3,4,5,6,7],approach:[6,7],approv:6,approxim:[],apt:1,ar:[0,1,3,4,5,6,7,8],arbitrari:[5,6],arbritrari:8,architectur:1,area:[3,4,6,8],arg:0,argon:0,argpars:0,argument:[0,5,7],argumentpars:0,arm64:2,around:6,arriv:[0,6],ask:[0,5],aspect:[0,3,5,6],aspect_filt:[0,5],assign:[6,7],associ:[1,5,6],assum:[3,6],asymmetr:[6,8],attached_interfac:[],attack:1,attempt:5,attribut:5,audit:8,auth:7,authent:[1,3,4,5,6,7,8],author:6,auto:[2,5,6],auto_compress:5,autoconfigur:[3,8],autodiscov:3,autointerfac:[3,7],autom:6,automat:[0,1,3,4,5,6,7,8],autonom:[4,6],autoomat:0,avail:[0,1,3,4,5,6,7,8],availadbl:[],averag:6,avoid:[6,7],awai:[0,3,4,6,7],awar:6,ax25kissinterfac:3,ax:[2,8],b32:[1,3],b:[0,4,7],back:[0,3,6,8],background:[1,3],backhaul:4,balanc:3,band:6,bandwidth:[1,3,4,5,6,8],bare:0,barrier:6,base32:3,base:[2,3,4,5,6,7,8],basi:[3,5,6,7,8],basic:[0,1,2,5,7],baud:3,beacon:3,beam:[],becaus:[4,6],becki:0,becom:[0,1,4,6],been:[0,1,3,4,5,6,8],befor:[0,1,3,5,6,7],begin:[0,5],begun:5,behalf:3,behaviour:[3,7],behind:[1,6],being:[3,5,6],beings:6,belief:6,below:[1,3,7],benefici:[3,7],best:[1,6,8],beta:8,better:3,between:[0,3,4,5,6],bgp:[],bi:6,bidirect:6,billion:[4,6],bin:7,binari:[0,1,6],bind:3,bit:[3,5,6,7,8],bitrat:3,blob:[0,6],block:3,board:[1,6,8],boot:7,both:[1,3,4,5,6,7,8],boundari:3,bp:[],breviti:7,bridg:2,briefli:6,bring:3,broadcast:[1,2,3,5,6],broadcast_destin:0,broadcastloop:0,brought:[3,7],browser:1,buffer:3,bug:8,build:[0,1,2,3,6,8],built:[1,3,6,8],bundl:0,c:[0,4],cabl:4,cad:[],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,cap:3,capabl:6,capac:[3,5,6],carambola:0,care:[1,5,8],carefulli:1,cargo_build_target:1,carri:[3,5,6,7],carrier:[4,8],cat:7,caution:3,caveat:2,cb:6,cbc:8,cd:1,cdma:3,censor:6,censorship:6,central:[4,6],centralis:6,certain:[0,3,4,6],chain:3,challeng:6,chang:[0,1,3,5,6,7,8],channel:[0,3,4,6,8],channelarg:0,chapter:[1,3,4,6,7,8],charact:0,characterist:6,cheap:6,check:[0,1,5,6],checksum:[5,8],choos:[0,1,3,6],choosen:6,chose:6,chosen:4,chunk:0,ciphertext:5,ciphertext_token:5,circumst:6,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,4,5,7],closed_callback:5,closer:6,closest:6,cluster:6,co:[3,8],code:[1,2,3,7],codingr:3,com:[0,1],combin:[1,4,6],come:[1,6],comma:3,command:[0,1,3,7],comment:[3,7],common:[1,2,4,6,7,8],commun:[0,1,3,4,5,6,7,8],compat:[1,3,5,6],compil:1,complet:[0,1,3,4,5,6,7,8],complex:[3,6],compon:6,compos:6,compress:[0,5,6],comput:[1,6,8],concaten:5,concept:[2,6,7],conceptu:6,conclud:[0,5],concurr:[6,7],condit:6,config:[0,1,4,7],configarg:0,configdir:5,configpath:0,configur:[0,1,2,3,4,5,6,8],confirm:[6,8],confus:6,congest:6,conjunct:3,connect:[0,2,3,4,5,6,7,8],consequ:[],conserv:3,consid:[6,8],consider:[],consist:6,constant:5,constantli:6,construct:6,consumpt:[],contact:6,contain:[0,4,5,6,7],contend:6,content:[4,7],context:6,contin:3,continu:8,control:[0,1,2,4,5,6],conveni:0,convent:0,converg:[2,6],coordin:[4,5,6,8],copi:7,core:[4,6,8],correct:[0,6],correctli:0,correspond:6,cost:[6,8],could:[0,1,3,4,5,6,8],count:6,counter:0,cours:[3,6],cover:[6,8],coverag:4,cpu:0,cpuinfo:7,creat:[0,2,3,4,5,6,7,8],create_kei:5,create_receipt:[0,5],creation:6,creator:6,critic:[6,7],cryptograph:[4,8],cryptographi:[1,6,8],ctrl:0,cull:5,current:[0,1,2,3,5,6],current_download:0,current_filenam:0,curv:[4,5,6,8],curve25519:[4,5,6,8],custom:[3,5,6,8],custom_network_nam:3,customis:3,d:[4,7],daemon:[1,3,5,7],dai:4,data:[0,1,2,3,4,5,6,8],data_port:3,databit:[3,7],date:[0,1],db:0,dbm:[0,3],de:[],debian:[6,7],debug:7,decai:[],decid:[4,5,6],decis:3,decod:0,decreas:7,decrypt:[5,6],dedic:[3,6],deep:1,def:0,default_timeout:[],defin:[0,3,6,7],definit:6,degrad:4,degre:3,delai:[1,3,6,7],deliv:[0,5],deliveri:[0,1,5,8],demand:5,demonstr:[0,3],depend:[1,4,6,7],deploi:6,deregist:5,deregister_announce_handl:5,deregister_request_handl:5,deriv:[6,8],describ:[3,5,6],descript:[0,7],design:[1,4,6,8],desir:[0,3,6],destin:[0,1,2,3,4,7],destination_1:0,destination_2:0,destination_clos:0,destination_hash:[0,5,7],destination_hexhash:0,detail:[0,1,2,3,5,7,8],detect:0,determin:[1,5,6],dev:[1,3,7],develop:[2,6,8],devic:[1,2,3,4,5,6,7],dh:5,dhcp:[3,7],did:0,differ:[0,1,3,4,5,6,7,8],diffi:[4,6,8],difficult:1,digit:[6,8],dir:0,direct:[0,1,4,5,6,7],directli:[3,5,6,7,8],directori:[0,7],disabl:[3,6,7],disable_encrypt:[],disappear:[3,7],disassoci:6,discard:6,disconnect:0,discov:[1,3],discover:3,discoveri:[3,6,7],discovery_port:3,discovery_scop:3,discrimin:4,discuss:[1,6],disk:[0,5],displai:[0,6],dissolv:4,distanc:6,distant:5,distinct:[3,6],distinguish:6,distribut:[0,1,4,5,6,7],divid:5,divmod:0,document:6,doe:[0,1,2,3,4,5,6,7],doesn:3,dolor:[],domain:[1,3],don:[0,1,4,5,7],done:[0,1,3,4,6,7],dori:4,dot:[6,7],down:[0,3,5],downgrad:[],download:[0,3,7],download_began:0,download_conclud:0,download_finish:0,download_start:0,download_tim:0,driver:[7,8],droid:1,drop:[5,6,7],due:4,duplex:[6,8],dynam:[1,7],e28d5aee4317c24a9041:7,e702c42ba8:7,e:[0,4],each:[0,1,3,4,6,7],earli:1,earlier:6,eas:[3,6],easi:[1,3,6,7,8],easier:[1,3,4,7],easiest:[1,3,6],easili:[3,4,6,7,8],eca6f4e4dc26ae329e61:7,ecdh:[6,8],echo:[1,2,7],echo_destin:0,echo_request:0,ed25519:[6,8],edit:[1,7],effeci:[],effect:3,effici:[0,1,3,6,8],ei:0,either:[3,4,6,7],elaps:3,elif:0,ellipt:[4,5,6,8],els:[0,4,6],emploi:6,emptor:2,emul:1,enabl:[1,3,4,5,6,7],enable_transport:[6,7],encapsul:[3,8],encod:0,encrypt:[0,1,4,5,6,8],encrypted_mdu:5,encryptionless:[],end:[0,3,4,5,6,8],endless:3,endpoint:[0,4,5,6],energi:1,enforc:3,engin:[],enhanc:6,enough:[1,6],ensur:[3,5,6],enter:[0,7],entir:[4,6,7],entiti:6,entri:[0,1,6],enumer:0,environ:[1,4,6],environment:6,environmentlogg:6,eof:3,ephemer:[4,5,6,8],equal:[4,6],equip:[3,4,6],equival:3,equl:[],error:[0,1,7],especi:3,essenti:[1,3,6],establish:[0,1,3,4,5,8],established_callback:5,establishment_timeout_per_hop:5,etc:7,eth0:3,eth1:3,ethernet:[1,3,4,6,8],even:[1,3,4,6,7,8],event:3,eventu:5,everi:[0,3,4,5,6],everyon:[4,6],everyth:[0,4,6],evolv:4,exact:[3,6],exactli:[5,6],exampl:[1,2,3,5,6,7,8],example_util:[0,7],exampleannouncehandl:0,exampleconfig:7,exce:[0,3,5],except:[0,3],excess:3,exchang:[4,5,6,8],exclud:6,execstart:7,execstartpr:7,execut:[0,1,3,5,7],exhaust:6,exist:[0,1,3,6,7,8],exit:[0,1,5,7],exit_handl:0,expand:6,expect:[0,3,5,6,7],experi:[1,6],experiment:[1,8],expir:3,expiri:3,explain:5,explan:[6,7],explicit:5,explicitli:[],explor:[0,6,8],expos:[3,5],extend:[0,1,5],extern:[1,3,5,8],extra:[1,3,4,7],extrem:[1,6,7,8],f:1,fa7ddfab5213f916dea:6,face:[1,3],fact:8,factor:3,fail:[0,5],failed_callback:[0,5],failur:[1,3],fals:[0,3,5,7],far:[4,6],fast:[2,3,5,6],faster:[1,3,6],fastest:[3,6],featur:[1,6,8],feed:5,feedback:0,feel:1,fernet:8,few:[1,3,4,6,7,8],fewer:5,fibr:8,field:6,file:[0,1,3,4,5,6,7,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],firewal:[1,3],firmwar:[1,6],first:[0,1,3,5,6,7],fit:0,five:0,fix:[2,6],flag:[5,6],flexibl:[3,8],flow:[3,4],flow_control:3,flush:0,folder:1,follow:[0,1,3,6,7,8],forcibl:[5,7],foreground:1,foremost:8,form:[1,3,4,5,6],format:[0,2,8],forth:0,forward:[3,5,6,8],forward_ip:3,forward_port:3,found:[0,1,3,4,6,7],four:4,frame:3,frankfurt:[1,7],free:[4,8],freedom:6,freeli:6,frequenc:[3,6],frequent:3,friendli:8,from:[0,1,3,4,5,6,7,8],from_byt:5,from_fil:5,fromhex:0,fruit:0,ftdi_ft230x_basic_uart_43891ckm:7,full:[0,3,5,6,7,8],full_hash:5,full_nam:[5,7],fulli:[6,8],funcion:5,fundament:6,further:[1,2,3],furthermor:[],futur:[4,6],g:0,ga:0,gain:6,galact:6,gatekeep:6,gatewai:[1,3,4,6],gbp:7,gen:[],gener:[0,1,3,4,5,6,7,8],generalis:8,geograph:4,get:[0,2,3,5,8],get_data_s:5,get_hash:5,get_packet_rssi:0,get_packet_snr:0,get_part:5,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_seg:5,get_statu:5,get_transfer_s:5,geti2p:3,ghz:6,gi:0,gigabyt:8,gipsum:[],git:1,github:[0,1],give:[3,6,7],given:[3,4,5,6,7],global:[0,1,3,4,6,8],go:[0,1,3,6],goal:[2,3],good:[4,6,7],got:0,got_respons:0,govern:6,gracefulli:3,grape:0,graphic:1,great:6,greater:6,greatli:3,group:[3,5,6],group_id:3,grow:4,growth:2,guarante:[1,6],guess:3,guid:[1,5,6],gw:3,h:[1,7],ha:[0,1,3,4,5,6,8],hack:8,had:6,half:[6,8],hand:[0,1],handheld:6,handl:[0,3,4,5,6,7,8],handler:[0,5],happen:[0,5,6],hardlin:4,hardwar:[1,3,4,5,6,7,8],has_path:[0,5],hasattr:0,hash1:6,hash2:6,hash:[0,1,5,6,7],hash_from_name_and_ident:5,hashmap:0,have:[0,1,3,4,5,6,7],hazard:5,head:1,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,1,3,6,7],hexadecim:[0,6,7],hide:1,high:[3,6,8],higher:[4,8],highli:6,hill:4,hint:0,hit:0,hmac:8,hoc:8,hold:[5,6],home:4,homebrew:3,hop:[3,4,5,6,7,8],hops_to:5,host:[0,1,3,6,7],hostnam:3,hour:[0,3],how:[0,1,3,4,6,8],howev:[1,4],http:[0,1],hub:3,huge:[],human:[0,5,6],i2p:[1,2,8],i2p_tunnel:3,i2pd:1,i2pinterfac:[1,3],i:[0,7],id:[3,5,6,7],id_callsign:3,id_interv:3,idea:[6,7],ideal:8,ident:[0,1,2,7,8],identif:[2,3,8],identifi:[0,3,5,6,7],identify:6,identifyexampl:0,ie:7,if00:7,ifac:[6,7],ifac_s:3,ifconfig:7,ignor:[3,5,6],ignored_devic:3,illustr:[4,6],immedi:[1,3,7],impact:[3,6],implement:[0,3,4,5,6,8],implic:3,implicit:[5,6],imposs:6,improv:[2,3],inactive_for:5,inbound:[3,5],includ:[0,2,3,5,6],incom:[0,3,5,7],incompat:[5,6],increas:[3,7],incred:[],incur:3,indefinit:[],independ:[5,6],independt:8,index:[0,1,2],indirectli:6,individu:[5,6],inevit:6,infer:6,info:[5,6,7],inform:[0,1,2,3,4,5,6,7],infrastructur:[1,3,4,6,7],ingo:5,initi:[0,4,5,6,8],initialis:[0,5,7],input:[0,7],insert:6,insid:6,inspect:[1,3,4,6],instal:[1,3,4,7,8],instanc:[0,2,3,5,6,7],instance_control_port:7,instanti:5,instead:[0,3,6,7],integr:[4,6],intend:[4,6],intention:6,inter:5,interact:[0,1,5,6,7],interchang:3,interconnect:[2,3,6],interest:6,interfac:[0,2,4,5,7],interface_en:[1,3,7],interface_mod:[],intermediari:6,intermitt:3,intern:[3,5],internet:[2,3,6,8],interoper:[1,4,6,8],interv:[3,5],intiat:0,introduc:6,introduct:2,intuit:8,invalid:[0,5],invers:6,investig:4,invis:[1,3],involv:4,io:[1,7],ip:[1,3,6,7,8],ipsum:[],ipv6:[3,7],is_compress:5,is_connected_to_shared_inst:0,is_request:[],is_respons:[],isdir:0,isfil:0,island:4,ism:6,isol:[3,7],issu:4,its:[3,5,6],itself:[2,6],iv:8,job:0,join:[0,1,4,6],just:[0,1,3,4,6,8],k:0,kb:7,kbp:7,keep:[0,4,5,6,7,8],keepal:[5,6],kei:[0,2,4,5,8],kept:[3,4,5,6],kernel:[3,7,8],keyboardinterrupt:0,keyerror:5,keypair:6,keysiz:5,keystor:4,khz:3,ki:0,kill:[5,6],kilomet:[],kind:[3,4,6],kiss:[2,7,8],kiss_fram:3,kissinterfac:[3,7],know:[0,1,4,5,6],knowledg:[4,6],known:[0,5,6,7],krypton:0,l:[3,7],lack:6,laid:6,lan:3,larg:[0,3,4,5,6,8],larger:[4,6],laser:3,last:[0,3,5],last_unit:0,latenc:[1,6,8],later:[0,1,3],latest:[0,1,3],latest_client_link:0,launch:[1,7],lavg:[],layer:[3,4,6,8],lead:6,leak:1,learn:[0,1,6],least:[3,6,7,8],leav:[4,6],ledger:6,left:[3,5,6,7],legaci:4,len:0,length:[0,3,5,6],less:[3,6,8],let:[0,1,3,4,6,7],level:[3,6,7],libffi:1,librari:1,licens:6,light:7,like:[1,3,4,5,6,7,8],limit:[4,6],line:[0,1,3,4,6,8],link:[2,3,4,7,8],link_clos:0,link_establish:0,linkexampl:0,linux:[1,6],list:[0,3,5,6,8],list_deliv:0,list_fil:0,list_packet:0,list_receipt:0,list_timeout:0,listdir:0,listen:[0,3,6,7],listen_ip:3,listen_port:3,littl:6,lki:6,lkr:6,ll:[0,1,8],ln:[1,7],load:[0,5,7],load_private_kei:5,load_public_kei:5,local:[0,1,3,4,5,6,7,8],locat:[1,4,6,7],log:[0,3,7],log_error:0,log_info:0,loglevel:[0,5,7],longer:[0,4,6,7],longest:3,look:[0,1,3,6,7],loop:0,lora32:[],lora:[1,2,6,8],lorawan:6,lorem:[],lot:6,low:[1,3,4,6,8],lower:[1,3,7],lxmf:1,m:[0,1,6,7],mac:6,machin:6,maco:1,made:[1,5,6],mai:[1,3,5,6,7],main:0,mainli:4,maintain:6,make:[1,3,6,7],malici:6,manag:[1,4,5,6,7],mani:[0,1,3,4,5,6,7,8],manipul:6,manner:4,manual:[0,1,3,4,5,7],mark:6,markqvist:[0,1],master:[0,5],match:[0,3,6],matter:3,max:7,maximum:[3,5,6],mbp:7,mcu:[],mdu:0,mean:[3,4,6,7],measur:6,mechan:[2,3],medium:[3,4,5,6,8],member:4,memori:6,mention:[3,6],menu:0,menu_mod:0,mesh:[1,3,4,8],messag:[0,1,5,6,7],messeng:6,metadata:1,metavar:0,method:[0,1,3,5,6],methodolog:[6,7],mhz:[3,6],mi:0,microcontrol:6,microwav:[],might:[1,3,4,6,7],millisecond:[0,7],mind:[4,8],minim:[2,6],minimalsampl:0,minimum:[0,3,4,6],minut:[0,1,3,6],mirror:7,mix:[1,3,4,7],mobil:[3,6],mode:[0,1,2,6,7,8],modem:[3,4,5,6,8],moder:3,modifi:[6,7],modul:[0,1,6,7,8],moment:[6,8],momentarili:3,monitor:6,moon:0,mor:[],more:[1,3,4,5,6,7,8],morej:[],most:[1,3,4,6,7],mostli:[3,4,6],motiv:2,move:[1,3,6],mqtt:[],mtu:[5,6,8],much:[1,3,4,7],multi:[6,7,8],multicast:3,multilater:6,multipl:[0,3,4,6,7],multipoint:6,must:[0,1,3,4,5,6],mw:3,my:6,mycal:3,myriad:6,n:[0,6,7],name:[0,2,3,4,5],namespac:0,nano:1,narg:0,natur:3,nearbi:3,nears:6,necesarri:[3,4],necessari:[1,3,5,6],necessarili:6,need:[0,1,2,3,4,5,6,7,8],neglig:6,neither:6,neon:0,net:3,netcat:3,netifac:1,network:[0,3,5,6,7,8],network_nam:3,never:[3,5,6],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,noauth:7,nobl:0,noble_ga:0,noble_gas:0,node:[1,2,3,4,7,8],nodet:[],noid:7,nomad:2,nomadnet:1,non:[1,5,6],none:[0,3,5,6,7],normal:[0,3,5],notat:[6,7],note:[0,1,3,5,6,7],noth:8,notic:[6,7],notif:[0,5],now:[0,1,4,6,7],nt:0,num:0,number:[0,1,3,4,5,6,7],obfusc:[],object:5,obtain:6,obviusli:6,occasion:1,occur:[7,8],off:[6,8],offer:[1,2,3,5,6],offlin:1,often:[1,3,4,6,7],oganesson:0,old:6,on_interfac:5,onc:[0,1,3,4,5,6,7,8],one:[0,1,3,4,5,6,7,8],ones:[3,7],oneself:6,onli:[0,1,3,4,5,6,7,8],onlin:[],onto:6,open:[0,3,4,5,6,7,8],openmodem:[3,8],openssl:1,oper:[3,4,5,6,7,8],opposit:3,opt:6,optic:8,optim:4,optimis:[],option:[0,1,2,4,5,6,7],order:7,orem:[],organ:4,organis:[3,4],orient:6,origin:[0,4,6],original_hash:[],os:[0,3,6,7,8],ospf:[],other:[1,3,4,5,6,7],otherwis:5,our:[0,6],out:[0,1,3,4,5,6,7,8],outbound:[5,6],outgo:[0,1,3,5,6,7],outli:4,outlier:4,outlin:[1,6],output:[3,7],outward:[],over:[0,2,3,5,6,7,8],overal:6,overcom:6,overhead:[3,6],overrid:0,oversight:6,overview:[2,3,6],overwhelm:[3,5],own:[0,1,4,5,6,7],owner:[],p:[0,7],pack:0,packag:[1,3],packb:0,packet:[0,1,2,3,4,7,8],packet_callback:0,packet_deliv:0,packet_hash:0,packet_receipt:[0,5],packet_timed_out:0,packet_typ:[],packetreceipt:[0,5],pad:8,page:[1,2,6],pair:[3,6],palm:[],panic:7,panic_on_interface_error:7,parallel:1,paramet:[3,4,5,6],pariti:[3,7],pars:0,parse_arg:0,parser:0,part:[0,3,4,5,6],particip:[2,4,6],pass:[0,3,4,5,6,7],passphras:[3,6],past:[],path:[0,1,3,5,6,7],path_respons:5,pathfind:[],pathfinder_m:5,pattern:6,payload:[5,6],peach:0,peer:[0,1,3,5,6,7],peer_pub_byt:[],peer_sig_pub_byt:[],penalti:3,peopl:6,per:[3,5,6,8],percent:0,percentag:5,perfect:[],perform:[0,1,3,4,6],period:[3,6],perman:7,permissionless:6,persecut:6,persist:[3,7],person:6,perspect:[3,6],pet:0,philosophi:6,physic:[1,3,6,7],pi:[0,4,6,7,8],pick:6,piec:6,ping:[1,7],pip3:[1,7],pip:[1,7],pipe:[2,8],pipeinterfac:3,pkcs7:8,pkg:1,place:[4,6,7],plain:[0,3,5,6],plain_mdu:5,plaintext:[0,5],plan:[4,6],platform:[1,6],pleas:[0,1,3,5,7,8],plenti:6,plu:[],plug:7,pmr:6,point:[1,3,4,6,7],pomelo:0,poorli:4,popular:8,port0:7,port:[2,3,4,6,8],portabl:[3,6],posit:7,possess:6,possibl:[1,3,4,5,6,8],potenti:[0,3,6,7],power:[1,3,6],practic:[6,8],pre:[1,3,5,6],preambl:[3,7],precompil:1,predict:6,prefer:6,prepar:[0,4],prerequisit:5,presenc:5,preserv:[1,5],preshar:6,press:0,pretend:6,pretti:6,prettyhexrep:0,previou:0,previous:[4,5,6],primari:6,principl:[6,8],print:[0,3,7],print_filelist:0,print_help:0,print_menu:0,prioriti:6,prioritis:[2,3,4,5],privaci:8,privat:[1,3,5,6,8],privileg:7,probabl:[0,4,6,7,8],probe:7,problem:6,proc:7,procedur:6,process:[1,3,5,6],product:[],program:[0,2,3,5,6,8],program_setup:0,programm:6,programmat:6,progress:[0,5,8],progress_callback:5,project:1,prompt:0,proof:[0,5,6,7],proof_packet:0,proof_requested_callback:5,proof_strategi:5,propag:[2,3,5],properli:1,properti:[4,5],proport:6,propos:1,protocol:[1,2,3,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,pseudo:7,pub_byt:5,public_inform:0,publicli:1,purchas:[4,6,8],purg:5,purpos:[3,5,6],purposefulli:[],put:[0,3],py:[0,1],pyseri:1,python3:1,python:[1,6,7,8],q:[0,7],queri:[0,1],question:3,queu:[5,7],queue:[3,6],quickli:[6,8],quiet:[3,7],quinc:0,quit:0,r:[0,3,6,7],radio:[2,3,4,5,6,7,8],radiu:[],radon:0,rais:[0,5],ram:3,rand:[],randint:0,random:[0,5,6],random_text_gener:0,randomis:6,randomli:[0,6],rang:[0,1,3,4,6,7,8],rapidli:3,rare:3,raspberri:[4,6,7,8],rate:[0,2,7],rather:1,rb:0,re:[0,3,5,6],reach:[2,3,4],reachabl:[0,1,3,4,5,6,7],read:[0,1,3,6,7],readabl:[0,5,6],readi:[0,1,3,4,5,8],readili:8,real:[4,8],realli:[3,5],reappear:3,reason:[3,6],reassembl:6,reboot:1,recal:[0,5],recall_app_data:5,recap:6,receipt:[0,2,6],receiv:[0,1,3,5,6,7],received_announc:[0,5],recent:6,reception_rssi:0,reception_snr:0,reception_stat:0,recip:1,recipi:6,recommend:[0,1,6],reconstruct:6,record:[1,6],recoveri:3,recreat:6,recurs:5,refer:[0,1,2],regard:6,regist:[0,5],register_announce_handl:[0,5],register_request_handl:[0,5],rel:[6,8],relai:1,relat:1,releas:[1,3,6],relev:[0,3,5,6,7],reli:6,reliabl:[3,4,6,8],rem:0,remain:[3,5,6],rememb:6,remot:[0,5,7],remote_ident:[0,5],remote_identifi:0,remote_identity_hash:[],remote_p:0,remotesensor:6,remov:7,render:1,repeat:1,replac:[1,6,7],repli:[0,7],replic:6,reply_data:0,reply_text:0,report:3,repositori:[1,6],repres:6,represent:[0,6],request:[2,3,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,requestor:3,requestreceipt:5,requir:[0,1,3,4,6,7,8],research:8,resend:5,reserv:6,resid:3,resili:8,resolv:3,resourc:[0,1,2],resource_callback:5,resource_sending_conclud:0,resource_strategi:5,respawn:3,respawn_delai:3,respawn_interv:3,respect:3,respond:[0,5],respons:[2,5,6],response_callback:[0,5],response_gener:[0,5],response_tim:[],rest:[4,8],restart:7,restartsec:7,restor:3,restrict:4,result:[0,6,7],retain:3,reticulum:[0,3,4],retiiculum:[],retransmiss:6,retransmit:6,retri:6,reveal:[1,5,6,8],review:8,ridicul:6,right:[3,4],rn:[0,1,5,7],rncp:2,rnode:[1,2,6,7,8],rnodeinterfac:[3,7],rnpath:[1,2,3],rnprobe:[1,2],rnsconfig:1,rnsd:[1,2],rnstatu:[1,2,3,6],rnx:2,roam:3,robot:6,rotat:6,round:[0,5,7],rout:[1,3,4,5,6,7,8],routabl:[],router:[3,7],rprogress:0,rsa:[],rssi:0,rtt:[0,5,6],rttstring:0,rule:[2,3],run:[0,1,3,4,5,6,7,8],runtim:6,rust:1,rw:[],rx:3,s:[0,1,3,4,6,7,8],said:6,same:[1,3,4,5,6,7],satisfi:6,save:[5,6],save_error:0,saved_filenam:0,scalabl:8,scale:6,scan:3,scenario:[1,2,6],schedul:5,scope:3,screen:0,seamlessli:3,search:2,second:[0,3,5,6,7,8],secreci:[5,6,8],section:[1,3,4,6,7],secur:[1,6,8],see:[0,1,3,4,5,6,7,8],seek:6,seen:3,segment:[3,4,5,6,8],segment_index:[],select:[0,3],self:[0,4,8],send:[0,3,5,6,7],sender:[0,1,4,6,7],sendig:0,sensibl:1,sensor:6,sent:[0,1,5,6,7],sentiment:6,separ:[1,3,4,6,7],sequenc:[0,5,6,8],serial:[2,6,8],serialinterfac:3,serv:[0,3,4,6,7],serve_path:0,server:[0,1,2,7],server_callback:0,server_destin:0,server_fil:0,server_ident:0,server_link:0,server_loop:0,server_packet_receiv:0,servic:[1,2,4],session:6,set:[0,1,3,4,5,6,7,8],set_default_app_data:5,set_delivery_callback:[0,5],set_link_closed_callback:[0,5],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,1,2,3],sever:[1,4,5,7],sha256:8,sha:[5,6],shall:6,share:[1,4,5,6,7],share_inst:7,shared_instance_port:7,she:4,shelf:[6,8],shell:7,shop:0,shorter:3,shortest:6,shorthand:[3,7],should:[0,1,3,4,5,6,7,8],should_allow_unencrypt:[],should_quit:0,should_use_implicit_proof:5,show:7,shown:0,side:[3,8],sideband:2,sight:4,sign:[5,6],signatur:[5,6,8],significantli:3,similar:[1,3,4,7,8],simpl:[0,6,7,8],simpler:3,simplest:[3,6],simpli:[0,1,3,4,6,7],simplic:6,simultan:6,sinc:[0,1,3,4,5,6],singl:[0,3,5,6,7,8],singular:6,sit:[],site:[2,3],situat:[1,3,4,6],size:[0,1,3,5,6,7],size_str:0,sleep:[0,7],slice:0,slightli:1,slottim:[3,7],slow:[0,3,6],slower:[3,5,6],small:[0,3,4,6,8],smaller:5,snr:0,so:[0,1,3,4,5,6,8],socket:7,softwar:[1,3,6,8],solut:6,solv:6,some:[0,1,3,4,6,7],someon:[1,3],someth:6,somethign:0,soon:5,sort:[3,6],soundmodem:3,sourc:[0,1,4,6,8],space:[0,1,4,6,8],spam:3,span:[3,6],special:[6,7],specif:[0,2,3,5,8],specifi:[0,1,3,4,5,7],spectrum:[3,6],speed:[3,6,7],split:0,sponsor:8,spread:3,spreadingfactor:3,squelch:3,ssid:3,stabl:[6,8],stack:[0,1,4,6,7,8],stage:[1,6],stai:[0,6,7],standard:[1,6],start:[0,2,3,5,6,7],startlimitintervalsec:[],startup:0,state:0,station:3,stationari:[4,7],statist:[0,3],statu:[0,1,2,3,5,6,7],stderr:7,stdin:[3,7],stdio:8,stdout:[0,3,7],step:1,still:[0,4,6],stock:0,stop:8,stopbit:[3,7],store:[0,6,7],store_tru:0,str:0,strategi:[3,5],stream:6,strength:8,strictli:[3,6],string:[0,5],strong:6,structur:6,subject:[],subnet:[1,4],subsequ:6,succe:1,successful:5,successfulli:0,sucessfulli:6,sudo:[1,7],suffic:6,suffici:[1,3,6,7],suffix:0,suit:[1,6,7],suitabl:[0,1,3,4,6,8],suppli:[4,5,6],support:[0,1,2,4,6,8],sure:[1,7],surveil:6,surviv:6,sy:0,symlink:[1,7],symmetr:[5,6],system:[0,1,2,3,4,5,6,8],systemctl:7,systemd:7,t:[0,1,3,4,5,7],tabl:[1,3,4,6,7],tag:5,tail:3,tailor:6,take:[0,1,3,6,7,8],taken:[0,6],tangerin:0,target:[0,3,7],target_host:[1,3],target_port:[1,3],task:7,tcp:[1,2,4,6,8],tcpclientinterfac:[1,3],tcpinterfac:7,tcpserverinterfac:[1,3],tdata:0,teach:7,teardown:[0,5],teardown_reason:0,teffect:0,tell:[0,3],temperatur:6,ten:6,tend:3,term:[4,6],termin:[1,5],terminolog:[4,6],termux:1,test:[1,3,6],testnet:[2,7],text:[0,1,4,6],tfile:0,tgz:7,than:[0,1,3,4,6],thei:[0,1,3,4,5,6,7],them:[0,1,3,4,6,7],thereaft:6,therefor:[6,8],thi:[0,1,2,3,4,5,6,7,8],thing:1,think:1,those:[4,6],though:[1,3,6],thourough:8,thousand:6,thread:0,three:[4,6],throough:3,throttl:4,through:[1,3,4,5,6,7,8],throughout:6,throughput:[6,8],thu:[4,5,6],ti:[0,6],time:[0,1,3,4,5,6,7],timeout:[0,5,7],timeout_callback:[],timeoutarg:0,timestr:0,tnc:[3,5,7,8],to_fil:5,todai:6,todo:[],togeth:[6,7],token:[5,6],toler:3,too:[0,4],tool:[6,7,8],top:[4,6],topic:6,topographi:[1,4,6],topolog:[3,6],torn:5,total:[5,6,8],total_s:0,touch:8,toward:[0,3,6],tradeoff:6,tradit:[4,6],traffic:[0,1,3,4,5,6,7],tramsit:[],transceiv:[1,3,6,8],transfer:[0,5,6,7,8],transfer_s:0,transform:8,transmiss:[1,3,5,6],transmit:[0,3,6],transpar:[3,6,7],transpor:[],transport:[0,1,2,3,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:[4,6,8],ttime:0,ttransfer:0,ttyusb0:[3,7],ttyusb1:3,ttyusb2:3,tun0:3,tune:[],tunnel:[3,6,8],tupl:5,turn:7,turnaround:3,tutori:1,two:[0,1,3,4,6],tx:3,txpower:3,txtail:[3,7],type:[0,1,2,3,4,5,7],typeerror:5,ubuntu:7,udp:[2,4,6,7,8],udpinterfac:3,uhf:[7,8],ultim:6,umsgpack:0,uncencrypt:0,uncensor:1,under:7,underli:[4,8],understand:[1,2,7],unencrypt:[0,5,6],unequivoc:6,unexplor:4,unforg:8,unidentifi:0,unifi:4,uninterest:0,uniqu:[6,8],unit:[0,7],unknown:[0,3,5,6],unless:[1,3,5,6],unlicens:6,unlik:6,unorganis:4,unpack:0,unpackb:0,unplug:7,unrecover:7,unreli:3,unsign:[1,7],unsupport:5,until:[0,3,5],unus:7,unwant:6,up:[0,1,3,4,6,7,8],updat:[0,1,5,6],upgrad:[1,6],upkeep:3,upon:[0,6],upset:0,urandom:8,us:[0,2,3,4,5,6],usabl:6,usag:[1,3,7],usb:[4,6,7],useabl:6,user:[0,1,3,4,6,7],user_input:0,userland:8,usernameher:7,usr:7,utf:0,util:[0,2,3,6],utilis:[1,4,7,8],v:7,valid:[0,3,5,6,7],valu:[3,5,6],valueerror:[0,5],vari:[6,7],variabl:0,varieti:[3,6,7,8],variou:[0,1,3,4,6],vast:6,ve:1,vehicl:3,vendor:0,verbos:7,veri:[1,3,4,5,6,7,8],verif:[5,6],verifi:[0,5,6],versa:[4,8],version:[6,7],vhf:[4,6,8],via:[1,3,6,7,8],vice:[4,8],view:[1,3,6,7],violat:3,virtual:[3,4,6,7,8],visibl:0,w:7,wa:[0,3,4,5,6,8],wai:[0,1,3,4,6],wait:[0,3,6,7],want:[0,1,3,4,6,7,8],wantedbi:7,warn:7,warrant:8,wast:3,wb:0,we:[0,1,3,6],websit:3,weight:7,welcom:1,well:[1,3,4,5,6,8],went:0,were:4,what:[0,1,2,5,6],whatev:[5,6],wheel:1,when:[0,1,3,4,5,6,7],whenev:[5,6],where:[1,2,3,4,5,6,7],whereupon:6,whether:[0,3,5,6],which:[0,1,3,4,5,6,7],who:[1,6],wide:[3,6,8],wider:[1,3,6,7],wifi:[1,3,4,6,7,8],wildcard:0,willing:4,window:[],wire:[1,2,3,8],wireless:4,wish:[6,7],within:[0,1,3,4,5,6],without:[1,4,6,8],wlan0:3,won:0,work:[1,3,4,6,7,8],world:[4,8],worri:4,would:[1,3,4,5,6],write:[0,1,3,5,6],written:6,wrong:[0,3],x25519:[5,6,8],x:[6,7],xenon:0,y:0,ye:[1,3,6,7],year:6,yet:[0,3,6],yi:0,ykzlw5ujbaqc2xkec4cpvgyxj257wcrmmgkuxqmqcur7cq3w3lha:1,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:[],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":[1,6],"try":1,The:[6,7],With:1,access:6,ad:1,android:1,announc:[0,3,6],api:5,arm64:1,auto:3,ax:3,base:1,basic:6,binari:[],bridg:4,broadcast:0,build:4,can:8,caveat:8,client:3,code:[0,6],common:3,concept:4,configur:7,connect:1,control:3,converg:4,creat:1,current:8,data:7,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,fix:7,format:6,further:6,get:[1,6],gipsum:[],goal:6,growth:4,i2p:3,ident:[5,6],identif:0,improv:7,includ:[1,7],indic:2,instanc:1,interconnect:4,interfac:[1,3,6,8],internet:[1,4],introduct:6,kei:6,kiss:3,link:[0,5,6],lora:[3,4],manual:2,mechan:6,minim:0,mode:3,motiv:6,name:[6,7],network:[1,2,4],node:6,nomad:1,offer:8,option:3,orem:[],over:[1,4],overview:4,packet:[5,6],particip:1,pathfind:[],pipe:3,port:7,predict:[],prioritis:6,program:[1,7],propag:6,protocol:6,proven:[],radio:1,rate:3,reach:6,receipt:5,refer:[5,6],request:[0,5],resourc:[5,6],respons:0,reticulum:[1,2,5,6,7,8],retiiculum:[],rncp:7,rnode:3,rnpath:7,rnprobe:7,rnsd:7,rnstatu:7,rnx:7,rule:6,run:[],scenario:4,serial:[3,7],server:3,servic:7,setup:6,sideband:1,site:4,specif:6,stack:2,start:1,statu:8,step:[],support:3,system:7,tabl:2,tcp:3,testnet:1,transport:[5,6],type:[6,8],udp:3,understand:6,us:[1,7,8],util:[1,7],virtual:[],what:8,where:8,wire:6,your:7}}) \ No newline at end of file diff --git a/docs/manual/using.html b/docs/manual/using.html index 8f851ad..c29aa79 100644 --- a/docs/manual/using.html +++ b/docs/manual/using.html @@ -169,6 +169,9 @@ take a look at the

      Included Utility Programs

      +

      Reticulum includes a range of useful utilities, both for managing your Reticulum +networks, and for carrying out common tasks over Reticulum networks, such as +transferring files to remote systems, and executing commands and programs remotely.

      If you often use Reticulum from several different programs, or simply want Reticulum to stay available all the time, for example if you are hosting a transport node, you might want to run Reticulum as a separate service that @@ -323,34 +326,91 @@ optional arguments:

      The rncp utility is a simple file transfer tool. Using it, you can transfer files through Reticulum.

      # Run rncp on the receiving system, specifying which identities
      -# are allowed to send files.
      -rncp --receive --allow 940ea3f9e1037d38758f --allow e28d5aee4317c24a9041
      +# are allowed to send files
      +rncp --receive -a 940ea3f9e1037d38758f -a e28d5aee4317c24a9041
       
       # From another system, copy a file to the receiving system
       rncp ~/path/to/file.tgz 256320d405d6d525d1e9
       

      You can specify as many allowed senders as needed, or complete disable authentication.

      -
      usage: rncp.py [-h] [--config path] [-v] [-q] [-i] [-r] [-b] [-a ALLOW] [-n] [-w seconds] [--version] [file] [destination]
      +
      usage: rncp [-h] [--config path] [-v] [-q] [-p] [-r] [-b] [-a allowed_hash] [-n] [-w seconds] [--version] [file] [destination]
       
       Reticulum File Transfer Utility
       
       positional arguments:
      -  file                     file to be transferred
      -  destination              hexadecimal hash of the receiver
      +  file                  file to be transferred
      +  destination           hexadecimal hash of the receiver
       
       optional arguments:
      -  -h, --help               show this help message and exit
      -  --config path            path to alternative Reticulum config directory
      -  -v, --verbose            increase verbosity
      -  -q, --quiet              decrease verbosity
      -  -i, --identity           print identity and destination info and exit
      -  -r, --receive            wait for incoming files
      -  -b, --no-announce        don't announce at program start
      -  -a ALLOW, --allow ALLOW  accept from this identity
      -  -n, --no-auth            accept files from anyone
      -  -w seconds               sender timeout before giving up
      -  --version                show program's version number and exit
      +  -h, --help            show this help message and exit
      +  --config path         path to alternative Reticulum config directory
      +  -v, --verbose         increase verbosity
      +  -q, --quiet           decrease verbosity
      +  -p, --print-identity  print identity and destination info and exit
      +  -r, --receive         wait for incoming files
      +  -b, --no-announce     don't announce at program start
      +  -a allowed_hash       accept from this identity
      +  -n, --no-auth         accept files from anyone
      +  -w seconds            sender timeout before giving up
      +  --version             show program's version number and exit
      +  -v, --verbose
      +
      +
      +
      +
      +

      The rnx Utility

      +

      The rnx utility is a basic remote command execution program. It allows you to +execute commands on remote systems over Reticulum, and to view returned command +output.

      +
      # Run rnx on the listening system, specifying which identities
      +# are allowed to execute commands
      +rncp --listen -a 8111c4ff2968ab0c1286 -a 590256654482b4ba4038
      +
      +# From another system, run a command
      +rnx ad9a4c9da60089d41c29 "cat /proc/cpuinfo"
      +
      +# Or enter the interactive mode pseudo-shell
      +rnx ad9a4c9da60089d41c29 -x
      +
      +# The default identity file is stored in
      +# ~/.reticulum/identities/rnx, but you can use
      +# another one, which will be created if it does
      +# not already exist
      +rnx ad9a4c9da60089d41c29 -i /path/to/identity
      +
      +
      +

      You can specify as many allowed senders as needed, or complete disable authentication.

      +
      usage: rnx [-h] [--config path] [-v] [-q] [-p] [-l] [-i identity] [-x] [-b] [-a allowed_hash] [-n] [-N] [-d] [-m] [-w seconds] [-W seconds] [--stdin STDIN] [--stdout STDOUT] [--stderr STDERR] [--version]
      +           [destination] [command]
      +
      +Reticulum Remote Execution Utility
      +
      +positional arguments:
      +  destination           hexadecimal hash of the listener
      +  command               command to be execute
      +
      +optional arguments:
      +  -h, --help            show this help message and exit
      +  --config path         path to alternative Reticulum config directory
      +  -v, --verbose         increase verbosity
      +  -q, --quiet           decrease verbosity
      +  -p, --print-identity  print identity and destination info and exit
      +  -l, --listen          listen for incoming commands
      +  -i identity           path to identity to use
      +  -x, --interactive     enter interactive mode
      +  -b, --no-announce     don't announce at program start
      +  -a allowed_hash       accept from this identity
      +  -n, --noauth          accept files from anyone
      +  -N, --noid            don't identify to listener
      +  -d, --detailed        show detailed result output
      +  -m                    mirror exit code of remote command
      +  -w seconds            connect and request timeout before giving up
      +  -W seconds            max result download time
      +  --stdin STDIN         pass input to stdin
      +  --stdout STDOUT       max size in bytes of returned stdout
      +  --stderr STDERR       max size in bytes of returned stderr
      +  --version             show program's version number and exit
       
      @@ -452,6 +512,7 @@ WantedBy=multi-user.target
    • The rnpath Utility
    • The rnprobe Utility
    • The rncp Utility
    • +
    • The rnx Utility
  • Improving System Configuration
      diff --git a/docs/source/using.rst b/docs/source/using.rst index 2e916bd..186e64d 100644 --- a/docs/source/using.rst +++ b/docs/source/using.rst @@ -138,6 +138,10 @@ take a look at the :ref:`Interfaces` chapter of this manual. Included Utility Programs ------------------------- +Reticulum includes a range of useful utilities, both for managing your Reticulum +networks, and for carrying out common tasks over Reticulum networks, such as +transferring files to remote systems, and executing commands and programs remotely. + If you often use Reticulum from several different programs, or simply want Reticulum to stay available all the time, for example if you are hosting a transport node, you might want to run Reticulum as a separate service that @@ -314,8 +318,8 @@ files through Reticulum. .. code:: text # Run rncp on the receiving system, specifying which identities - # are allowed to send files. - rncp --receive --allow 940ea3f9e1037d38758f --allow e28d5aee4317c24a9041 + # are allowed to send files + rncp --receive -a 940ea3f9e1037d38758f -a e28d5aee4317c24a9041 # From another system, copy a file to the receiving system rncp ~/path/to/file.tgz 256320d405d6d525d1e9 @@ -324,26 +328,88 @@ You can specify as many allowed senders as needed, or complete disable authentic .. code:: text - usage: rncp.py [-h] [--config path] [-v] [-q] [-i] [-r] [-b] [-a ALLOW] [-n] [-w seconds] [--version] [file] [destination] + usage: rncp [-h] [--config path] [-v] [-q] [-p] [-r] [-b] [-a allowed_hash] [-n] [-w seconds] [--version] [file] [destination] Reticulum File Transfer Utility positional arguments: - file file to be transferred - destination hexadecimal hash of the receiver + file file to be transferred + destination hexadecimal hash of the receiver optional arguments: - -h, --help show this help message and exit - --config path path to alternative Reticulum config directory - -v, --verbose increase verbosity - -q, --quiet decrease verbosity - -i, --identity print identity and destination info and exit - -r, --receive wait for incoming files - -b, --no-announce don't announce at program start - -a allowed_hash accept from this identity - -n, --no-auth accept files from anyone - -w seconds sender timeout before giving up - --version show program's version number and exit + -h, --help show this help message and exit + --config path path to alternative Reticulum config directory + -v, --verbose increase verbosity + -q, --quiet decrease verbosity + -p, --print-identity print identity and destination info and exit + -r, --receive wait for incoming files + -b, --no-announce don't announce at program start + -a allowed_hash accept from this identity + -n, --no-auth accept files from anyone + -w seconds sender timeout before giving up + --version show program's version number and exit + -v, --verbose + + +The rnx Utility +================ + +The ``rnx`` utility is a basic remote command execution program. It allows you to +execute commands on remote systems over Reticulum, and to view returned command +output. + +.. code:: text + + # Run rnx on the listening system, specifying which identities + # are allowed to execute commands + rncp --listen -a 8111c4ff2968ab0c1286 -a 590256654482b4ba4038 + + # From another system, run a command + rnx ad9a4c9da60089d41c29 "cat /proc/cpuinfo" + + # Or enter the interactive mode pseudo-shell + rnx ad9a4c9da60089d41c29 -x + + # The default identity file is stored in + # ~/.reticulum/identities/rnx, but you can use + # another one, which will be created if it does + # not already exist + rnx ad9a4c9da60089d41c29 -i /path/to/identity + +You can specify as many allowed senders as needed, or complete disable authentication. + +.. code:: text + + usage: rnx [-h] [--config path] [-v] [-q] [-p] [-l] [-i identity] [-x] [-b] [-a allowed_hash] [-n] [-N] [-d] [-m] [-w seconds] [-W seconds] [--stdin STDIN] [--stdout STDOUT] [--stderr STDERR] [--version] + [destination] [command] + + Reticulum Remote Execution Utility + + positional arguments: + destination hexadecimal hash of the listener + command command to be execute + + optional arguments: + -h, --help show this help message and exit + --config path path to alternative Reticulum config directory + -v, --verbose increase verbosity + -q, --quiet decrease verbosity + -p, --print-identity print identity and destination info and exit + -l, --listen listen for incoming commands + -i identity path to identity to use + -x, --interactive enter interactive mode + -b, --no-announce don't announce at program start + -a allowed_hash accept from this identity + -n, --noauth accept files from anyone + -N, --noid don't identify to listener + -d, --detailed show detailed result output + -m mirror exit code of remote command + -w seconds connect and request timeout before giving up + -W seconds max result download time + --stdin STDIN pass input to stdin + --stdout STDOUT max size in bytes of returned stdout + --stderr STDERR max size in bytes of returned stderr + --version show program's version number and exit Improving System Configuration