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