From b506ca94d0ddee51f919a294da71271a248b8ef5 Mon Sep 17 00:00:00 2001 From: Mark Qvist Date: Sun, 8 Sep 2024 17:56:02 +0200 Subject: [PATCH] Updated documentation and manual --- docs/Reticulum Manual.epub | Bin 2569396 -> 2569597 bytes docs/Reticulum Manual.pdf | Bin 2412688 -> 2413199 bytes docs/manual/genindex.html | 2 ++ docs/manual/objects.inv | Bin 2616 -> 2624 bytes docs/manual/reference.html | 23 +++++++++++++++++++---- docs/manual/searchindex.js | 2 +- 6 files changed, 22 insertions(+), 5 deletions(-) diff --git a/docs/Reticulum Manual.epub b/docs/Reticulum Manual.epub index 5d921761251eb39f0fd587115f06c2e7854364eb..b5a375dc29848b01486d00313f2a78a435229c6e 100644 GIT binary patch delta 28457 zcmV)ZK&!vB>6`)m>YM?v9svmXjwo5eX@EkLCIKQ9g08JLFR^3T{tg9tYk{`;F1-j8 zIg?!hC4X+@hpq#HO2$RDa(}-5?#!+n6bVD+5P%X^L&8=07AlU78K4&WRrOtv; z7|sHzQul}(*En=p6r{$1aG#t?@c%0CI0IpM%0aK(N^FGO)kdWu<@=S(6Dc=l;dK3M zB_&B!5dG$JTL~~eQK|r+$}-R_4O;n$%!9oJQGXA@csQrPT|YU_vII*Qv80{F0>}En zOwg(QYaJNv^{UcEqh&OJ0!o~W2_ipgd&0gLZ6;k|(AFT9!Rhy2VYw|}{Wn-ntD-8M zKf&&#-Z=kQ40q$xDtZS7hH9=XPHf#pt&yF!_hPDnSgF^45Jdj9<;FJJL-SE5h1EQ% z>VL*l=xKW|R#j4Plfwn}Xy~YT|tTdzIlgTvV|CEg9_s5yxUu~7Fg z@xm7`oWDl1#dNxuM*p^PsjaQHUVO|isX*JemCL9FU7AISsg6YE-hk9@*9l#YcFFFp zLx1MaKH*>#(56c-#Q+<3ZFL2o@JqO;tAFy-ddvt}6du`g>;p%MNk)pJU;C*phqg9| z;3*i}A-RRJSqMS*u9IU~u3Rgr-+V2BapKuG1uM5MLETQ1&VAB zDE#Q}b6d-9!fJC%>ZZoQw2%ujVDfq40S75HzhfK+oqOngiWoL^&h z$gj`(<$_ijE6cBw#^E`sZXUpi&N(SBhU}x`(K)E(qB28B<8zWKhJhv*ptr1fO%90D zMdE8=;zDLJo<^TICGbUX@_z_e8pQ=Tc@6aWAK2mtwxC|MP##cmfG000yH000L7004AvV=iuEc)gulbKAI*$KU5uu z-3QvbSeA4)$&_O|iEC^}B`Y&$_C*Dekj08ba(MCOeEJ1=k%$&4p#d;2=Oh`syMF)( z{Bdi1`2B6Owq9rydw+rd@uYj!Ir;t5Zy$W;ZTFA8PG?|uPb~J6e*E!dl_cT6&d*<8 zU(a0P#qVc9^nCuG{&;kG&VTZp{qFh6r{65=!-^7@|AGB+Lla{8WJ5omxXI#Qspp

VGGd-{>^`#)iD{pMOj@ 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

E%h|2Ckw^AhD^pqOhT%ya*If|4Ei*(8h=R* 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 delta 73788 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 NqzE}VRdiJe{|jR5|49G< diff --git a/docs/manual/genindex.html b/docs/manual/genindex.html index 1596093..fa9df49 100644 --- a/docs/manual/genindex.html +++ b/docs/manual/genindex.html @@ -293,6 +293,8 @@

  • create_reader() (RNS.Buffer static method)
  • create_writer() (RNS.Buffer static method) +
  • +
  • current_ratchet_id() (RNS.Identity static method)
  • CURVE (RNS.Identity attribute) diff --git a/docs/manual/objects.inv b/docs/manual/objects.inv index 2cca7a573eb992363b0c5fd06264a1bea39858db..bceab998d41e9b8231cd255c9d3d0bb27a0b4b2e 100644 GIT binary patch delta 1931 zcmV;62Xy$j6u=a)%mRNA6%20IJSuj1q%LX7a2!&D;gmsgcM_Pp)Al66Zmc3nLfd$5 zSR?XBlUqQji$+ly#A=wRv&mzUMvFYoXlUjjevY6xaSlG^W`So_>1}5b`yWD=0W)KwsH~rKA*3q zufE&phGa&5n$9+Ffs00SdHUmjiK%e{mDK|rVWQ&F)f0;*x~2n*_c{-sgXzp^+KMKp z?81`!9{NsOmnrel`CP)9V`{KerwO+q|8YXgjvqpiOA&nLa!#BGJY&{)WzpW=A}Ep~ zK|XN^{fsp!qh)_=bLEh12iUYC!xYVAEHGyGH z3)z|8$fjA86!Fbgz@}v47pT~`ASGL1#A5oD*%KHT7v{&4wAil2=skP0K~EOz=gs@d zHj37nx#bepIYnm6T9xi=F&PD%%$Kv^eI@I9eH?5t8%=**y-xk*2wKa+{>-OQJxt5g z*#tLqz$Y!wXf?qN-Z9V)uM&$8&I73g11?{1cdj}^Ng#W$lhY3G$_SETi1Rm*olLm= zHp!YY2_d5q5r$*ND_?}DR~WaLUA=p_MXCJ)%$nl102hi^OTxrtB=^B|%S#WidHG0s zb=*ke(E@)wry0jL(o1I_sbRm*1D$!T9+QIha4z*F8rR~Z7~+T^wkxDr5rTV(6GbjX zS-x`eKkUr3ZJHaT9I7Dh&T?|u8j<6J?1J2hPzGfjVD3vpIMj@3F3q*wqJl(4QlwTs zrm>Uha{0Dh&gS84YTM_Z$qRq!FSd*D!QTYa&D?*Tzu7u-dZu}4TU5Zd#GyPuhs|sG zqVdesJw=K#CESiLQCdq5L@q(u^k1wy4(VT~Zx{)&c6QUc< z$FYCZE1o^FbI~*Z7p+s3o^93&<>X#}o5Mx?XM%Q+K<+O>tHUT8Y+U==!3J**kZi#6 zc)|*pA~H1mbmel@;ju02uc@GuL5PP>no2J_Y zL&DLKUT4e!Vc_zeMpcSjr#;n>hHef)uTp(|(iWB5)sVZptWA^$Mh2cj2b7|L)Ar518rcK~d3?&7vuKIcVuTmSmnR@D z7)=^#g`k5X5@U>Muz!C0W03v#1VG>Y^}1h!e9MO<{BNrZ+^lS-?jtp^A)O`u^6DQi zmW%RAQX;*quKPjw;L={6QP;h??BVB}!rmP;!ce`1gxC2rSH3%FNSeY@oP~eh6t6Co zlN=A}tR$v)Ians6&;UJHO3*6}&=ryUv`7T8lUkI}UM-FpL4(e+R;XSD5#`Yke=}Qo zvxGoGx~RczG{BBeNSVDFMLf87wvY9_15VWwvGdb?bwfoVaHb-`I(BC&nl-{!bxpw^ z3X;UqlXc+ZhSReb8dO=1bjW`-a|Y~OouDPin&z6is%~$y*lLx^%D2i7W~Ck16GMe6 zy^L#a*~%wLPm|E*`!%E{4`-utERE(xE^A51hF2+T1ACxwt1`5Z?Z9>BwuF2UXu3>B zyW<$K=-4ExYidE)>i!C-ciO`G^6N_)tMAv;)s>!=s1wh#s!;;Vr#dlXuZqFk=XV?XnWi;U_Y(mH~0+Hl`viyYwI`lY8?;vJ?RgD%DvY>0q zLzhRQJwVlORXQzbuevW2XIzvVs7fEChWAt#X^m2AhclFR_Dk;|^_;sbNtZ>rn_hbn zbSb$nm^ii@jb5#)#(aNLjJ6y_iH$|i64&DDg8+hU1bhQ-seIs5n0YPAAY&Rt_sV>j-|;sKeA1HH{ze RzX!LC#((bq5Ag%DS>&&X%%}hW delta 1922 zcmV-|2YvX!6u1o zZ1WblXf&6nKY*8*8YfU`IlvJnDlT0;a%iG!I(pP4ptXN2?9Y4})x)$*olS5<2Yk}< zkW~}h;2i_)@G7wg;XIH^FyQh9cju}@kOZ;^J2~y}u8bflhB$u{*~x^x%}ks9{M<#359d-}qH!%giXn~&V!J|`6(P8nI8o$Ml;tZY|HIBq z+orie%ApG4?kp#ltr0ms$S%m82xU;l0p`9mghS1k=F(i-EhfFV;Vb|E|+iH zmyh!x zTv$G`Gr4ET{zrBOwk2xsC#!e7E^nI7LJ(~rc!;ATi{?BO)QyzkpAg+>K8~f{(d?0( zi=Kb^zi6GR^lYel`q-zVy25&zamv`dcO|lJXoUg}hS<9u+BDrJ7!r<-^g3e> z2m_bzG^$eMI_;^3G<0(adX?(yleVbbu7=#*Wo@E7Ff#BII-nE{EXP8D45>Ptyh_pq zJokQse^v3%D+OLsV;Xgc-i*fBo9jyk-xCu$ *Q+6z%aA=HVE~=rX8Q}8->41L+ z^}xA^k!Q6p66-x+k{$Tn0cRwO@z16a)m0_v%YOkWgrumW!+qtW+J^33#eG)Sy|udG zJxQlMA{KukhU)^=wQ9N2w8*p*aPLLmG|ZlbYY3DJ*DrCNt{%BI)AK?tvG}6wL)s0E z`vPSJIEqQ8yveVwR<>t*awwRbwr_v#)yO6|$m3JqoJC8l79+eszB~bO!D!M@D+C=B zkr-o4gZ=Z{AA{__Cjk2Huh;z=>{+o~#2O zH=Lfm(4fk4q(iQmGhpZH1TB9-)->1DRdsut#a63SR=!n!@ha`Oo){`r>1AAV%T_)~ zdYXhb->)Gxc{m%DV`(%ma#>44HoQt%8`uMdTa}@OYzMA0wK(gQ>J5gz5rP&=Ab(1>~_@<$`G@3nFd&GFV1 zsU>QXB|mY2Q>zuIa_$<7BJb#_vlY9w)Yz8Bg+r7J8dW1^4ioPR-p&vFoELb*vpw+P zcQC?Rm(y3&zTLv>yTnFAt!I2i<}84?hcvq^0SOc;Uq|q(MjfWEsA>Fw|2?>EH2!n< If07JCZSU8yS^xk5 diff --git a/docs/manual/reference.html b/docs/manual/reference.html index c83a5f3..6dc4431 100644 --- a/docs/manual/reference.html +++ b/docs/manual/reference.html @@ -417,7 +417,7 @@ for addressable hashes and other purposes. Non-configurable.

    data – Data to be hashed as bytes.

    Returns:
    -

    SHA-256 hash as bytes

    +

    SHA-256 hash as bytes.

    @@ -431,7 +431,7 @@ for addressable hashes and other purposes. Non-configurable.

    data – Data to be hashed as bytes.

    Returns:
    -

    Truncated SHA-256 hash as bytes

    +

    Truncated SHA-256 hash as bytes.

    @@ -445,7 +445,21 @@ for addressable hashes and other purposes. Non-configurable.

    data – Data to be hashed as bytes.

    Returns:
    -

    Truncated SHA-256 hash of random data as bytes

    +

    Truncated SHA-256 hash of random data as bytes.

    +
    + + + +
    +
    +static current_ratchet_id(destination_hash)#
    +

    Get the ID of the currently used ratchet key for a given destination hash

    +
    +
    Parameters:
    +

    destination_hash – A destination hash as bytes.

    +
    +
    Returns:
    +

    A ratchet ID as bytes or None.

    @@ -563,7 +577,7 @@ communication for the identity. Be very careful with this method.

    -decrypt(ciphertext_token, ratchets=None, enforce_ratchets=False)#
    +decrypt(ciphertext_token, ratchets=None, enforce_ratchets=False, ratchet_id_receiver=None)#

    Decrypts information for the identity.

    Parameters:
    @@ -2058,6 +2072,7 @@ will announce it.

  • full_hash()
  • truncated_hash()
  • get_random_hash()
  • +
  • current_ratchet_id()
  • from_bytes()
  • from_file()
  • to_file()
  • diff --git a/docs/manual/searchindex.js b/docs/manual/searchindex.js index 1e89297..892a671 100644 --- a/docs/manual/searchindex.js +++ b/docs/manual/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["examples", "forhumans", "gettingstartedfast", "hardware", "index", "interfaces", "networks", "reference", "support", "understanding", "using", "whatis"], "filenames": ["examples.rst", "forhumans.rst", "gettingstartedfast.rst", "hardware.rst", "index.rst", "interfaces.rst", "networks.rst", "reference.rst", "support.rst", "understanding.rst", "using.rst", "whatis.rst"], "titles": ["Code Examples", "An Explanation of Reticulum for Human Beings", "Getting Started Fast", "Communications Hardware", "Reticulum Network Stack Manual", "Configuring Interfaces", "Building Networks", "API Reference", "Support Reticulum", "Understanding Reticulum", "Using Reticulum on Your System", "What is Reticulum?"], "terms": {"A": [0, 2, 5, 6, 7, 9, 10, 11], "number": [0, 2, 5, 6, 7, 9, 10], "ar": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11], "includ": [0, 3, 4, 5, 7, 9, 11], "sourc": [0, 2, 3, 6, 9, 11], "distribut": [0, 2, 6, 7, 9, 10], "reticulum": [0, 5, 6, 7], "you": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], "can": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10], "us": [0, 3, 4, 5, 6, 7, 9], "learn": [0, 2, 8, 9], "how": [0, 2, 3, 5, 6, 9, 10, 11], "write": [0, 2, 5, 7, 9, 10], "your": [0, 2, 3, 4, 5, 6, 8, 9, 11], "own": [0, 2, 6, 7, 9, 10, 11], "program": [0, 3, 4, 5, 7, 9, 11], "The": [0, 2, 3, 4, 5, 6, 7, 11], "demonstr": [0, 5], "bare": [0, 5], "minimum": [0, 5, 6, 7, 9], "setup": [0, 2, 4, 5, 10], "requir": [0, 2, 5, 6, 7, 9, 10, 11], "connect": [0, 3, 4, 5, 6, 7, 9, 10, 11], "network": [0, 3, 5, 7, 9, 10, 11], "from": [0, 2, 3, 5, 6, 7, 9, 10, 11], "In": [0, 2, 3, 5, 6, 7, 9, 10, 11], "about": [0, 2, 3, 5, 6, 7, 9], "five": 0, "line": [0, 2, 4, 5, 6, 9, 10, 11], "have": [0, 2, 3, 5, 6, 7, 9, 10], "stack": [0, 2, 6, 7, 9, 10, 11], "initialis": [0, 7, 10], "readi": [0, 2, 3, 5, 6, 7, 11], "pass": [0, 3, 5, 6, 7, 9, 10], "traffic": [0, 2, 5, 6, 7, 9, 10], "thi": [0, 2, 3, 4, 5, 6, 7, 9, 10, 11], "rn": [0, 2, 3, 7, 9, 10], "start": [0, 3, 4, 5, 7, 9, 10], "up": [0, 2, 3, 5, 6, 7, 9, 10, 11], "gener": [0, 2, 3, 5, 6, 7, 9, 10, 11], "new": [0, 4, 6, 7, 9, 10], "destin": [0, 2, 4, 6, 7, 10], "let": [0, 2, 5, 6, 9, 10], "user": [0, 2, 5, 6, 9, 10, 11], "send": [0, 5, 7, 9, 10], "an": [0, 2, 3, 5, 6, 7, 9, 10, 11], "import": [0, 2, 3, 5, 6, 7, 8, 9], "argpars": 0, "": [0, 2, 5, 6, 9, 10, 11], "defin": [0, 5, 7, 9, 10], "app": [0, 2, 7, 9], "name": [0, 4, 5, 6, 7], "we": [0, 2, 3, 5, 8, 9], "ll": [0, 2, 11], "all": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], "creat": [0, 4, 5, 6, 7, 9, 10, 11], "sinc": [0, 2, 5, 6, 7, 9], "basic": [0, 2, 4, 7, 10], "i": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10], "part": [0, 5, 6, 7, 9, 10], "rang": [0, 2, 3, 5, 6, 9, 10, 11], "util": [0, 3, 4, 5, 9], "put": [0, 3, 5, 10], "them": [0, 2, 3, 5, 6, 8, 9, 10, 11], "within": [0, 2, 5, 6, 7, 9], "namespac": 0, "example_util": 0, "app_nam": [0, 7], "execut": [0, 2, 5, 7, 10], "when": [0, 2, 3, 5, 6, 7, 9, 10], "def": 0, "program_setup": 0, "configpath": 0, "must": [0, 2, 5, 6, 7, 9, 10], "first": [0, 2, 5, 7, 9, 10], "randomli": [0, 9], "ident": [0, 2, 4, 7, 10, 11], "our": [0, 9], "just": [0, 2, 3, 5, 6, 9, 11], "endpoint": [0, 6, 7, 9], "address": [0, 2, 5, 6, 7, 9, 10, 11], "commun": [0, 2, 4, 5, 6, 7, 8, 9, 10, 11], "also": [0, 2, 3, 4, 5, 6, 7, 9, 10, 11], "exist": [0, 2, 3, 5, 9, 10, 11], "which": [0, 2, 5, 6, 7, 9, 10], "know": [0, 2, 3, 6, 7, 9, 11], "thei": [0, 2, 5, 6, 7, 9, 10], "reachabl": [0, 2, 5, 6, 7, 9, 10], "automat": [0, 2, 3, 5, 6, 7, 9, 10, 11], "path": [0, 2, 3, 5, 7, 9, 10], "anywher": [0, 5], "els": [0, 2, 6, 9], "IN": [0, 7], "singl": [0, 5, 7, 9, 10, 11], "minimalsampl": 0, "configur": [0, 2, 3, 4, 6, 7, 9, 11], "prove": [0, 9], "packet": [0, 2, 4, 5, 6, 7, 10, 11], "By": [0, 2, 5, 7, 9, 10], "do": [0, 2, 3, 5, 7, 9, 10, 11], "proof": [0, 7, 9, 10], "each": [0, 2, 5, 6, 7, 9, 10], "incom": [0, 5, 7, 10], "transmit": [0, 5, 9], "back": [0, 5, 9, 11], "sender": [0, 2, 6, 9, 10], "anyon": [0, 2, 3, 5, 6, 7, 9, 10], "tri": 0, "whether": [0, 5, 7, 9], "wa": [0, 3, 5, 6, 7, 9, 10, 11], "receiv": [0, 2, 5, 7, 9, 10], "correctli": 0, "set_proof_strategi": [0, 7], "prove_al": [0, 7], "everyth": [0, 6, 9], "hand": 0, "over": [0, 3, 4, 5, 7, 9, 10, 11], "control": [0, 2, 3, 4, 6, 7, 9, 11], "loop": 0, "announceloop": 0, "log": [0, 5, 10], "prettyhexrep": 0, "hash": [0, 2, 7, 9, 10], "run": [0, 2, 3, 5, 6, 7, 9, 10, 11], "hit": 0, "enter": [0, 10], "manual": [0, 2, 5, 6, 7, 10], "ctrl": 0, "c": [0, 6, 10], "quit": 0, "until": [0, 2, 5, 7], "exit": [0, 2, 7, 10], "If": [0, 2, 3, 5, 6, 7, 9, 10, 11], "server": [0, 2, 3, 4, 7, 10], "client": [0, 2, 3, 4, 7, 10], "messag": [0, 2, 7, 9, 10], "direct": [0, 2, 3, 6, 7, 9, 10], "toward": [0, 5, 9], "while": [0, 2, 3, 5, 6, 7, 9, 11], "true": [0, 2, 5, 7, 10], "input": [0, 10], "sent": [0, 2, 7, 9, 10], "startup": [0, 10], "get": [0, 3, 4, 5, 7, 10, 11], "pars": 0, "desir": [0, 3, 5, 9], "mode": [0, 2, 3, 4, 9, 10, 11], "__name__": 0, "__main__": 0, "try": [0, 4, 5, 7], "parser": 0, "argumentpars": 0, "descript": [0, 10], "add_argu": 0, "config": [0, 2, 5, 6, 10], "action": 0, "store": [0, 3, 7, 9, 10], "default": [0, 2, 3, 5, 6, 7, 9, 10], "none": [0, 2, 5, 7, 9, 10], "help": [0, 6, 8, 9, 10, 11], "altern": [0, 2, 5, 10], "directori": [0, 10], "type": [0, 2, 4, 5, 6, 7, 10], "str": 0, "arg": 0, "parse_arg": 0, "configarg": 0, "except": [0, 5, 7], "keyboardinterrupt": 0, "print": [0, 5, 10], "found": [0, 2, 5, 6, 9, 10], "http": [0, 2, 8], "github": [0, 2, 8], "com": [0, 2, 8], "markqvist": [0, 2, 8], "blob": [0, 9], "master": [0, 7], "py": [0, 2, 9, 10], "build": [0, 2, 3, 4, 5, 9, 11], "upon": [0, 9], "previou": 0, "explor": [0, 9, 11], "notif": [0, 7], "relev": [0, 3, 5, 7, 9, 10], "set": [0, 2, 3, 5, 6, 7, 9, 10, 11], "callback": [0, 7], "applic": [0, 2, 5, 6, 7, 9, 10, 11], "arriv": [0, 9], "random": [0, 7, 9], "two": [0, 2, 3, 5, 6, 7, 9], "list": [0, 2, 3, 5, 7, 9, 11], "string": [0, 7], "app_data": [0, 7], "fruit": 0, "peach": 0, "quinc": 0, "date": [0, 2], "tangerin": 0, "pomelo": 0, "carambola": 0, "grape": 0, "noble_gas": 0, "helium": 0, "neon": 0, "argon": 0, "krypton": 0, "xenon": 0, "radon": 0, "oganesson": 0, "announcesampl": 0, "space": [0, 2, 3, 6, 9, 11], "destination_1": 0, "destination_2": 0, "handler": [0, 7], "onli": [0, 2, 3, 5, 6, 7, 9, 10, 11], "ask": [0, 2, 3, 7], "chang": [0, 2, 5, 7, 9, 10, 11], "filter": [0, 6, 9, 10], "see": [0, 2, 5, 6, 7, 9, 10, 11], "what": [0, 2, 4, 5, 7, 9], "happen": [0, 2, 7, 9], "announce_handl": 0, "exampleannouncehandl": 0, "aspect_filt": [0, 7], "regist": [0, 7], "transport": [0, 2, 4, 5, 6, 7, 10, 11], "register_announce_handl": [0, 7], "select": [0, 5], "randint": 0, "0": [0, 2, 5, 7, 9, 10, 11], "len": 0, "1": [0, 2, 5, 7, 9, 10], "data": [0, 2, 3, 4, 5, 6, 7, 9, 11], "encod": [0, 7], "utf": 0, "8": [0, 5, 10], "nobl": 0, "ga": 0, "noble_ga": 0, "need": [0, 2, 3, 4, 5, 6, 7, 9, 10, 11], "class": [0, 6, 7, 11], "method": [0, 2, 5, 7, 9], "take": [0, 2, 5, 9, 10, 11], "option": [0, 2, 3, 4, 6, 7, 9, 10], "argument": [0, 7, 10], "instanc": [0, 4, 5, 7, 9, 10], "some": [0, 2, 3, 5, 6, 7, 9, 10], "want": [0, 2, 5, 6, 9, 10, 11], "aspect": [0, 3, 5, 7, 9, 10], "__init__": [0, 7], "self": [0, 6, 11], "call": [0, 2, 6, 7, 9, 11], "system": [0, 2, 3, 4, 5, 6, 7, 8, 9, 11], "match": [0, 5, 9, 10], "specif": [0, 3, 4, 5, 7, 10, 11], "cannot": [0, 2, 5, 11], "wildcard": 0, "received_announc": [0, 7], "destination_hash": [0, 7, 10], "announced_ident": [0, 7], "contain": [0, 6, 7, 9, 10], "follow": [0, 2, 3, 5, 7, 8, 9, 10, 11], "decod": 0, "plaintext": [0, 7], "unencrypt": [0, 7, 9], "inform": [0, 2, 4, 5, 6, 7, 9, 10], "ani": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11], "listen": [0, 5, 9, 10], "sy": 0, "did": 0, "one": [0, 2, 3, 5, 6, 7, 9, 10, 11], "public_inform": 0, "ad": [0, 3, 4, 5, 6, 7, 9, 11], "so": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11], "differ": [0, 2, 3, 5, 6, 7, 9, 10, 11], "plain": [0, 3, 5, 7, 9], "uncencrypt": 0, "broadcast_destin": 0, "specifi": [0, 2, 3, 5, 6, 7, 10], "everi": [0, 5, 6, 7, 9], "time": [0, 2, 3, 5, 6, 7, 9, 10], "set_packet_callback": [0, 7], "packet_callback": 0, "main": 0, "broadcastloop": 0, "simpli": [0, 2, 3, 5, 6, 9, 10], "out": [0, 2, 3, 5, 6, 7, 9, 10, 11], "r": [0, 5, 9, 10], "n": [0, 9, 10], "end": [0, 5, 6, 7, 9, 11], "stdout": [0, 5, 10], "flush": 0, "text": [0, 2, 6, 9], "prompt": 0, "channelarg": 0, "between": [0, 5, 6, 7, 9, 10], "interfac": [0, 3, 4, 6, 7, 10], "simpl": [0, 3, 7, 9, 10, 11], "respond": [0, 7, 10], "receipt": [0, 7, 9], "choos": [0, 2, 5, 9], "global": [0, 2, 5, 6, 7, 9, 11], "server_ident": 0, "queri": [0, 2, 7, 10], "abl": [0, 2, 5, 6, 7, 9, 10], "verifi": [0, 7, 9, 10, 11], "repli": [0, 10], "encrypt": [0, 2, 6, 7, 9, 10, 11], "wai": [0, 2, 5, 6, 7, 9, 10], "certain": [0, 5, 6, 8, 9], "than": [0, 2, 5, 6, 7, 9, 10, 11], "read": [0, 2, 5, 7, 9, 10], "echo_destin": 0, "tell": [0, 5], "function": [0, 2, 3, 4, 5, 6, 7, 8, 10, 11], "server_callback": 0, "wait": [0, 5, 9, 10], "go": [0, 2, 5, 9], "handl": [0, 3, 5, 6, 7, 9, 10, 11], "reception_stat": 0, "is_connected_to_shared_inst": 0, "reception_rssi": 0, "get_packet_rssi": 0, "packet_hash": 0, "reception_snr": 0, "get_packet_snr": 0, "rssi": [0, 7, 10], "dbm": [0, 5, 10], "snr": [0, 7, 10], "db": [0, 10], "destination_hexhash": 0, "timeout": [0, 7, 10], "binari": [0, 2, 7, 9, 10], "represent": [0, 7], "command": [0, 2, 5, 10], "dest_len": 0, "truncated_hashlength": [0, 7], "2": [0, 5, 7, 9, 10], "rais": [0, 7], "valueerror": [0, 7], "length": [0, 5, 7, 9], "invalid": [0, 7], "hex": [0, 10], "hexadecim": [0, 9, 10], "charact": 0, "byte": [0, 7, 9, 10, 11], "format": [0, 4, 10, 11], "fromhex": 0, "e": [0, 6, 10], "check": [0, 2, 7, 9, 10], "overrid": 0, "loglevel": [0, 7, 10], "provid": [0, 2, 3, 4, 5, 6, 7, 9, 11], "feedback": [0, 4], "log_info": 0, "doe": [0, 2, 3, 4, 5, 6, 7, 9, 10], "load": [0, 2, 7, 10], "has_path": [0, 7], "To": [0, 2, 3, 5, 6, 9, 10, 11], "public": [0, 4, 5, 7, 10], "kei": [0, 4, 6, 7, 10, 11], "done": [0, 2, 5, 6, 9, 10], "recal": [0, 7, 10], "modul": [0, 2, 3, 9, 10, 11], "known": [0, 5, 7, 9, 10], "return": [0, 7, 10], "outgo": [0, 5, 7, 9, 10], "got": 0, "correct": [0, 9], "convent": 0, "request_destin": 0, "add": [0, 2, 5, 6, 7, 10], "echo_request": 0, "get_random_hash": [0, 7], "successfulli": [0, 7, 9], "packetreceipt": [0, 4, 7], "packet_receipt": [0, 7], "set_timeout": [0, 7], "set_timeout_callback": [0, 7], "packet_timed_out": 0, "deliveri": [0, 2, 7, 11], "set_delivery_callback": [0, 7], "packet_deliv": 0, "yet": [0, 5, 9, 11], "retri": [0, 7, 9], "onc": [0, 2, 3, 5, 6, 7, 9, 10, 11], "request_path": [0, 7], "statu": [0, 2, 4, 5, 7, 9, 10], "deliv": [0, 7], "rtt": [0, 7, 9], "get_rtt": [0, 7], "round": [0, 7, 10], "3": [0, 5, 9, 10, 11], "rttstring": 0, "second": [0, 5, 7, 9, 10, 11], "1000": 0, "millisecond": [0, 10], "proof_packet": 0, "valid": [0, 5, 7, 9, 10], "trip": [0, 7, 10], "fail": [0, 2, 7], "store_tru": 0, "t": [0, 2, 5, 6, 7, 10], "metavar": 0, "float": [0, 7], "narg": 0, "timeoutarg": 0, "print_help": 0, "establish": [0, 2, 5, 6, 7, 11], "remot": [0, 4, 7], "forth": 0, "o": [0, 2, 9, 10, 11], "refer": [0, 2, 4], "latest": [0, 2, 5, 7, 10], "latest_client_link": 0, "server_destin": 0, "linkexampl": 0, "set_link_established_callback": [0, 7], "client_connect": 0, "server_loop": 0, "set_link_closed_callback": [0, 7], "client_disconnect": 0, "server_packet_receiv": 0, "disconnect": [0, 5], "activ": [0, 2, 5, 7, 9], "last": [0, 5, 7], "reply_text": 0, "reply_data": 0, "server_link": 0, "sleep": [0, 10], "begin": [0, 3, 7], "And": 0, "client_packet_receiv": 0, "close": [0, 6, 7, 10], "link_establish": 0, "link_clos": 0, "interact": [0, 2, 7, 9, 10], "client_loop": 0, "becom": [0, 2, 6, 9], "should_quit": 0, "fals": [0, 5, 7, 10], "should": [0, 2, 5, 6, 7, 9, 10, 11], "q": [0, 10], "teardown": [0, 7], "mdu": [0, 7], "size": [0, 2, 5, 7, 9, 10], "exce": [0, 5, 7], "log_error": 0, "error": [0, 2, 8, 10], "ha": [0, 2, 3, 5, 6, 7, 9, 11], "been": [0, 2, 3, 5, 6, 7, 9, 11], "later": [0, 2, 5, 10], "teardown_reason": 0, "now": [0, 2, 6, 9, 10], "elif": 0, "destination_clos": 0, "exit_handl": 0, "5": [0, 2, 5, 7, 9, 10, 11], "_exit": 0, "identifi": [0, 5, 7, 9, 10], "intiat": 0, "initi": [0, 6, 7, 9, 11], "peer": [0, 2, 5, 7, 9, 10], "identifyexampl": 0, "set_remote_identified_callback": [0, 7], "remote_identifi": 0, "origin": [0, 6, 9], "displai": [0, 9, 10], "remote_p": 0, "unidentifi": 0, "get_remote_ident": [0, 7], "client_ident": 0, "sendig": 0, "perform": [0, 2, 5, 6, 7, 9, 10], "random_text_gener": 0, "request_id": [0, 7], "link_id": [0, 7], "remote_ident": [0, 7], "requested_at": [0, 7], "look": [0, 2, 5, 9, 10], "On": [0, 2, 5, 10], "full": [0, 5, 7, 9, 10, 11], "moon": 0, "becki": 0, "upset": 0, "stai": [0, 9, 10], "awai": [0, 5, 6, 9, 10], "pet": 0, "shop": 0, "stock": 0, "requestexampl": 0, "register_request_handl": [0, 7], "response_gener": [0, 7], "allow": [0, 2, 3, 5, 6, 7, 9, 10, 11], "allow_al": [0, 7], "response_callback": [0, 7], "got_respons": 0, "failed_callback": [0, 7], "request_fail": 0, "request_receipt": [0, 7], "request_receiv": 0, "structur": [0, 7, 9, 11], "datetim": 0, "vendor": [0, 3, 11], "umsgpack": 0, "share": [0, 2, 6, 7, 9, 10], "object": [0, 7], "subclass": [0, 7], "messagebas": [0, 4, 7], "ensur": [0, 5, 7, 9, 10, 11], "serial": [0, 2, 4, 9, 11], "deseri": 0, "multiplex": 0, "other": [0, 2, 3, 5, 6, 7, 9, 10], "both": [0, 2, 3, 5, 6, 7, 9, 10, 11], "same": [0, 2, 3, 5, 6, 7, 9, 10], "definit": [0, 9], "note": [0, 3, 4, 5, 7, 9, 10], "wish": [0, 9, 10], "make": [0, 2, 3, 5, 8, 9, 10], "stringmessag": 0, "convei": 0, "timestamp": [0, 9, 11], "msgtype": [0, 7], "variabl": [0, 7], "assign": [0, 9, 10], "integ": 0, "valu": [0, 5, 7, 9], "constructor": 0, "uniqu": [0, 5, 7, 9, 11], "across": [0, 3, 6, 7], "0xf000": [0, 7], "reserv": [0, 7], "0x0101": 0, "callabl": [0, 7], "paramet": [0, 3, 5, 6, 7, 9, 10], "empti": 0, "version": [0, 2, 9, 10, 11], "unpack": [0, 7], "final": [0, 7, 9], "implement": [0, 5, 6, 7, 8, 9, 11], "pack": [0, 7], "raw": [0, 3, 7], "payload": [0, 7, 9, 10], "packag": [0, 2, 5, 9], "bundl": 0, "could": [0, 2, 5, 6, 7, 9, 11], "struct": 0, "python": [0, 4, 7, 9, 10, 11], "more": [0, 2, 3, 5, 6, 7, 9, 10, 11], "fit": 0, "entir": [0, 6, 7, 9, 10], "avail": [0, 2, 3, 4, 5, 6, 7, 9, 10, 11], "properti": [0, 6, 7], "slightli": [0, 2], "less": [0, 5, 7, 9, 11], "due": [0, 6], "header": [0, 7, 9], "content": [0, 2, 6, 10], "stream": [0, 7, 9], "packb": 0, "unpackb": 0, "channelexampl": 0, "get_channel": [0, 7], "register_message_typ": [0, 7], "add_message_handl": [0, 7], "server_message_receiv": 0, "param": 0, "deserializ": 0, "unless": [0, 2, 5, 7, 9], "preced": 0, "indic": [0, 7], "isinst": 0, "reply_messag": 0, "order": [0, 7, 10], "were": [0, 6], "consid": [0, 5, 7, 9, 11], "subsequ": [0, 9], "skip": 0, "packed_s": 0, "is_ready_to_send": [0, 7], "pleas": [0, 2, 5, 7, 10, 11], "pend": 0, "complet": [0, 2, 3, 5, 6, 7, 9, 10, 11], "client_message_receiv": 0, "reader": [0, 7], "writer": [0, 7], "__future__": 0, "annot": 0, "latest_buff": 0, "bufferexampl": 0, "old": [0, 3, 8, 9], "stream_id": [0, 7], "bit": [0, 2, 5, 7, 9, 10, 11], "like": [0, 2, 3, 5, 6, 7, 9, 10, 11], "file": [0, 2, 3, 5, 6, 7, 9, 10, 11], "descriptor": 0, "actual": [0, 2, 5, 9], "separ": [0, 2, 5, 6, 9, 10], "unidirect": 0, "flow": [0, 5, 6], "opposit": [0, 5], "create_bidirectional_buff": [0, 7], "server_buffer_readi": 0, "ready_byt": [0, 7], "int": [0, 7], "otherwis": [0, 7], "forc": [0, 10], "server_client_connect": 0, "detail": [0, 2, 4, 5, 7, 10, 11], "client_buffer_readi": 0, "termin": [0, 2, 7], "download": [0, 5, 10], "resourc": [0, 2, 4, 7, 8], "effici": [0, 2, 5, 9, 11], "serv": [0, 3, 5, 6, 9, 10], "larg": [0, 3, 5, 6, 7, 9, 11], "transfer": [0, 7, 9, 10, 11], "recommend": [0, 2, 9], "compress": [0, 7, 9], "hashmap": 0, "sequenc": [0, 7, 9, 11], "long": [0, 2, 3, 5, 7, 9], "slow": [0, 5, 9], "cpu": [0, 9], "probabl": [0, 2, 6, 9, 10, 11], "result": [0, 9, 10], "befor": [0, 2, 5, 7, 9, 10], "prepar": [0, 6], "instead": [0, 2, 5, 7, 9, 10], "slice": 0, "chunk": 0, "suitabl": [0, 2, 5, 6, 9, 11], "thread": 0, "app_timeout": 0, "45": [0, 9], "serve_path": 0, "here": [0, 2, 5, 9, 10], "conveni": 0, "list_fil": 0, "entri": [0, 2, 9], "listdir": 0, "isfil": 0, "join": [0, 2, 6, 8, 9], "host": [0, 2, 5, 9, 10], "still": [0, 2, 5, 6, 9, 10], "isdir": 0, "list_packet": 0, "list_receipt": 0, "list_deliv": 0, "list_timeout": 0, "too": [0, 6], "mani": [0, 2, 3, 5, 6, 7, 9, 10, 11], "split": 0, "filelist": 0, "multipl": [0, 5, 6, 9, 10], "hint": 0, "alreadi": [0, 2, 3, 6, 7, 9, 10], "support": [0, 2, 4, 5, 6, 7, 9, 10, 11], "after": [0, 2, 5, 6, 7, 9, 10], "re": [0, 5, 7, 9], "keep": [0, 6, 7, 9, 10, 11], "open": [0, 3, 5, 6, 7, 8, 9, 10, 11], "client_request": 0, "longer": [0, 2, 6, 9, 10], "filenam": 0, "rb": 0, "file_resourc": 0, "resource_sending_conclud": 0, "somethign": 0, "went": 0, "wrong": [0, 5], "don": [0, 2, 6, 7, 10], "unknown": [0, 5, 7, 9, 10], "conclud": [0, 7], "hasattr": 0, "server_fil": 0, "current": [0, 2, 4, 5, 7, 9], "current_download": 0, "current_filenam": 0, "statist": [0, 5, 7, 8], "download_start": 0, "download_finish": 0, "download_tim": 0, "transfer_s": 0, "file_s": 0, "expect": [0, 2, 5, 7, 9, 10], "normal": [0, 2, 5, 7, 10], "accordingli": 0, "filelist_receiv": 0, "advertis": [0, 7], "set_resource_strategi": [0, 7], "accept_al": [0, 7], "set_resource_started_callback": [0, 7], "download_began": 0, "set_resource_concluded_callback": [0, 7], "download_conclud": 0, "menu": 0, "menu_mod": 0, "down": [0, 3, 5, 7], "request_packet": 0, "create_receipt": [0, 7], "print_menu": 0, "25": [0, 4, 11], "user_input": 0, "screen": 0, "variou": [0, 2, 5, 6, 9, 10, 11], "state": 0, "It": [0, 2, 3, 5, 7, 9, 10, 11], "uninterest": 0, "won": 0, "clear_screen": 0, "print_filelist": 0, "percent": [0, 5], "get_progress": [0, 7], "100": [0, 5, 9], "rprogress": 0, "save_error": 0, "disk": [0, 7], "hour": [0, 5], "rem": 0, "divmod": 0, "3600": [0, 5], "minut": [0, 2, 5, 9], "60": [0, 5], "timestr": 0, "05": 0, "2f": 0, "ttime": 0, "taken": [0, 9], "tfile": 0, "size_str": 0, "tdata": 0, "teffect": 0, "rate": [0, 4, 7, 10], "suffix": 0, "b": [0, 6, 10], "ttransfer": 0, "press": 0, "index": [0, 2, 4], "enumer": 0, "filelist_data": 0, "extend": [0, 2, 7], "local": [0, 2, 5, 6, 7, 9, 10, 11], "append": [0, 9], "visibl": 0, "updat": [0, 2, 7, 9, 10], "small": [0, 5, 6, 7, 9, 11], "job": 0, "potenti": [0, 5, 8, 9, 10, 11], "target": [0, 5, 10], "filelist_timeout_job": 0, "daemon": [0, 2, 5, 7, 10], "detect": 0, "shown": 0, "progress": [0, 7, 10, 11], "total_s": 0, "saved_filenam": 0, "counter": 0, "wb": 0, "human": [0, 7, 8, 9], "readabl": [0, 7, 9], "num": 0, "unit": [0, 2, 7, 10], "ki": 0, "mi": 0, "gi": 0, "ti": [0, 9], "pi": [0, 4, 6, 9, 10, 11], "ei": 0, "zi": 0, "last_unit": 0, "yi": 0, "k": [0, 10], "m": [0, 2, 9, 10], "g": [0, 10], "p": [0, 10], "z": 0, "y": 0, "ab": 0, "1024": 0, "clear": [0, 5, 7, 9, 10], "cl": 0, "nt": 0, "dir": 0, "best": [2, 9, 11], "guid": [2, 3, 9], "outlin": [2, 3, 9], "sensibl": [2, 3, 5], "scenario": [2, 4, 9], "relat": 2, "easiest": [2, 3, 5, 9], "via": [2, 3, 5, 8, 9, 10, 11], "pip": [2, 3, 10], "manag": [2, 4, 6, 7, 9, 11], "sudo": [2, 10], "apt": 2, "python3": [2, 3], "pamac": 2, "similar": [2, 3, 5, 6, 7, 10, 11], "dowload": 2, "releas": [2, 5, 9], "wheel": 2, "channel": [2, 4, 5, 6, 7, 8, 9, 11], "offlin": 2, "py3": 2, "whl": 2, "mai": [2, 5, 7, 9, 10], "case": [2, 3, 5, 6, 9, 10], "usual": 2, "essenti": [2, 5, 9], "deriv": [2, 7, 9, 11], "arch": 2, "manjaro": 2, "devel": 2, "fedora": 2, "dnf": 2, "groupinstal": 2, "tool": [2, 3, 9, 10, 11], "librari": 2, "compil": 2, "miss": 2, "even": [2, 5, 6, 7, 9, 10, 11], "pre": [2, 7, 9], "built": [2, 5, 9, 10, 11], "few": [2, 3, 5, 6, 9, 10, 11], "extrem": [2, 9, 10, 11], "low": [2, 3, 5, 6, 9, 11], "bandwidth": [2, 5, 6, 7, 9, 10, 11], "These": [2, 5, 7, 9, 10], "feel": 2, "work": [2, 3, 5, 6, 9, 10, 11], "design": [2, 3, 6, 9, 11], "well": [2, 3, 5, 6, 7, 9, 10, 11], "lora": [2, 3, 4, 9, 11], "link": [2, 3, 4, 5, 6, 7, 10, 11], "wifi": [2, 4, 5, 6, 9, 10, 11], "wire": [2, 3, 4, 5, 11], "ethernet": [2, 4, 5, 6, 9, 11], "combin": [2, 4, 6, 9], "As": [2, 3, 5, 6, 7, 9, 11], "easi": [2, 3, 5, 9, 10, 11], "experi": [2, 9], "without": [2, 3, 5, 6, 9, 10, 11], "transceiv": [2, 3, 5, 9, 11], "infrastructur": [2, 3, 5, 6, 9, 10], "launch": [2, 10], "devic": [2, 4, 5, 6, 7, 9, 10], "enough": [2, 3, 9], "physic": [2, 3, 5, 7, 9, 10], "rnsh": [2, 10], "fulli": [2, 3, 9, 10, 11], "session": [2, 9], "pipe": [2, 4, 11], "ssh": 2, "veri": [2, 3, 5, 6, 7, 8, 9, 10, 11], "facilit": 2, "suit": [2, 3, 9, 10], "featur": [2, 8, 9, 11], "delai": [2, 5, 9, 10], "browser": 2, "page": [2, 4, 9], "dynam": [2, 10], "render": 2, "authent": [2, 5, 6, 7, 9, 10, 11], "face": [2, 5], "protocol": [2, 3, 4, 5, 11], "lxmf": [2, 10], "anoth": [2, 7, 9, 10], "project": 2, "nomadnet": 2, "might": [2, 5, 6, 9, 10], "reboot": 2, "again": [2, 5, 9, 10], "would": [2, 5, 6, 7, 9], "rather": [2, 7], "graphic": 2, "linux": [2, 3, 9], "maco": 2, "window": [2, 5], "peopl": [2, 9], "compat": [2, 3, 5, 7, 9], "i2p": [2, 4, 11], "qr": 2, "paper": 2, "anyth": [2, 3, 5, 9, 10, 11], "interoper": [2, 3, 6, 9, 11], "friendli": [2, 11], "voic": 2, "interest": [2, 9], "cours": [2, 5, 9], "come": [2, 9], "easier": [2, 5, 6, 10], "rnsd": [2, 4], "background": [2, 5], "foreground": 2, "servic": [2, 4, 6], "rnstatu": [2, 4, 5, 9], "rnpath": [2, 4, 5], "rnprobe": [2, 4], "view": [2, 5, 9, 10], "chapter": [2, 3, 5, 6, 7, 9, 10, 11], "locat": [2, 3, 6, 9, 10], "exampl": [2, 3, 4, 5, 7, 9, 10, 11], "exampleconfig": [2, 10], "broadcast": [2, 4, 5, 7, 9], "domain": [2, 5], "further": [2, 4, 5], "tcp": [2, 3, 4, 6, 9, 11], "There": [2, 6, 9, 11], "subnet": [2, 6], "rout": [2, 3, 5, 6, 7, 9, 10, 11], "tabl": [2, 5, 6, 9, 10], "thing": 2, "discov": [2, 5], "topographi": [2, 6, 9], "situat": [2, 3, 5, 6, 9], "where": [2, 3, 4, 5, 6, 7, 9, 10], "utilis": [2, 5, 6, 7, 10, 11], "extern": [2, 5, 7, 11], "often": [2, 5, 6, 9, 10], "suffici": [2, 5, 9, 10], "act": [2, 7, 9, 10], "gatewai": [2, 5, 6, 9], "enabl": [2, 3, 5, 6, 7, 9, 10, 11], "wider": [2, 5, 9, 10], "autointerfac": [2, 3, 5, 10], "possibli": 2, "offer": [2, 4, 5, 7, 9], "carefulli": 2, "tcpserverinterfac": [2, 5], "access": [2, 4, 5, 6, 7, 10], "ip": [2, 3, 5, 9, 10, 11], "faster": [2, 5, 9], "lower": [2, 5, 10], "latenc": [2, 9, 11], "energi": 2, "i2pinterfac": [2, 5], "howev": [2, 6, 9], "leak": 2, "reveal": [2, 7, 9, 11], "who": [2, 5, 9], "inspect": [2, 5, 6, 9, 10], "someon": [2, 5], "determin": [2, 7, 9], "adversari": 2, "record": [2, 9], "metadata": [2, 9, 11], "transmiss": [2, 5, 7, 9], "though": [2, 5, 9], "publicli": [2, 5], "most": [2, 3, 5, 6, 7, 9, 10], "anymor": 2, "through": [2, 3, 5, 6, 7, 9, 10, 11], "invis": [2, 5], "parallel": 2, "For": [2, 3, 5, 6, 7, 9, 10, 11], "alwai": [2, 5, 7, 9, 10], "node": [2, 4, 5, 6, 10, 11], "i2pd": [2, 5], "mix": [2, 5, 6, 10], "hide": 2, "relai": 2, "extra": [2, 5, 6, 10], "comput": [2, 9, 11], "power": [2, 3, 5, 9, 10], "attack": 2, "form": [2, 5, 6, 7, 9], "deep": 2, "much": [2, 5, 6, 9, 10], "difficult": [2, 3], "non": [2, 7, 9], "behind": [2, 9], "firewal": [2, 5], "nat": 2, "preserv": [2, 7], "anonym": [2, 6, 7, 9, 11], "care": [2, 7, 11], "experiment": [2, 11], "made": [2, 7, 9], "amsterdam": 2, "hub": [2, 5], "tcpclientinterfac": [2, 3, 5], "ye": [2, 5, 9, 10], "target_host": [2, 5], "target_port": [2, 5], "4965": [2, 10], "betweenthebord": 2, "4242": [2, 5], "g3br23bvx3lq5uddcsjii74xgmn6y5q325ovrkq2zw2wbzbqgbuq": 2, "b32": [2, 5], "point": [2, 3, 5, 6, 9, 10], "absolut": [2, 8, 11], "usag": [2, 4, 5, 7, 8, 10], "occasion": 2, "test": [2, 9, 10], "failur": [2, 5, 7], "guarante": [2, 9], "weird": 2, "goe": 2, "sai": 2, "hardcod": 2, "ship": 2, "practic": [2, 9, 11], "solut": [2, 9, 10], "leav": [2, 6, 9], "hardwar": [2, 4, 5, 6, 7, 9, 10, 11], "wide": [2, 3, 5, 9, 10, 11], "section": [2, 3, 5, 6, 9, 10], "easili": [2, 5, 6, 9, 10, 11], "cheapli": 2, "rnode": [2, 4, 9, 10, 11], "purpos": [2, 3, 5, 7, 9, 10], "digit": [2, 3, 9, 11], "integr": [2, 6, 9], "yourself": [2, 9, 11], "custom": [2, 5, 7, 9, 11], "firmwar": [2, 3, 9, 10], "board": [2, 4, 5, 9, 11], "auto": [2, 3, 4, 7, 9], "script": [2, 3], "prefer": [2, 9], "purchas": [2, 6, 9, 11], "supplier": 2, "addit": [2, 3, 5, 7, 9, 10, 11], "privat": [2, 5, 7, 8, 9, 10, 11], "secur": [2, 9, 11], "uncensor": 2, "mesh": [2, 5, 6, 11], "think": 2, "welcom": 2, "head": 2, "discuss": [2, 3, 9], "propos": 2, "abov": [2, 3, 5, 9, 10], "next": [2, 6, 7, 9], "step": [2, 3], "pyseri": 2, "api": [2, 4, 9, 11], "associ": [2, 7, 9], "recip": 2, "cryptographi": [2, 9, 11], "clone": 2, "repositori": [2, 8, 9], "git": 2, "move": [2, 5, 9, 10], "folder": 2, "symlink": [2, 10], "cd": 2, "ln": [2, 10], "echo": [2, 4], "ve": 2, "immedi": [2, 5, 10], "necessari": [2, 3, 5, 6, 7, 9], "nano": 2, "repeat": 2, "process": [2, 3, 5, 7, 9], "h": [2, 10], "ping": [2, 10], "replac": [2, 7, 9, 10], "below": [2, 3, 5, 10], "174a64852a75682259ad8b921b8bf416": 2, "filetransf": [2, 4, 7], "understand": [2, 4, 7, 10], "submit": 2, "pull": 2, "request": [2, 4, 5, 7, 9, 10], "good": [2, 3, 6, 9, 10], "idea": [2, 9, 10], "introduc": [2, 9], "disucss": 2, "forum": 2, "maintain": [2, 9], "place": [2, 5, 6, 9, 10], "procedur": [2, 7, 9], "quirk": 2, "worth": 2, "being": [2, 5, 7, 9], "awar": [2, 9], "termux": 2, "f": [2, 10], "droid": 2, "emul": 2, "environ": [2, 6, 9], "abil": [2, 3], "pkg": 2, "sure": [2, 3, 10], "upgrad": [2, 9], "Then": 2, "reason": [2, 5, 9], "attempt": [2, 3, 7], "openssl": [2, 9], "libffi": 2, "rust": 2, "export": 2, "cargo_build_target": 2, "aarch64": 2, "sever": [2, 6, 7, 10], "succe": 2, "softwar": [2, 3, 5, 9, 11], "possibl": [2, 3, 5, 6, 7, 9, 10, 11], "apk": 2, "tutori": 2, "code": [2, 3, 4, 5, 10], "architectur": 2, "precompil": 2, "dev": [2, 5, 10], "64": [2, 9, 10], "32": [2, 7, 9], "rasperri": 2, "os": [2, 5], "april": 2, "2023": [2, 10], "onto": [2, 9], "unfortun": 2, "pipx": 2, "isol": [2, 5, 10], "neg": 2, "affect": [2, 5], "ensurepath": 2, "restor": [2, 5], "behaviour": [2, 5, 10], "edit": [2, 10], "conf": 2, "break": [2, 7, 9, 11], "somewhat": 2, "mislead": 2, "choic": 2, "word": 2, "rare": [2, 5], "lead": [2, 9], "conflict": 2, "pose": [2, 9], "problem": [2, 9], "_could_": 2, "obscur": 2, "rnspure": 2, "No": [2, 5, 9, 10, 11], "matter": [2, 5], "perfectli": 2, "pyca": [2, 9], "cryptograph": [2, 4, 6, 10, 11], "primit": [2, 4], "One": [3, 7], "truli": [3, 9], "valuabl": [3, 8], "almost": [3, 5, 9, 10], "conceiv": 3, "kind": [3, 5, 6, 9], "medium": [3, 5, 6, 7, 9, 11], "flexibl": [3, 5, 11], "cover": [3, 9, 11], "wireless": [3, 6], "decad": 3, "modern": [3, 9], "millimet": 3, "wave": 3, "backhaul": [3, 6], "oper": [3, 5, 6, 7, 9, 10, 11], "chanc": 3, "box": 3, "glue": 3, "littl": [3, 9], "effort": 3, "pipeinterfac": [3, 5], "kiss": [3, 4, 10, 11], "simplyequip": 3, "broad": 3, "abund": 3, "sometim": 3, "especi": [3, 5], "scratch": 3, "real": [3, 6, 11], "world": [3, 6, 11], "minim": [3, 4, 9], "cost": [3, 9, 11], "fundament": [3, 9], "categori": 3, "addition": [3, 5, 9], "common": [3, 4, 6, 9, 10, 11], "briefli": [3, 9], "describ": [3, 5, 7, 9], "emploi": [3, 9], "pattern": [3, 9], "high": [3, 5, 9, 11], "capac": [3, 5, 7, 9], "gain": [3, 7, 9], "antenna": 3, "backbon": 3, "area": [3, 5, 6, 9, 11], "reliabl": [3, 5, 6, 7, 9, 11], "commonli": 3, "either": [3, 5, 6, 7, 9, 10], "expens": 3, "hard": 3, "hungri": 3, "allevi": 3, "particular": 3, "plaform": 3, "depend": [3, 4, 6, 7, 9, 10], "its": [3, 5, 7, 9], "compon": [3, 8, 9], "frequenc": [3, 5, 9, 10], "band": [3, 9], "scheme": 3, "limit": [3, 4, 6, 9], "ism": [3, 9], "avoid": [3, 9, 10], "confus": [3, 9], "layer": [3, 5, 6, 7, 9, 11], "noth": [3, 11], "lorawan": [3, 9], "standard": [3, 9], "central": [3, 6, 9], "iot": 3, "overhead": [3, 5, 9], "level": [3, 5, 9, 10], "directli": [3, 5, 7, 9, 10, 11], "replic": [3, 9], "togeth": [3, 9, 10], "exact": [3, 5, 9], "explain": [3, 7], "approach": [3, 9, 10], "develop": [3, 4, 7, 8, 9, 11], "boil": 3, "obtain": [3, 7, 9], "autom": [3, 8, 9], "provis": [3, 10], "rnodeinterfac": [3, 5, 10], "ic": 3, "semtech": 3, "sx1276": 3, "platform": [3, 4, 9, 10], "esp32": 3, "manufactur": [3, 5], "io": 3, "avr": 3, "atmega1284p": 3, "rnodeconf": [3, 4], "autoinstal": [3, 10], "seri": 3, "question": [3, 5], "port": [3, 4, 5, 6, 9, 11], "air": [3, 11], "id": [3, 5, 7, 9, 10], "itself": [3, 4, 9], "short": [3, 5, 9, 10], "bridg": [3, 4], "behav": 3, "mean": [3, 5, 6, 7, 9, 10], "dhcp": [3, 5, 10], "dn": 3, "least": [3, 5, 9, 10, 11], "transpar": [3, 5, 9, 10], "distanc": [3, 9], "ubiqu": 3, "airmax": 3, "ltu": 3, "mikrotik": 3, "exhaust": [3, 9], "rel": [3, 9, 11], "cheap": [3, 9], "co": [3, 5, 11], "concurr": [3, 9, 10], "switch": [3, 5, 9, 10], "fiber": 3, "optic": [3, 11], "virtual": [3, 5, 6, 9, 10, 11], "adapt": [3, 6], "tun": 3, "tap": 3, "serialinterfac": [3, 5], "usb": [3, 6, 9, 10], "freedv": 3, "tnc": [3, 5, 7, 10, 11], "dire": 3, "wolf": 3, "aim": [4, 9], "particip": [4, 6, 9], "pdf": 4, "epub": 4, "caveat": 4, "emptor": 4, "fast": [4, 5, 7, 9], "standalon": 4, "instal": [4, 5, 6, 9, 10, 11], "resolv": [4, 5, 10], "issu": [4, 6, 8], "base": [4, 5, 6, 7, 9, 10, 11], "shell": [4, 10], "nomad": 4, "sideband": 4, "meshchat": 4, "With": [4, 5, 6, 9, 10], "internet": [4, 5, 9, 11], "testnet": [4, 10], "radio": [4, 5, 6, 7, 9, 10, 11], "android": [4, 10], "arm64": 4, "raspberri": [4, 6, 9, 10, 11], "debian": [4, 9, 10], "bookworm": 4, "ubuntu": [4, 10], "lunar": 4, "pure": [4, 9], "rnid": 4, "rncp": 4, "rnx": 4, "improv": [4, 5, 8], "fix": [4, 9], "motiv": 4, "goal": [4, 5], "introduct": 4, "announc": [4, 7, 10], "mechan": [4, 5], "reach": [4, 5, 6], "prioritis": [4, 5, 6, 7], "propag": [4, 5, 7], "rule": [4, 5], "modem": [4, 5, 6, 7, 9, 11], "udp": [4, 6, 9, 10, 11], "multi": [4, 9, 10, 11], "ax": [4, 11], "concept": [4, 9, 10], "overview": [4, 5, 9], "interconnect": [4, 5, 9], "site": [4, 5], "growth": 4, "converg": [4, 9], "identif": [4, 5, 11], "respons": [4, 7, 9], "buffer": [4, 5, 7], "donat": 4, "contribut": 4, "requestreceipt": [4, 7], "rawchannelread": [4, 7], "rawchannelwrit": [4, 7], "search": 4, "distinct": [5, 9], "topologi": [5, 9], "endless": 5, "give": [5, 9, 10], "respect": [5, 11], "discover": 5, "autoconfigur": [5, 11], "ipv6": [5, 10], "router": [5, 10], "sort": [5, 9, 10], "communica": 5, "tion": 5, "usabl": [5, 9], "interface_en": [5, 10], "spe": 5, "cific": 5, "lan": 5, "group": [5, 7, 9], "group_id": 5, "multicast": 5, "temporari": 5, "perman": [5, 10], "multicast_address_typ": 5, "kernel": [5, 10, 11], "wlan0": 5, "eth1": 5, "Or": [5, 10, 11], "ignor": [5, 7, 9], "ones": [5, 10], "ignored_devic": 5, "tun0": 5, "eth0": 5, "autodiscov": 5, "discoveri": [5, 9, 10], "scope": 5, "admin": 5, "organis": [5, 6, 8], "custom_network_nam": 5, "discovery_scop": 5, "discovery_port": 5, "48555": 5, "data_port": 5, "49555": 5, "frequent": 5, "block": 5, "inbound": [5, 7], "portabl": [5, 9], "persist": [5, 10], "achiev": [5, 7, 9], "geti2p": 5, "net": 5, "websit": 5, "base32": 5, "comma": 5, "5urvjicpzi7q3ybztsef4i5ow2aq4soktfj7zedz53s47r54jnqq": 5, "output": [5, 10], "event": 5, "simplest": [5, 9], "tunnel": [5, 9, 11], "interchang": 5, "degre": 5, "retain": [5, 7], "eas": [5, 9], "simpler": 5, "listen_ip": 5, "listen_port": 5, "bind": 5, "10": [5, 9, 10], "88": 5, "i2p_tunnel": 5, "127": 5, "5001": 5, "dedic": [5, 9], "natur": 5, "toler": 5, "intermitt": 5, "gracefulli": 5, "reappear": 5, "hostnam": 5, "expos": [5, 7], "soundmodem": 5, "kiss_fram": 5, "8001": 5, "caution": 5, "frame": 5, "conjunct": 5, "never": [5, 7, 9], "disabl": [5, 9, 10], "intern": [5, 7, 9], "recoveri": 5, "greatli": 5, "unreli": 5, "implic": 5, "better": 5, "udpinterfac": 5, "forward_ip": 5, "255": [5, 10], "forward_port": 5, "assum": [5, 9], "55": 5, "72": 5, "24": 5, "equival": 5, "forward": [5, 7, 9, 11], "segment": [5, 6, 7, 9, 11], "15": 5, "16": [5, 9, 10], "ttyusb0": [5, 10], "867": 5, "mhz": [5, 9], "867200000": 5, "125": 5, "khz": 5, "125000": 5, "tx": [5, 10], "7": [5, 9, 10], "mw": 5, "txpower": 5, "spread": [5, 10], "factor": [5, 7, 10], "12": [5, 10], "fastest": [5, 9], "longest": 5, "spreadingfactor": 5, "throough": 5, "codingr": 5, "interv": [5, 7, 10], "id_callsign": 5, "mycal": 5, "id_interv": 5, "600": 5, "homebrew": 5, "amount": [5, 6, 7, 9, 11], "ram": 5, "flow_control": 5, "airtim": 5, "term": [5, 6, 9], "appli": [5, 7, 9], "approxim": 5, "enforc": [5, 7], "roll": 5, "airtime_limit_long": 5, "airtime_limit_short": 5, "33": 5, "sub": 5, "individu": [5, 7, 9, 11], "rnodemultiinterfac": 5, "ttyacm0": 5, "subinterfac": 5, "highdatar": 5, "themselv": 5, "4ghz": 5, "2400000000": 5, "1625": 5, "1625000": 5, "person": [5, 9], "wrote": 5, "vport": 5, "lowdatar": 5, "865": 5, "6": [5, 7, 10], "865600000": 5, "pair": [5, 7, 9, 10], "laser": 5, "baud": [5, 10], "speed": [5, 9, 10], "115200": [5, 10], "databit": [5, 10], "pariti": [5, 10], "stopbit": [5, 10], "stdin": [5, 10], "netcat": 5, "l": [5, 10], "5757": 5, "respawn": 5, "respawn_delai": 5, "continu": [5, 7, 8, 11], "scan": 5, "eof": 5, "respawn_interv": 5, "varieti": [5, 9, 10, 11], "openmodem": [5, 11], "period": [5, 7, 9], "beacon": 5, "station": 5, "kissinterfac": [5, 10], "ttyusb1": 5, "preambl": [5, 10], "150": [5, 10], "tail": 5, "txtail": [5, 10], "cdma": 5, "200": [5, 10], "slottim": [5, 10], "20": [5, 9, 10], "elaps": 5, "comment": [5, 10], "amateur": [5, 11], "spectrum": [5, 9], "encapsul": [5, 11], "callsign": 5, "ssid": 5, "realli": [5, 7], "doesn": 5, "incur": 5, "ax25kissinterfac": 5, "no1cll": 5, "ttyusb2": 5, "150m": 5, "increas": [5, 10], "squelch": 5, "rx": [5, 10], "turnaround": 5, "kept": [5, 6, 7, 9], "wast": 5, "bring": 5, "brought": [5, 10], "access_point": 5, "shorthand": [5, 10], "ap": 5, "shorter": 5, "expiri": [5, 7], "mostli": [5, 6, 9], "quiet": [5, 10], "momentarili": 5, "disappear": [5, 10], "network_nam": 5, "passphras": [5, 9], "alon": 5, "ifac_s": 5, "customis": 5, "carri": [5, 7, 9, 10], "512": [5, 7, 9], "announce_cap": [5, 7], "maximum": [5, 7, 9, 10], "alloc": [5, 7, 9, 10], "given": [5, 6, 7, 9, 10], "upkeep": 5, "cap": 5, "queue": [5, 9], "nearbi": 5, "overwhelm": [5, 7], "rapidli": 5, "spam": 5, "effect": 5, "excess": 5, "benefici": [5, 10], "balanc": 5, "necesarri": 5, "bitrat": [5, 7], "report": [5, 7, 8, 10], "guess": 5, "per": [5, 7, 9, 10, 11], "strictli": [5, 9], "complex": [5, 9], "left": [5, 7, 9, 10], "gw": 5, "behalf": 5, "resid": 5, "requestor": 5, "chain": 5, "along": [5, 6, 7, 9, 10], "boundari": 5, "remain": [5, 7, 9], "roam": 5, "mobil": [5, 9], "seen": [5, 9], "perspect": [5, 7, 9, 11], "vehicl": 5, "equip": [5, 6, 9], "side": [5, 11], "expir": 5, "significantli": 5, "impact": [5, 7, 9], "announce_rate_target": 5, "announce_rate_grac": 5, "announce_rate_penalti": 5, "basi": [5, 7, 9, 10, 11], "moder": 5, "violat": 5, "penalti": 5, "7200": 5, "annouce_cap": 5, "mention": [5, 9], "strategi": [5, 7], "decis": [5, 9], "slower": [5, 7, 9], "hop": [5, 6, 7, 9, 10, 11], "right": [5, 6], "tend": 5, "conserv": 5, "span": [5, 9], "seamlessli": 5, "influx": 5, "newli": [5, 6, 7, 9], "previous": [5, 6, 7, 9], "occur": [5, 10, 11], "hold": [5, 7, 9], "interrupt": 5, "burst": 5, "subsid": 5, "held": [5, 10], "decid": [5, 6, 7, 9], "bogu": 5, "retransmit": [5, 9], "ingress": 5, "disrupt": 5, "neccessari": 5, "modifi": [5, 9, 10, 11], "ingress_control": 5, "ic_new_tim": 5, "spawn": 5, "ic_burst_freq_new": 5, "ic_burst_freq": 5, "temporarili": 5, "ic_max_held_announc": 5, "drop": [5, 7, 9, 10], "256": [5, 7, 9, 10], "ic_burst_hold": 5, "threshold": 5, "ic_burst_penalti": 5, "ic_held_release_interv": 5, "30": [5, 7, 10], "knowledg": [6, 9], "tradit": [6, 9], "worri": 6, "coordin": [6, 7, 9, 11], "evolv": 6, "futur": [6, 9], "mind": [6, 11], "autonom": [6, 9], "terminologi": [6, 9], "rest": [6, 11], "billion": [6, 9], "larger": [6, 9, 10], "higher": [6, 11], "discrimin": 6, "ephemer": [6, 7, 9, 11], "ellipt": [6, 7, 9, 11], "curv": [6, 7, 9, 11], "diffi": [6, 9, 11], "hellman": [6, 9, 11], "exchang": [6, 7, 9, 11], "curve25519": [6, 7, 9, 11], "throttl": 6, "thu": [6, 7, 9], "agnost": [6, 9], "equal": [6, 7, 9], "keystor": 6, "degrad": 6, "stationari": [6, 10], "candid": 6, "optim": 6, "intend": [6, 9], "trustless": [6, 9, 11], "free": [6, 8, 11], "unorganis": 6, "manner": 6, "far": [6, 9], "unexplor": 6, "dissolv": 6, "organ": 6, "restrict": [6, 10], "legaci": 6, "unifi": 6, "underli": [6, 11], "carrier": [6, 11], "involv": 6, "hardlin": 6, "illustr": [6, 9], "plan": [6, 9], "member": 6, "mainli": 6, "three": [6, 9], "hill": 6, "top": [6, 9], "chosen": [6, 9], "sight": 6, "becaus": [6, 9], "four": 6, "At": [6, 9], "cabl": 6, "suppli": [6, 7, 9], "grow": 6, "core": [6, 9, 10, 11], "those": [6, 9], "d": [6, 10], "island": 6, "investig": 6, "dori": 6, "willing": 6, "she": 6, "her": 6, "home": [6, 10], "everyon": [6, 9], "vice": [6, 11], "versa": [6, 11], "vhf": [6, 9, 11], "outli": 6, "geograph": 6, "coverag": 6, "dai": [6, 7], "find": [6, 9], "poorli": 6, "outlier": 6, "signatur": [7, 9, 10, 11], "configdir": 7, "logdest": 7, "verbos": [7, 10], "exactli": [7, 9], "independ": [7, 9, 11], "inter": 7, "soon": 7, "kill": [7, 9], "forcibli": [7, 10], "advantag": 7, "demand": 7, "mtu": [7, 9, 11], "500": [7, 9, 11], "adher": 7, "prerequisit": 7, "percentag": 7, "schedul": 7, "queu": [7, 10], "fewer": 7, "distant": 7, "smaller": 7, "eventu": 7, "alter": [7, 9], "minimum_bitr": 7, "static": 7, "get_inst": 7, "should_use_implicit_proof": 7, "explicit": 7, "implicit": [7, 9], "transport_en": 7, "remote_management_en": 7, "create_kei": 7, "decrypt": [7, 9, 10], "verif": [7, 9, 10], "sign": [7, 9, 10], "dh": 7, "keysiz": 7, "x25519": [9, 11], "concaten": 7, "128": [7, 9, 11], "constant": 7, "truncat": [7, 9, 10], "recall_app_data": 7, "heard": [7, 9], "full_hash": 7, "sha": [7, 9], "truncated_hash": 7, "from_byt": 7, "prv_byte": 7, "save": [7, 9], "hazard": 7, "feed": 7, "from_fil": 7, "to_fil": 7, "Be": [7, 10], "get_private_kei": 7, "get_public_kei": 7, "load_private_kei": 7, "load_public_kei": 7, "pub_byt": 7, "ratchet": [7, 9], "ciphertext": 7, "token": [7, 9], "keyerror": 7, "ciphertext_token": 7, "presenc": 7, "ingo": 7, "zero": [7, 11], "expand_nam": 7, "app_and_aspects_from_nam": 7, "full_nam": [7, 10], "tupl": 7, "hash_from_name_and_ident": 7, "adress": [7, 9], "path_respons": 7, "attached_interfac": 7, "tag": 7, "flag": [7, 9], "accepts_link": 7, "accept": [7, 8, 9, 10], "set_proof_requested_callback": 7, "proof_strategi": 7, "prove_non": 7, "prove_app": 7, "proof_requested_callback": 7, "allow_non": 7, "allowed_list": 7, "whatev": [7, 9], "funcion": 7, "allow_list": 7, "deregister_request_handl": 7, "deregist": 7, "symmetr": [7, 9], "typeerror": 7, "incompat": [7, 9], "set_default_app_data": 7, "clear_default_app_data": 7, "ae": [7, 9, 11], "secreci": [7, 9, 11], "instanti": 7, "encrypted_mdu": 7, "383": 7, "plain_mdu": 7, "464": 7, "resend": 7, "get_statu": 7, "cull": 7, "successful": 7, "proven": [7, 9], "established_callback": 7, "closed_callback": 7, "establishment_timeout_per_hop": 7, "keepalive_timeout_factor": 7, "4": [7, 9, 10], "calcul": [7, 9, 10], "stale_grac": 7, "grace": 7, "keepal": [7, 9], "360": 7, "aliv": [7, 9], "stale_tim": 7, "720": 7, "mark": [7, 9], "stale": 7, "torn": 7, "progress_callback": 7, "info": [7, 9, 10], "track_phy_stat": 7, "track": 7, "retriev": 7, "stat": [7, 10], "qualiti": 7, "get_rssi": 7, "signal": [7, 9], "strength": [7, 11], "get_snr": 7, "nois": 7, "ratio": 7, "get_q": 7, "get_establishment_r": 7, "ocur": 7, "get_ag": 7, "no_inbound_for": 7, "no_outbound_for": 7, "outbound": [7, 9], "no_data_for": 7, "travers": [7, 9], "exclud": [7, 9], "inactive_for": 7, "purg": 7, "set_resource_callback": 7, "get_transfer_s": 7, "get_data_s": 7, "get_part": 7, "is_compress": 7, "begun": 7, "resource_strategi": 7, "accept_non": 7, "accept_app": 7, "resource_callback": 7, "unsupport": 7, "get_request_id": 7, "get_respons": 7, "get_response_tim": 7, "auto_compress": 7, "arbitrari": [7, 9, 10, 11], "checksum": [7, 11], "Will": 7, "whenev": [7, 9], "cancel": 7, "total": [7, 9, 11], "get_seg": 7, "divid": 7, "get_hash": 7, "bi": [7, 9], "neither": [7, 9], "constrain": 7, "message_class": 7, "recept": 7, "messagecallbacktyp": 7, "bool": 7, "stop": [7, 11], "remove_message_handl": 7, "remov": [7, 10], "envelop": 7, "thrown": 7, "consum": 7, "adjust": 7, "accommod": [7, 9], "abstract": [7, 9], "greater": [7, 9, 11], "popul": 7, "bufferedread": 7, "bufferedwrit": 7, "bufferedrwpair": 7, "create_read": 7, "ready_callback": 7, "document": [7, 9], "create_writ": 7, "receive_stream_id": 7, "send_stream_id": 7, "rawiobas": 7, "add_ready_callback": 7, "cb": [7, 9], "remove_ready_callback": 7, "pathfinder_m": 7, "attribut": 7, "deregister_announce_handl": 7, "hops_to": 7, "next_hop": 7, "next_hop_interfac": 7, "on_interfac": 7, "recurs": 7, "gratefulli": 8, "monero": 8, "84fpy1qbxhcgdseepynmhthcrgmx4nffbytz2gkytoqhvvhjp8eaw1z1eedrnkd19b3b8nilcgvxzkv17ummmeescrpya5w": 8, "ethereum": 8, "0x81f7b979fea6134ba9fd5c701b3501a2e61e897a": 8, "bitcoin": 8, "3cpmacgm34qyvr6xwlvejmi2ane3pzquuq": 8, "ko": 8, "fi": 8, "roadmap": 8, "realiti": 8, "quickli": [8, 9, 11], "sponsor": [8, 11], "dysfunct": 8, "analyt": 8, "telemetri": 8, "collect": 8, "under": [8, 10, 11], "circumst": [8, 9], "reli": [8, 9], "fashion": 8, "u": [8, 9, 10], "suggest": 8, "overal": 9, "principl": [9, 11], "author": 9, "That": 9, "said": 9, "pretti": 9, "sentiment": 9, "philosophi": 9, "seek": 9, "solv": 9, "primari": 9, "lack": 9, "my": 9, "belief": 9, "highli": 9, "machin": 9, "censorship": [9, 11], "barrier": 9, "todai": 9, "centralis": 9, "trust": [9, 10], "approv": 9, "gatekeep": 9, "inevit": 9, "govern": 9, "censor": 9, "persecut": 9, "unwant": 9, "actor": 9, "imposs": 9, "freeli": 9, "deploi": 9, "enhanc": 9, "agenc": 9, "freedom": 9, "permissionless": 9, "pick": 9, "ghz": 9, "off": [9, 10, 11], "shelf": [9, 11], "ultim": 9, "vast": 9, "myriad": 9, "thousand": 9, "surveil": 9, "disassoci": 9, "oversight": 9, "beings": 9, "useabl": 9, "critic": [9, 10], "agnostic": 9, "shall": 9, "handheld": 9, "strong": 9, "oneself": 9, "unlicens": 9, "licens": 9, "condit": [9, 11], "pmr": 9, "written": 9, "programm": 9, "orient": 9, "multipoint": 9, "recipi": 9, "singular": 9, "_represented_": 9, "characterist": 9, "13425ec15b621c1d928589718000d814": 9, "trade": 9, "simultan": 9, "unlik": 9, "nears": 9, "congest": 9, "galact": 9, "scale": [9, 11], "obvious": 9, "ridicul": 9, "special": [9, 10], "ecdh": [9, 11], "creator": 9, "correspond": 9, "possess": 9, "although": [9, 11], "capabl": 9, "dot": [9, 10], "notat": [9, 10], "repres": 9, "plenti": 9, "environment": 9, "monitor": 9, "measur": 9, "environmentlogg": 9, "remotesensor": 9, "temperatur": 9, "4faf1b2e0a077e6a9d92fa051f256038": 9, "advis": 9, "expand": 9, "recap": 9, "indirectli": 9, "ledger": 9, "therefor": [9, 11], "messeng": 9, "nicknam": 9, "ed25519": [9, 11], "reconstruct": 9, "notic": [9, 10], "piec": 9, "intention": 9, "infer": 9, "throughout": 9, "accord": 9, "around": 9, "topic": 9, "necessarili": 9, "entiti": 9, "robot": 9, "sensor": 9, "someth": 9, "agent": 9, "manipul": [9, 11], "multilater": 9, "creation": [9, 11], "great": 9, "suffic": 9, "cluster": 9, "hear": 9, "But": 9, "lot": 9, "surviv": 9, "overcom": 9, "challeng": 9, "asymmetr": [9, 10, 11], "closer": 9, "distinguish": 9, "contend": 9, "enable_transport": [9, 10], "randomis": 9, "prioriti": 9, "invers": 9, "proport": 9, "count": 9, "insert": 9, "closest": 9, "newer": [7, 9], "newest": 9, "discard": [7, 9], "contact": 9, "shortest": 9, "predict": 9, "constantli": 9, "earlier": 9, "opt": 9, "against": 9, "bidirect": 9, "rememb": [7, 9], "ten": 9, "advanc": 9, "confirm": [9, 11], "insid": 9, "intermediari": 9, "moment": [9, 11], "methodologi": [9, 10], "answer": [9, 10], "malici": 9, "pretend": 9, "recreat": 9, "rotat": [7, 9], "memori": 9, "thereaft": 9, "297": [9, 11], "neglig": 9, "1200": 9, "96": 9, "keypair": 9, "simplic": 9, "explan": [9, 10], "lki": 9, "laid": 9, "had": 9, "construct": [9, 11], "lkr": 9, "chose": 9, "direction": 9, "unequivoc": 9, "retransmiss": 9, "reassembl": 9, "programmat": 9, "satisfi": 9, "half": [9, 11], "duplex": [9, 11], "averag": 9, "throughput": [9, 11], "x": [7, 9, 10], "runtim": 9, "consist": 9, "whereupon": 9, "stabl": [9, 11], "stage": 9, "year": 9, "microcontrol": 9, "430": 9, "868": 9, "900": 9, "recent": [7, 9], "mac": 9, "tailor": 9, "treat": 9, "regard": 9, "preshar": 9, "ifac": [9, 10], "compos": 9, "field": 9, "context": 9, "465": 9, "vari": [9, 10], "unset": 9, "00": [9, 10], "01": 9, "11": 9, "_______": 9, "________________": 9, "________": 9, "______": 9, "__": 9, "_": 9, "01010000": 9, "00000100": 9, "hash1": 9, "hash2": 9, "header_2": 9, "00000000": 9, "00000111": 9, "header_1": 9, "10000000": 9, "51": 9, "167": 9, "83": [9, 10], "115": 9, "99": 9, "conceptu": 9, "hkdf": 9, "fernet": [9, 11], "cbc": [9, 11], "hmac": [9, 11], "hashlib": 9, "pkcs7": [9, 11], "pad": [9, 11], "trivial": [9, 11], "consequ": 9, "backend": 9, "loss": 9, "scrutini": 9, "review": [9, 11], "risk": 9, "driver": [10, 11], "privileg": 10, "light": 10, "weight": 10, "etc": 10, "boot": 10, "ie": 10, "breviti": 10, "socket": 10, "turn": 10, "share_inst": 10, "shared_instance_port": 10, "37428": 10, "instance_control_port": 10, "37429": 10, "rpc": 10, "rpc_kei": 10, "e5c032d3ec4e64a6aca9927ba8ab73336780f6d71790": 10, "panic": 10, "unrecover": 10, "panic_on_interface_error": 10, "probe": 10, "respond_to_prob": 10, "warn": 10, "debug": 10, "unus": 10, "teach": 10, "task": 10, "08": 10, "18": 10, "17": 10, "59": 10, "56": 10, "v": 10, "show": 10, "ifconfig": 10, "gbp": 10, "13": 10, "kb": 10, "86": 10, "mbp": 10, "63": 10, "23": 10, "80": 10, "tcpinterfac": 10, "dublin": 10, "187": 10, "27": 10, "74": 10, "uhf": [10, 11], "kbp": 10, "e702c42ba8": 10, "49": 10, "9": 10, "5245a8efe1788c6a1cd36144a270e13b": 10, "j": 10, "w": 10, "posit": 10, "arx": 10, "atx": 10, "revers": 10, "json": 10, "new_ident": 10, "984b74a3f768bef236af4371e6f248cd": 10, "new_id": 10, "0f4259fef4521ab75a3409e353fe9073eb10783b4912a6a9937c57bf44a62c1": 10, "hidden": 10, "8dd57a738226809646089335a6b03695": 10, "my_fil": 10, "txt": 10, "bc7291552be7a58f361522990465165c": 10, "rfe": 10, "fetch": 10, "30602def3b3506a28ed33db6f60cc6c9": 10, "2b489d06eaf7c543808c76a5332a447d": 10, "my_ident": 10, "2225fdeecaf6e2db4556c3c2d7637294": 10, "decreas": 10, "overwrit": 10, "c89b4da064bf66d280f0e4d8abfd9806": 10, "f53a1c4278e0726bb73fcc623d6ce763": 10, "max": 10, "rnstransport": 10, "2d03725b327348980d570f739a3a5708": 10, "38": 10, "469": 10, "781": 10, "e7536ee90bd4a440e130490b87a25124": 10, "809": 10, "73": 10, "1726dbad538775b5bf9b0ea25a4079c8": 10, "c50cc4e4f7838b6c31f60ab9032cbc62": 10, "allowed_ident": 10, "copi": 10, "tgz": 10, "73cbd378bb0286ed11a707c13447bb1": 10, "allowed_hash": 10, "silent": 10, "jail": 10, "auth": 10, "941bed5e228775e5a8079fc38b1ccf3f": 10, "1b03013c25f1c2ca068a4f080b844a10": 10, "7a55144adf826958a9529a3bcf08b149": 10, "cat": 10, "proc": 10, "cpuinfo": 10, "pseudo": 10, "stderr": 10, "noauth": 10, "noid": 10, "mirror": 10, "fw": 10, "url": 10, "nocheck": 10, "flash": 10, "baud_flash": 10, "addr": 10, "freq": 10, "hz": 10, "bw": 10, "txp": 10, "sf": 10, "cr": 10, "eeprom": 10, "backup": 10, "dump": 10, "wipe": 10, "hexbyt": 10, "firmware_hash": 10, "product": 10, "model": 10, "hwrev": 10, "revis": 10, "attach": 10, "older": 10, "onlin": 10, "extract": 10, "cach": 10, "921600": 10, "bluetooth": 10, "intens": 10, "ff": 10, "consol": 10, "unlock": 10, "bootstrap": 10, "rom": 10, "enable_remote_manag": 10, "remote_management_allow": 10, "9fb6d773498fb3feda407ed8ef2c3229": 10, "2d882c5586e548d79b5af27bca1776dc": 10, "administr": 10, "ftdi_ft230x_basic_uart_43891ckm": 10, "if00": 10, "port0": 10, "plug": 10, "unplug": 10, "systemd": 10, "usr": 10, "bin": 10, "execstartpr": 10, "restart": 10, "restartsec": 10, "usernameher": 10, "execstart": 10, "wantedbi": 10, "systemctl": 10, "whole": 10, "regular": 10, "rns_bin_dir": 10, "eg": 10, "reload": 10, "loginctl": 10, "linger": 10, "readili": 11, "advers": 11, "unforg": 11, "acknowledg": 11, "empow": 11, "autonomi": 11, "sovereignti": 11, "subject": 11, "outsid": [7, 11], "planetari": 11, "hierarch": 11, "beaureucrat": 11, "resili": 11, "userland": 11, "beta": 11, "bug": 11, "warrant": 11, "sha256": 11, "iv": 11, "urandom": 11, "intuit": 11, "44": 11, "gigabyt": 11, "scalabl": 11, "hoc": 11, "transform": 11, "fact": 11, "generalis": 11, "fibr": 11, "popular": 11, "ideal": 11, "stdio": 11, "hack": 11, "foremost": 11, "audit": 11, "privaci": 11, "thorough": 11, "research": 11, "touch": 11, "ratchets": 7, "ratchet_expiri": 7, "2592000": 7, "meantim": 7, "ratchet_count": 7, "ratchet_interv": 7, "1800": 7, "enable_ratchet": 7, "ratchets_path": 7, "set_retained_ratchet": 7, "retained_ratchet": 7, "succeed": 7, "set_ratchet_interv": 7, "25519": 7, "enforce_ratchet": 7, "receive_path_respons": 7, "live": 7}, "objects": {"RNS": [[7, 0, 1, "", "Buffer"], [7, 0, 1, "", "Destination"], [7, 0, 1, "", "Identity"], [7, 0, 1, "", "Link"], [7, 0, 1, "", "MessageBase"], [7, 0, 1, "", "Packet"], [7, 0, 1, "", "PacketReceipt"], [7, 0, 1, "", "RawChannelReader"], [7, 0, 1, "", "RawChannelWriter"], [7, 0, 1, "", "RequestReceipt"], [7, 0, 1, "", "Resource"], [7, 0, 1, "", "Reticulum"], [7, 0, 1, "", "Transport"]], "RNS.Buffer": [[7, 1, 1, "", "create_bidirectional_buffer"], [7, 1, 1, "", "create_reader"], [7, 1, 1, "", "create_writer"]], "RNS.Channel": [[7, 0, 1, "", "Channel"]], "RNS.Channel.Channel": [[7, 2, 1, "", "MDU"], [7, 1, 1, "", "add_message_handler"], [7, 1, 1, "", "is_ready_to_send"], [7, 1, 1, "", "register_message_type"], [7, 1, 1, "", "remove_message_handler"], [7, 1, 1, "", "send"]], "RNS.Destination": [[7, 3, 1, "", "RATCHET_COUNT"], [7, 3, 1, "", "RATCHET_INTERVAL"], [7, 1, 1, "", "accepts_links"], [7, 1, 1, "", "announce"], [7, 1, 1, "", "app_and_aspects_from_name"], [7, 1, 1, "", "clear_default_app_data"], [7, 1, 1, "", "create_keys"], [7, 1, 1, "", "decrypt"], [7, 1, 1, "", "deregister_request_handler"], [7, 1, 1, "", "enable_ratchets"], [7, 1, 1, "", "encrypt"], [7, 1, 1, "", "enforce_ratchets"], [7, 1, 1, "", "expand_name"], [7, 1, 1, "", "get_private_key"], [7, 1, 1, "", "hash"], [7, 1, 1, "", "hash_from_name_and_identity"], [7, 1, 1, "", "load_private_key"], [7, 1, 1, "", "register_request_handler"], [7, 1, 1, "", "set_default_app_data"], [7, 1, 1, "", "set_link_established_callback"], [7, 1, 1, "", "set_packet_callback"], [7, 1, 1, "", "set_proof_requested_callback"], [7, 1, 1, "", "set_proof_strategy"], [7, 1, 1, "", "set_ratchet_interval"], [7, 1, 1, "", "set_retained_ratchets"], [7, 1, 1, "", "sign"]], "RNS.Identity": [[7, 3, 1, "", "CURVE"], [7, 3, 1, "", "KEYSIZE"], [7, 3, 1, "", "RATCHETSIZE"], [7, 3, 1, "", "RATCHET_EXPIRY"], [7, 3, 1, "", "TRUNCATED_HASHLENGTH"], [7, 1, 1, "", "decrypt"], [7, 1, 1, "", "encrypt"], [7, 1, 1, "", "from_bytes"], [7, 1, 1, "", "from_file"], [7, 1, 1, "", "full_hash"], [7, 1, 1, "", "get_private_key"], [7, 1, 1, "", "get_public_key"], [7, 1, 1, "", "get_random_hash"], [7, 1, 1, "", "load_private_key"], [7, 1, 1, "", "load_public_key"], [7, 1, 1, "", "recall"], [7, 1, 1, "", "recall_app_data"], [7, 1, 1, "", "sign"], [7, 1, 1, "", "to_file"], [7, 1, 1, "", "truncated_hash"], [7, 1, 1, "", "validate"]], "RNS.Link": [[7, 3, 1, "", "CURVE"], [7, 3, 1, "", "ESTABLISHMENT_TIMEOUT_PER_HOP"], [7, 3, 1, "", "KEEPALIVE"], [7, 3, 1, "", "KEEPALIVE_TIMEOUT_FACTOR"], [7, 3, 1, "", "STALE_GRACE"], [7, 3, 1, "", "STALE_TIME"], [7, 1, 1, "", "get_age"], [7, 1, 1, "", "get_channel"], [7, 1, 1, "", "get_establishment_rate"], [7, 1, 1, "", "get_q"], [7, 1, 1, "", "get_remote_identity"], [7, 1, 1, "", "get_rssi"], [7, 1, 1, "", "get_snr"], [7, 1, 1, "", "identify"], [7, 1, 1, "", "inactive_for"], [7, 1, 1, "", "no_data_for"], [7, 1, 1, "", "no_inbound_for"], [7, 1, 1, "", "no_outbound_for"], [7, 1, 1, "", "request"], [7, 1, 1, "", "set_link_closed_callback"], [7, 1, 1, "", "set_packet_callback"], [7, 1, 1, "", "set_remote_identified_callback"], [7, 1, 1, "", "set_resource_callback"], [7, 1, 1, "", "set_resource_concluded_callback"], [7, 1, 1, "", "set_resource_started_callback"], [7, 1, 1, "", "set_resource_strategy"], [7, 1, 1, "", "teardown"], [7, 1, 1, "", "track_phy_stats"]], "RNS.MessageBase": [[7, 3, 1, "", "MSGTYPE"], [7, 1, 1, "", "pack"], [7, 1, 1, "", "unpack"]], "RNS.Packet": [[7, 3, 1, "", "ENCRYPTED_MDU"], [7, 3, 1, "", "PLAIN_MDU"], [7, 1, 1, "", "resend"], [7, 1, 1, "", "send"]], "RNS.PacketReceipt": [[7, 1, 1, "", "get_rtt"], [7, 1, 1, "", "get_status"], [7, 1, 1, "", "set_delivery_callback"], [7, 1, 1, "", "set_timeout"], [7, 1, 1, "", "set_timeout_callback"]], "RNS.RawChannelReader": [[7, 1, 1, "", "__init__"], [7, 1, 1, "", "add_ready_callback"], [7, 1, 1, "", "remove_ready_callback"]], "RNS.RawChannelWriter": [[7, 1, 1, "", "__init__"]], "RNS.RequestReceipt": [[7, 1, 1, "", "concluded"], [7, 1, 1, "", "get_progress"], [7, 1, 1, "", "get_request_id"], [7, 1, 1, "", "get_response"], [7, 1, 1, "", "get_response_time"], [7, 1, 1, "", "get_status"]], "RNS.Resource": [[7, 1, 1, "", "advertise"], [7, 1, 1, "", "cancel"], [7, 1, 1, "", "get_data_size"], [7, 1, 1, "", "get_hash"], [7, 1, 1, "", "get_parts"], [7, 1, 1, "", "get_progress"], [7, 1, 1, "", "get_segments"], [7, 1, 1, "", "get_transfer_size"], [7, 1, 1, "", "is_compressed"]], "RNS.Reticulum": [[7, 3, 1, "", "ANNOUNCE_CAP"], [7, 3, 1, "", "MINIMUM_BITRATE"], [7, 3, 1, "", "MTU"], [7, 1, 1, "", "get_instance"], [7, 1, 1, "", "remote_management_enabled"], [7, 1, 1, "", "should_use_implicit_proof"], [7, 1, 1, "", "transport_enabled"]], "RNS.Transport": [[7, 3, 1, "", "PATHFINDER_M"], [7, 1, 1, "", "deregister_announce_handler"], [7, 1, 1, "", "has_path"], [7, 1, 1, "", "hops_to"], [7, 1, 1, "", "next_hop"], [7, 1, 1, "", "next_hop_interface"], [7, 1, 1, "", "register_announce_handler"], [7, 1, 1, "", "request_path"]]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:property", "3": "py:attribute"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "property", "Python property"], "3": ["py", "attribute", "Python attribute"]}, "titleterms": {"code": [0, 8, 9], "exampl": [0, 6], "minim": 0, "announc": [0, 5, 9], "broadcast": 0, "echo": 0, "link": [0, 9], "identif": 0, "request": 0, "respons": 0, "channel": 0, "buffer": 0, "filetransf": 0, "an": 1, "explan": 1, "reticulum": [1, 2, 3, 4, 8, 9, 10, 11], "human": 1, "Beings": 1, "get": [2, 9], "start": 2, "fast": 2, "standalon": 2, "instal": [2, 3], "resolv": 2, "depend": 2, "issu": 2, "try": 2, "us": [2, 10, 11], "base": [2, 3], "program": [2, 10], "remot": [2, 10], "shell": 2, "nomad": 2, "network": [2, 4, 6], "sideband": 2, "meshchat": 2, "includ": [2, 10], "util": [2, 10], "creat": [2, 3], "With": 2, "connect": 2, "instanc": 2, "over": [2, 6], "internet": [2, 6], "public": [2, 9], "testnet": 2, "ad": 2, "radio": [2, 3], "interfac": [2, 5, 9, 11], "develop": 2, "particip": 2, "platform": 2, "specif": [2, 9], "note": 2, "android": 2, "arm64": 2, "raspberri": 2, "pi": 2, "debian": 2, "bookworm": 2, "ubuntu": 2, "lunar": 2, "pure": 2, "python": 2, "commun": 3, "hardwar": 3, "combin": 3, "type": [3, 9, 11], "rnode": [3, 5], "support": [3, 8], "board": 3, "lilygo": 3, "lora32": 3, "v2": 3, "1": 3, "0": 3, "t": 3, "beam": 3, "heltec": 3, "unsign": 3, "x": 3, "v1": 3, "usag": 3, "wifi": 3, "ethernet": 3, "serial": [3, 5, 10], "line": 3, "devic": [3, 11], "packet": [3, 9], "modem": 3, "stack": 4, "manual": 4, "tabl": 4, "Of": 4, "content": 4, "indic": 4, "configur": [5, 10], "auto": 5, "i2p": 5, "tcp": 5, "server": 5, "client": 5, "udp": 5, "lora": [5, 6], "multi": 5, "pipe": 5, "kiss": 5, "ax": 5, "25": 5, "common": 5, "option": 5, "mode": 5, "rate": 5, "control": 5, "new": 5, "destin": [5, 9], "limit": 5, "build": 6, "concept": 6, "overview": 6, "scenario": 6, "interconnect": 6, "site": 6, "bridg": 6, "growth": 6, "converg": 6, "api": 7, "refer": [7, 9], "donat": 8, "provid": 8, "feedback": 8, "contribut": 8, "understand": 9, "motiv": 9, "goal": 9, "introduct": 9, "basic": 9, "function": 9, "name": [9, 10], "kei": 9, "ident": 9, "further": 9, "transport": 9, "node": 9, "The": [9, 10], "mechan": 9, "detail": 9, "reach": 9, "establish": 9, "resourc": 9, "setup": 9, "protocol": 9, "prioritis": 9, "access": 9, "wire": 9, "format": 9, "propag": 9, "rule": 9, "cryptograph": 9, "primit": 9, "your": 10, "system": 10, "data": 10, "rnsd": 10, "rnstatu": 10, "rnid": 10, "rnpath": 10, "rnprobe": 10, "rncp": 10, "rnx": 10, "rnodeconf": 10, "manag": 10, "improv": 10, "fix": 10, "port": 10, "servic": 10, "systemwid": 10, "userspac": 10, "what": 11, "i": 11, "current": 11, "statu": 11, "doe": 11, "offer": 11, "where": 11, "can": 11, "caveat": 11, "emptor": 11}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "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": 57}, "alltitles": {"Code Examples": [[0, "code-examples"]], "Minimal": [[0, "minimal"]], "Announce": [[0, "announce"]], "Broadcast": [[0, "broadcast"]], "Echo": [[0, "echo"]], "Link": [[0, "link"]], "Identification": [[0, "example-identify"]], "Requests & Responses": [[0, "requests-responses"]], "Channel": [[0, "channel"]], "Buffer": [[0, "buffer"]], "Filetransfer": [[0, "filetransfer"]], "An Explanation of Reticulum for Human Beings": [[1, "an-explanation-of-reticulum-for-human-beings"]], "Getting Started Fast": [[2, "getting-started-fast"]], "Standalone Reticulum Installation": [[2, "standalone-reticulum-installation"]], "Resolving Dependency & Installation Issues": [[2, "resolving-dependency-installation-issues"]], "Try Using a Reticulum-based Program": [[2, "try-using-a-reticulum-based-program"]], "Remote Shell": [[2, "remote-shell"]], "Nomad Network": [[2, "nomad-network"]], "Sideband": [[2, "sideband"]], "MeshChat": [[2, "meshchat"]], "Using the Included Utilities": [[2, "using-the-included-utilities"]], "Creating a Network With Reticulum": [[2, "creating-a-network-with-reticulum"]], "Connecting Reticulum Instances Over the Internet": [[2, "connecting-reticulum-instances-over-the-internet"]], "Connect to the Public Testnet": [[2, "connect-to-the-public-testnet"]], "Adding Radio Interfaces": [[2, "adding-radio-interfaces"]], "Develop a Program with Reticulum": [[2, "develop-a-program-with-reticulum"]], "Participate in Reticulum Development": [[2, "participate-in-reticulum-development"]], "Platform-Specific Install Notes": [[2, "platform-specific-install-notes"]], "Android": [[2, "android"]], "ARM64": [[2, "arm64"]], "Raspberry Pi": [[2, "raspberry-pi"]], "Debian Bookworm": [[2, "debian-bookworm"]], "Ubuntu Lunar": [[2, "ubuntu-lunar"]], "Pure-Python Reticulum": [[2, "pure-python-reticulum"]], "Communications Hardware": [[3, "communications-hardware"]], "Combining Hardware Types": [[3, "combining-hardware-types"]], "RNode": [[3, "rnode"]], "Creating RNodes": [[3, "creating-rnodes"]], "Supported Boards": [[3, "supported-boards"]], "LilyGO LoRa32 v2.1": [[3, "lilygo-lora32-v2-1"]], "LilyGO LoRa32 v2.0": [[3, "lilygo-lora32-v2-0"]], "LilyGO T-Beam": [[3, "lilygo-t-beam"]], "Heltec LoRa32 v2.0": [[3, "heltec-lora32-v2-0"]], "Unsigned RNode v2.x": [[3, "unsigned-rnode-v2-x"]], "Unsigned RNode v1.x": [[3, "unsigned-rnode-v1-x"]], "Installation": [[3, "installation"]], "Usage with Reticulum": [[3, "usage-with-reticulum"]], "WiFi-based Hardware": [[3, "wifi-based-hardware"]], "Ethernet-based Hardware": [[3, "ethernet-based-hardware"]], "Serial Lines & Devices": [[3, "serial-lines-devices"]], "Packet Radio Modems": [[3, "packet-radio-modems"]], "Reticulum Network Stack Manual": [[4, "reticulum-network-stack-manual"]], "Table Of Contents": [[4, "table-of-contents"]], "Indices and Tables": [[4, "indices-and-tables"]], "Configuring Interfaces": [[5, "configuring-interfaces"]], "Auto Interface": [[5, "auto-interface"]], "I2P Interface": [[5, "i2p-interface"]], "TCP Server Interface": [[5, "tcp-server-interface"]], "TCP Client Interface": [[5, "tcp-client-interface"]], "UDP Interface": [[5, "udp-interface"]], "RNode LoRa Interface": [[5, "rnode-lora-interface"]], "RNode Multi Interface": [[5, "rnode-multi-interface"]], "Serial Interface": [[5, "serial-interface"]], "Pipe Interface": [[5, "pipe-interface"]], "KISS Interface": [[5, "kiss-interface"]], "AX.25 KISS Interface": [[5, "ax-25-kiss-interface"]], "Common Interface Options": [[5, "common-interface-options"]], "Interface Modes": [[5, "interface-modes"]], "Announce Rate Control": [[5, "announce-rate-control"]], "New Destination Rate Limiting": [[5, "new-destination-rate-limiting"]], "Building Networks": [[6, "building-networks"]], "Concepts & Overview": [[6, "concepts-overview"]], "Example Scenarios": [[6, "example-scenarios"]], "Interconnected LoRa Sites": [[6, "interconnected-lora-sites"]], "Bridging Over the Internet": [[6, "bridging-over-the-internet"]], "Growth and Convergence": [[6, "growth-and-convergence"]], "Support Reticulum": [[8, "support-reticulum"]], "Donations": [[8, "donations"]], "Provide Feedback": [[8, "provide-feedback"]], "Contribute Code": [[8, "contribute-code"]], "Using Reticulum on Your System": [[10, "using-reticulum-on-your-system"]], "Configuration & Data": [[10, "configuration-data"]], "Included Utility Programs": [[10, "included-utility-programs"]], "The rnsd Utility": [[10, "the-rnsd-utility"]], "The rnstatus Utility": [[10, "the-rnstatus-utility"]], "The rnid Utility": [[10, "the-rnid-utility"]], "The rnpath Utility": [[10, "the-rnpath-utility"]], "The rnprobe Utility": [[10, "the-rnprobe-utility"]], "The rncp Utility": [[10, "the-rncp-utility"]], "The rnx Utility": [[10, "the-rnx-utility"]], "The rnodeconf Utility": [[10, "the-rnodeconf-utility"]], "Remote Management": [[10, "remote-management"]], "Improving System Configuration": [[10, "improving-system-configuration"]], "Fixed Serial Port Names": [[10, "fixed-serial-port-names"]], "Reticulum as a System Service": [[10, "reticulum-as-a-system-service"]], "Systemwide Service": [[10, "systemwide-service"]], "Userspace Service": [[10, "userspace-service"]], "Understanding Reticulum": [[9, "understanding-reticulum"]], "Motivation": [[9, "motivation"]], "Goals": [[9, "goals"]], "Introduction & Basic Functionality": [[9, "introduction-basic-functionality"]], "Destinations": [[9, "destinations"]], "Destination Naming": [[9, "destination-naming"]], "Public Key Announcements": [[9, "public-key-announcements"]], "Identities": [[9, "understanding-identities"]], "Getting Further": [[9, "getting-further"]], "Reticulum Transport": [[9, "reticulum-transport"]], "Node Types": [[9, "node-types"]], "The Announce Mechanism in Detail": [[9, "the-announce-mechanism-in-detail"]], "Reaching the Destination": [[9, "reaching-the-destination"]], "Link Establishment in Detail": [[9, "link-establishment-in-detail"]], "Resources": [[9, "resources"]], "Reference Setup": [[9, "reference-setup"]], "Protocol Specifics": [[9, "protocol-specifics"]], "Packet Prioritisation": [[9, "packet-prioritisation"]], "Interface Access Codes": [[9, "interface-access-codes"]], "Wire Format": [[9, "wire-format"]], "Announce Propagation Rules": [[9, "announce-propagation-rules"]], "Cryptographic Primitives": [[9, "cryptographic-primitives"]], "What is Reticulum?": [[11, "what-is-reticulum"]], "Current Status": [[11, "current-status"]], "What does Reticulum Offer?": [[11, "what-does-reticulum-offer"]], "Where can Reticulum be Used?": [[11, "where-can-reticulum-be-used"]], "Interface Types and Devices": [[11, "interface-types-and-devices"]], "Caveat Emptor": [[11, "caveat-emptor"]], "API Reference": [[7, "api-reference"]]}, "indexentries": {"announce_cap (rns.reticulum attribute)": [[7, "RNS.Reticulum.ANNOUNCE_CAP"]], "buffer (class in rns)": [[7, "RNS.Buffer"]], "curve (rns.identity attribute)": [[7, "RNS.Identity.CURVE"]], "curve (rns.link attribute)": [[7, "RNS.Link.CURVE"]], "channel (class in rns.channel)": [[7, "RNS.Channel.Channel"]], "destination (class in rns)": [[7, "RNS.Destination"]], "encrypted_mdu (rns.packet attribute)": [[7, "RNS.Packet.ENCRYPTED_MDU"]], "establishment_timeout_per_hop (rns.link attribute)": [[7, "RNS.Link.ESTABLISHMENT_TIMEOUT_PER_HOP"]], "identity (class in rns)": [[7, "RNS.Identity"]], "keepalive (rns.link attribute)": [[7, "RNS.Link.KEEPALIVE"]], "keepalive_timeout_factor (rns.link attribute)": [[7, "RNS.Link.KEEPALIVE_TIMEOUT_FACTOR"]], "keysize (rns.identity attribute)": [[7, "RNS.Identity.KEYSIZE"]], "link (class in rns)": [[7, "RNS.Link"]], "mdu (rns.channel.channel property)": [[7, "RNS.Channel.Channel.MDU"]], "minimum_bitrate (rns.reticulum attribute)": [[7, "RNS.Reticulum.MINIMUM_BITRATE"]], "msgtype (rns.messagebase attribute)": [[7, "RNS.MessageBase.MSGTYPE"]], "mtu (rns.reticulum attribute)": [[7, "RNS.Reticulum.MTU"]], "messagebase (class in rns)": [[7, "RNS.MessageBase"]], "pathfinder_m (rns.transport attribute)": [[7, "RNS.Transport.PATHFINDER_M"]], "plain_mdu (rns.packet attribute)": [[7, "RNS.Packet.PLAIN_MDU"]], "packet (class in rns)": [[7, "RNS.Packet"]], "packetreceipt (class in rns)": [[7, "RNS.PacketReceipt"]], "ratchetsize (rns.identity attribute)": [[7, "RNS.Identity.RATCHETSIZE"]], "ratchet_count (rns.destination attribute)": [[7, "RNS.Destination.RATCHET_COUNT"]], "ratchet_expiry (rns.identity attribute)": [[7, "RNS.Identity.RATCHET_EXPIRY"]], "ratchet_interval (rns.destination attribute)": [[7, "RNS.Destination.RATCHET_INTERVAL"]], "rawchannelreader (class in rns)": [[7, "RNS.RawChannelReader"]], "rawchannelwriter (class in rns)": [[7, "RNS.RawChannelWriter"]], "requestreceipt (class in rns)": [[7, "RNS.RequestReceipt"]], "resource (class in rns)": [[7, "RNS.Resource"]], "reticulum (class in rns)": [[7, "RNS.Reticulum"]], "stale_grace (rns.link attribute)": [[7, "RNS.Link.STALE_GRACE"]], "stale_time (rns.link attribute)": [[7, "RNS.Link.STALE_TIME"]], "truncated_hashlength (rns.identity attribute)": [[7, "RNS.Identity.TRUNCATED_HASHLENGTH"]], "transport (class in rns)": [[7, "RNS.Transport"]], "__init__() (rns.rawchannelreader method)": [[7, "RNS.RawChannelReader.__init__"]], "__init__() (rns.rawchannelwriter method)": [[7, "RNS.RawChannelWriter.__init__"]], "accepts_links() (rns.destination method)": [[7, "RNS.Destination.accepts_links"]], "add_message_handler() (rns.channel.channel method)": [[7, "RNS.Channel.Channel.add_message_handler"]], "add_ready_callback() (rns.rawchannelreader method)": [[7, "RNS.RawChannelReader.add_ready_callback"]], "advertise() (rns.resource method)": [[7, "RNS.Resource.advertise"]], "announce() (rns.destination method)": [[7, "RNS.Destination.announce"]], "app_and_aspects_from_name() (rns.destination static method)": [[7, "RNS.Destination.app_and_aspects_from_name"]], "cancel() (rns.resource method)": [[7, "RNS.Resource.cancel"]], "clear_default_app_data() (rns.destination method)": [[7, "RNS.Destination.clear_default_app_data"]], "concluded() (rns.requestreceipt method)": [[7, "RNS.RequestReceipt.concluded"]], "create_bidirectional_buffer() (rns.buffer static method)": [[7, "RNS.Buffer.create_bidirectional_buffer"]], "create_keys() (rns.destination method)": [[7, "RNS.Destination.create_keys"]], "create_reader() (rns.buffer static method)": [[7, "RNS.Buffer.create_reader"]], "create_writer() (rns.buffer static method)": [[7, "RNS.Buffer.create_writer"]], "decrypt() (rns.destination method)": [[7, "RNS.Destination.decrypt"]], "decrypt() (rns.identity method)": [[7, "RNS.Identity.decrypt"]], "deregister_announce_handler() (rns.transport static method)": [[7, "RNS.Transport.deregister_announce_handler"]], "deregister_request_handler() (rns.destination method)": [[7, "RNS.Destination.deregister_request_handler"]], "enable_ratchets() (rns.destination method)": [[7, "RNS.Destination.enable_ratchets"]], "encrypt() (rns.destination method)": [[7, "RNS.Destination.encrypt"]], "encrypt() (rns.identity method)": [[7, "RNS.Identity.encrypt"]], "enforce_ratchets() (rns.destination method)": [[7, "RNS.Destination.enforce_ratchets"]], "expand_name() (rns.destination static method)": [[7, "RNS.Destination.expand_name"]], "from_bytes() (rns.identity static method)": [[7, "RNS.Identity.from_bytes"]], "from_file() (rns.identity static method)": [[7, "RNS.Identity.from_file"]], "full_hash() (rns.identity static method)": [[7, "RNS.Identity.full_hash"]], "get_age() (rns.link method)": [[7, "RNS.Link.get_age"]], "get_channel() (rns.link method)": [[7, "RNS.Link.get_channel"]], "get_data_size() (rns.resource method)": [[7, "RNS.Resource.get_data_size"]], "get_establishment_rate() (rns.link method)": [[7, "RNS.Link.get_establishment_rate"]], "get_hash() (rns.resource method)": [[7, "RNS.Resource.get_hash"]], "get_instance() (rns.reticulum static method)": [[7, "RNS.Reticulum.get_instance"]], "get_parts() (rns.resource method)": [[7, "RNS.Resource.get_parts"]], "get_private_key() (rns.destination method)": [[7, "RNS.Destination.get_private_key"]], "get_private_key() (rns.identity method)": [[7, "RNS.Identity.get_private_key"]], "get_progress() (rns.requestreceipt method)": [[7, "RNS.RequestReceipt.get_progress"]], "get_progress() (rns.resource method)": [[7, "RNS.Resource.get_progress"]], "get_public_key() (rns.identity method)": [[7, "RNS.Identity.get_public_key"]], "get_q() (rns.link method)": [[7, "RNS.Link.get_q"]], "get_random_hash() (rns.identity static method)": [[7, "RNS.Identity.get_random_hash"]], "get_remote_identity() (rns.link method)": [[7, "RNS.Link.get_remote_identity"]], "get_request_id() (rns.requestreceipt method)": [[7, "RNS.RequestReceipt.get_request_id"]], "get_response() (rns.requestreceipt method)": [[7, "RNS.RequestReceipt.get_response"]], "get_response_time() (rns.requestreceipt method)": [[7, "RNS.RequestReceipt.get_response_time"]], "get_rssi() (rns.link method)": [[7, "RNS.Link.get_rssi"]], "get_rtt() (rns.packetreceipt method)": [[7, "RNS.PacketReceipt.get_rtt"]], "get_segments() (rns.resource method)": [[7, "RNS.Resource.get_segments"]], "get_snr() (rns.link method)": [[7, "RNS.Link.get_snr"]], "get_status() (rns.packetreceipt method)": [[7, "RNS.PacketReceipt.get_status"]], "get_status() (rns.requestreceipt method)": [[7, "RNS.RequestReceipt.get_status"]], "get_transfer_size() (rns.resource method)": [[7, "RNS.Resource.get_transfer_size"]], "has_path() (rns.transport static method)": [[7, "RNS.Transport.has_path"]], "hash() (rns.destination static method)": [[7, "RNS.Destination.hash"]], "hash_from_name_and_identity() (rns.destination static method)": [[7, "RNS.Destination.hash_from_name_and_identity"]], "hops_to() (rns.transport static method)": [[7, "RNS.Transport.hops_to"]], "identify() (rns.link method)": [[7, "RNS.Link.identify"]], "inactive_for() (rns.link method)": [[7, "RNS.Link.inactive_for"]], "is_compressed() (rns.resource method)": [[7, "RNS.Resource.is_compressed"]], "is_ready_to_send() (rns.channel.channel method)": [[7, "RNS.Channel.Channel.is_ready_to_send"]], "load_private_key() (rns.destination method)": [[7, "RNS.Destination.load_private_key"]], "load_private_key() (rns.identity method)": [[7, "RNS.Identity.load_private_key"]], "load_public_key() (rns.identity method)": [[7, "RNS.Identity.load_public_key"]], "next_hop() (rns.transport static method)": [[7, "RNS.Transport.next_hop"]], "next_hop_interface() (rns.transport static method)": [[7, "RNS.Transport.next_hop_interface"]], "no_data_for() (rns.link method)": [[7, "RNS.Link.no_data_for"]], "no_inbound_for() (rns.link method)": [[7, "RNS.Link.no_inbound_for"]], "no_outbound_for() (rns.link method)": [[7, "RNS.Link.no_outbound_for"]], "pack() (rns.messagebase method)": [[7, "RNS.MessageBase.pack"]], "recall() (rns.identity static method)": [[7, "RNS.Identity.recall"]], "recall_app_data() (rns.identity static method)": [[7, "RNS.Identity.recall_app_data"]], "register_announce_handler() (rns.transport static method)": [[7, "RNS.Transport.register_announce_handler"]], "register_message_type() (rns.channel.channel method)": [[7, "RNS.Channel.Channel.register_message_type"]], "register_request_handler() (rns.destination method)": [[7, "RNS.Destination.register_request_handler"]], "remote_management_enabled() (rns.reticulum static method)": [[7, "RNS.Reticulum.remote_management_enabled"]], "remove_message_handler() (rns.channel.channel method)": [[7, "RNS.Channel.Channel.remove_message_handler"]], "remove_ready_callback() (rns.rawchannelreader method)": [[7, "RNS.RawChannelReader.remove_ready_callback"]], "request() (rns.link method)": [[7, "RNS.Link.request"]], "request_path() (rns.transport static method)": [[7, "RNS.Transport.request_path"]], "resend() (rns.packet method)": [[7, "RNS.Packet.resend"]], "send() (rns.channel.channel method)": [[7, "RNS.Channel.Channel.send"]], "send() (rns.packet method)": [[7, "RNS.Packet.send"]], "set_default_app_data() (rns.destination method)": [[7, "RNS.Destination.set_default_app_data"]], "set_delivery_callback() (rns.packetreceipt method)": [[7, "RNS.PacketReceipt.set_delivery_callback"]], "set_link_closed_callback() (rns.link method)": [[7, "RNS.Link.set_link_closed_callback"]], "set_link_established_callback() (rns.destination method)": [[7, "RNS.Destination.set_link_established_callback"]], "set_packet_callback() (rns.destination method)": [[7, "RNS.Destination.set_packet_callback"]], "set_packet_callback() (rns.link method)": [[7, "RNS.Link.set_packet_callback"]], "set_proof_requested_callback() (rns.destination method)": [[7, "RNS.Destination.set_proof_requested_callback"]], "set_proof_strategy() (rns.destination method)": [[7, "RNS.Destination.set_proof_strategy"]], "set_ratchet_interval() (rns.destination method)": [[7, "RNS.Destination.set_ratchet_interval"]], "set_remote_identified_callback() (rns.link method)": [[7, "RNS.Link.set_remote_identified_callback"]], "set_resource_callback() (rns.link method)": [[7, "RNS.Link.set_resource_callback"]], "set_resource_concluded_callback() (rns.link method)": [[7, "RNS.Link.set_resource_concluded_callback"]], "set_resource_started_callback() (rns.link method)": [[7, "RNS.Link.set_resource_started_callback"]], "set_resource_strategy() (rns.link method)": [[7, "RNS.Link.set_resource_strategy"]], "set_retained_ratchets() (rns.destination method)": [[7, "RNS.Destination.set_retained_ratchets"]], "set_timeout() (rns.packetreceipt method)": [[7, "RNS.PacketReceipt.set_timeout"]], "set_timeout_callback() (rns.packetreceipt method)": [[7, "RNS.PacketReceipt.set_timeout_callback"]], "should_use_implicit_proof() (rns.reticulum static method)": [[7, "RNS.Reticulum.should_use_implicit_proof"]], "sign() (rns.destination method)": [[7, "RNS.Destination.sign"]], "sign() (rns.identity method)": [[7, "RNS.Identity.sign"]], "teardown() (rns.link method)": [[7, "RNS.Link.teardown"]], "to_file() (rns.identity method)": [[7, "RNS.Identity.to_file"]], "track_phy_stats() (rns.link method)": [[7, "RNS.Link.track_phy_stats"]], "transport_enabled() (rns.reticulum static method)": [[7, "RNS.Reticulum.transport_enabled"]], "truncated_hash() (rns.identity static method)": [[7, "RNS.Identity.truncated_hash"]], "unpack() (rns.messagebase method)": [[7, "RNS.MessageBase.unpack"]], "validate() (rns.identity method)": [[7, "RNS.Identity.validate"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["examples", "forhumans", "gettingstartedfast", "hardware", "index", "interfaces", "networks", "reference", "support", "understanding", "using", "whatis"], "filenames": ["examples.rst", "forhumans.rst", "gettingstartedfast.rst", "hardware.rst", "index.rst", "interfaces.rst", "networks.rst", "reference.rst", "support.rst", "understanding.rst", "using.rst", "whatis.rst"], "titles": ["Code Examples", "An Explanation of Reticulum for Human Beings", "Getting Started Fast", "Communications Hardware", "Reticulum Network Stack Manual", "Configuring Interfaces", "Building Networks", "API Reference", "Support Reticulum", "Understanding Reticulum", "Using Reticulum on Your System", "What is Reticulum?"], "terms": {"A": [0, 2, 5, 6, 7, 9, 10, 11], "number": [0, 2, 5, 6, 7, 9, 10], "ar": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11], "includ": [0, 3, 4, 5, 7, 9, 11], "sourc": [0, 2, 3, 6, 9, 11], "distribut": [0, 2, 6, 7, 9, 10], "reticulum": [0, 5, 6, 7], "you": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], "can": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10], "us": [0, 3, 4, 5, 6, 7, 9], "learn": [0, 2, 8, 9], "how": [0, 2, 3, 5, 6, 9, 10, 11], "write": [0, 2, 5, 7, 9, 10], "your": [0, 2, 3, 4, 5, 6, 8, 9, 11], "own": [0, 2, 6, 7, 9, 10, 11], "program": [0, 3, 4, 5, 7, 9, 11], "The": [0, 2, 3, 4, 5, 6, 7, 11], "demonstr": [0, 5], "bare": [0, 5], "minimum": [0, 5, 6, 7, 9], "setup": [0, 2, 4, 5, 10], "requir": [0, 2, 5, 6, 7, 9, 10, 11], "connect": [0, 3, 4, 5, 6, 7, 9, 10, 11], "network": [0, 3, 5, 7, 9, 10, 11], "from": [0, 2, 3, 5, 6, 7, 9, 10, 11], "In": [0, 2, 3, 5, 6, 7, 9, 10, 11], "about": [0, 2, 3, 5, 6, 7, 9], "five": 0, "line": [0, 2, 4, 5, 6, 9, 10, 11], "have": [0, 2, 3, 5, 6, 7, 9, 10], "stack": [0, 2, 6, 7, 9, 10, 11], "initialis": [0, 7, 10], "readi": [0, 2, 3, 5, 6, 7, 11], "pass": [0, 3, 5, 6, 7, 9, 10], "traffic": [0, 2, 5, 6, 7, 9, 10], "thi": [0, 2, 3, 4, 5, 6, 7, 9, 10, 11], "rn": [0, 2, 3, 7, 9, 10], "start": [0, 3, 4, 5, 7, 9, 10], "up": [0, 2, 3, 5, 6, 7, 9, 10, 11], "gener": [0, 2, 3, 5, 6, 7, 9, 10, 11], "new": [0, 4, 6, 7, 9, 10], "destin": [0, 2, 4, 6, 7, 10], "let": [0, 2, 5, 6, 9, 10], "user": [0, 2, 5, 6, 9, 10, 11], "send": [0, 5, 7, 9, 10], "an": [0, 2, 3, 5, 6, 7, 9, 10, 11], "import": [0, 2, 3, 5, 6, 7, 8, 9], "argpars": 0, "": [0, 2, 5, 6, 9, 10, 11], "defin": [0, 5, 7, 9, 10], "app": [0, 2, 7, 9], "name": [0, 4, 5, 6, 7], "we": [0, 2, 3, 5, 8, 9], "ll": [0, 2, 11], "all": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], "creat": [0, 4, 5, 6, 7, 9, 10, 11], "sinc": [0, 2, 5, 6, 7, 9], "basic": [0, 2, 4, 7, 10], "i": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10], "part": [0, 5, 6, 7, 9, 10], "rang": [0, 2, 3, 5, 6, 9, 10, 11], "util": [0, 3, 4, 5, 9], "put": [0, 3, 5, 10], "them": [0, 2, 3, 5, 6, 8, 9, 10, 11], "within": [0, 2, 5, 6, 7, 9], "namespac": 0, "example_util": 0, "app_nam": [0, 7], "execut": [0, 2, 5, 7, 10], "when": [0, 2, 3, 5, 6, 7, 9, 10], "def": 0, "program_setup": 0, "configpath": 0, "must": [0, 2, 5, 6, 7, 9, 10], "first": [0, 2, 5, 7, 9, 10], "randomli": [0, 9], "ident": [0, 2, 4, 7, 10, 11], "our": [0, 9], "just": [0, 2, 3, 5, 6, 9, 11], "endpoint": [0, 6, 7, 9], "address": [0, 2, 5, 6, 7, 9, 10, 11], "commun": [0, 2, 4, 5, 6, 7, 8, 9, 10, 11], "also": [0, 2, 3, 4, 5, 6, 7, 9, 10, 11], "exist": [0, 2, 3, 5, 9, 10, 11], "which": [0, 2, 5, 6, 7, 9, 10], "know": [0, 2, 3, 6, 7, 9, 11], "thei": [0, 2, 5, 6, 7, 9, 10], "reachabl": [0, 2, 5, 6, 7, 9, 10], "automat": [0, 2, 3, 5, 6, 7, 9, 10, 11], "path": [0, 2, 3, 5, 7, 9, 10], "anywher": [0, 5], "els": [0, 2, 6, 9], "IN": [0, 7], "singl": [0, 5, 7, 9, 10, 11], "minimalsampl": 0, "configur": [0, 2, 3, 4, 6, 7, 9, 11], "prove": [0, 9], "packet": [0, 2, 4, 5, 6, 7, 10, 11], "By": [0, 2, 5, 7, 9, 10], "do": [0, 2, 3, 5, 7, 9, 10, 11], "proof": [0, 7, 9, 10], "each": [0, 2, 5, 6, 7, 9, 10], "incom": [0, 5, 7, 10], "transmit": [0, 5, 9], "back": [0, 5, 9, 11], "sender": [0, 2, 6, 9, 10], "anyon": [0, 2, 3, 5, 6, 7, 9, 10], "tri": 0, "whether": [0, 5, 7, 9], "wa": [0, 3, 5, 6, 7, 9, 10, 11], "receiv": [0, 2, 5, 7, 9, 10], "correctli": 0, "set_proof_strategi": [0, 7], "prove_al": [0, 7], "everyth": [0, 6, 9], "hand": 0, "over": [0, 3, 4, 5, 7, 9, 10, 11], "control": [0, 2, 3, 4, 6, 7, 9, 11], "loop": 0, "announceloop": 0, "log": [0, 5, 10], "prettyhexrep": 0, "hash": [0, 2, 7, 9, 10], "run": [0, 2, 3, 5, 6, 7, 9, 10, 11], "hit": 0, "enter": [0, 10], "manual": [0, 2, 5, 6, 7, 10], "ctrl": 0, "c": [0, 6, 10], "quit": 0, "until": [0, 2, 5, 7], "exit": [0, 2, 7, 10], "If": [0, 2, 3, 5, 6, 7, 9, 10, 11], "server": [0, 2, 3, 4, 7, 10], "client": [0, 2, 3, 4, 7, 10], "messag": [0, 2, 7, 9, 10], "direct": [0, 2, 3, 6, 7, 9, 10], "toward": [0, 5, 9], "while": [0, 2, 3, 5, 6, 7, 9, 11], "true": [0, 2, 5, 7, 10], "input": [0, 10], "sent": [0, 2, 7, 9, 10], "startup": [0, 10], "get": [0, 3, 4, 5, 7, 10, 11], "pars": 0, "desir": [0, 3, 5, 9], "mode": [0, 2, 3, 4, 9, 10, 11], "__name__": 0, "__main__": 0, "try": [0, 4, 5, 7], "parser": 0, "argumentpars": 0, "descript": [0, 10], "add_argu": 0, "config": [0, 2, 5, 6, 10], "action": 0, "store": [0, 3, 7, 9, 10], "default": [0, 2, 3, 5, 6, 7, 9, 10], "none": [0, 2, 5, 7, 9, 10], "help": [0, 6, 8, 9, 10, 11], "altern": [0, 2, 5, 10], "directori": [0, 10], "type": [0, 2, 4, 5, 6, 7, 10], "str": 0, "arg": 0, "parse_arg": 0, "configarg": 0, "except": [0, 5, 7], "keyboardinterrupt": 0, "print": [0, 5, 10], "found": [0, 2, 5, 6, 9, 10], "http": [0, 2, 8], "github": [0, 2, 8], "com": [0, 2, 8], "markqvist": [0, 2, 8], "blob": [0, 9], "master": [0, 7], "py": [0, 2, 9, 10], "build": [0, 2, 3, 4, 5, 9, 11], "upon": [0, 9], "previou": 0, "explor": [0, 9, 11], "notif": [0, 7], "relev": [0, 3, 5, 7, 9, 10], "set": [0, 2, 3, 5, 6, 7, 9, 10, 11], "callback": [0, 7], "applic": [0, 2, 5, 6, 7, 9, 10, 11], "arriv": [0, 9], "random": [0, 7, 9], "two": [0, 2, 3, 5, 6, 7, 9], "list": [0, 2, 3, 5, 7, 9, 11], "string": [0, 7], "app_data": [0, 7], "fruit": 0, "peach": 0, "quinc": 0, "date": [0, 2], "tangerin": 0, "pomelo": 0, "carambola": 0, "grape": 0, "noble_gas": 0, "helium": 0, "neon": 0, "argon": 0, "krypton": 0, "xenon": 0, "radon": 0, "oganesson": 0, "announcesampl": 0, "space": [0, 2, 3, 6, 9, 11], "destination_1": 0, "destination_2": 0, "handler": [0, 7], "onli": [0, 2, 3, 5, 6, 7, 9, 10, 11], "ask": [0, 2, 3, 7], "chang": [0, 2, 5, 7, 9, 10, 11], "filter": [0, 6, 9, 10], "see": [0, 2, 5, 6, 7, 9, 10, 11], "what": [0, 2, 4, 5, 7, 9], "happen": [0, 2, 7, 9], "announce_handl": 0, "exampleannouncehandl": 0, "aspect_filt": [0, 7], "regist": [0, 7], "transport": [0, 2, 4, 5, 6, 7, 10, 11], "register_announce_handl": [0, 7], "select": [0, 5], "randint": 0, "0": [0, 2, 5, 7, 9, 10, 11], "len": 0, "1": [0, 2, 5, 7, 9, 10], "data": [0, 2, 3, 4, 5, 6, 7, 9, 11], "encod": [0, 7], "utf": 0, "8": [0, 5, 10], "nobl": 0, "ga": 0, "noble_ga": 0, "need": [0, 2, 3, 4, 5, 6, 7, 9, 10, 11], "class": [0, 6, 7, 11], "method": [0, 2, 5, 7, 9], "take": [0, 2, 5, 9, 10, 11], "option": [0, 2, 3, 4, 6, 7, 9, 10], "argument": [0, 7, 10], "instanc": [0, 4, 5, 7, 9, 10], "some": [0, 2, 3, 5, 6, 7, 9, 10], "want": [0, 2, 5, 6, 9, 10, 11], "aspect": [0, 3, 5, 7, 9, 10], "__init__": [0, 7], "self": [0, 6, 11], "call": [0, 2, 6, 7, 9, 11], "system": [0, 2, 3, 4, 5, 6, 7, 8, 9, 11], "match": [0, 5, 9, 10], "specif": [0, 3, 4, 5, 7, 10, 11], "cannot": [0, 2, 5, 11], "wildcard": 0, "received_announc": [0, 7], "destination_hash": [0, 7, 10], "announced_ident": [0, 7], "contain": [0, 6, 7, 9, 10], "follow": [0, 2, 3, 5, 7, 8, 9, 10, 11], "decod": 0, "plaintext": [0, 7], "unencrypt": [0, 7, 9], "inform": [0, 2, 4, 5, 6, 7, 9, 10], "ani": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11], "listen": [0, 5, 9, 10], "sy": 0, "did": 0, "one": [0, 2, 3, 5, 6, 7, 9, 10, 11], "public_inform": 0, "ad": [0, 3, 4, 5, 6, 7, 9, 11], "so": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11], "differ": [0, 2, 3, 5, 6, 7, 9, 10, 11], "plain": [0, 3, 5, 7, 9], "uncencrypt": 0, "broadcast_destin": 0, "specifi": [0, 2, 3, 5, 6, 7, 10], "everi": [0, 5, 6, 7, 9], "time": [0, 2, 3, 5, 6, 7, 9, 10], "set_packet_callback": [0, 7], "packet_callback": 0, "main": 0, "broadcastloop": 0, "simpli": [0, 2, 3, 5, 6, 9, 10], "out": [0, 2, 3, 5, 6, 7, 9, 10, 11], "r": [0, 5, 9, 10], "n": [0, 9, 10], "end": [0, 5, 6, 7, 9, 11], "stdout": [0, 5, 10], "flush": 0, "text": [0, 2, 6, 9], "prompt": 0, "channelarg": 0, "between": [0, 5, 6, 7, 9, 10], "interfac": [0, 3, 4, 6, 7, 10], "simpl": [0, 3, 7, 9, 10, 11], "respond": [0, 7, 10], "receipt": [0, 7, 9], "choos": [0, 2, 5, 9], "global": [0, 2, 5, 6, 7, 9, 11], "server_ident": 0, "queri": [0, 2, 7, 10], "abl": [0, 2, 5, 6, 7, 9, 10], "verifi": [0, 7, 9, 10, 11], "repli": [0, 10], "encrypt": [0, 2, 6, 7, 9, 10, 11], "wai": [0, 2, 5, 6, 7, 9, 10], "certain": [0, 5, 6, 8, 9], "than": [0, 2, 5, 6, 7, 9, 10, 11], "read": [0, 2, 5, 7, 9, 10], "echo_destin": 0, "tell": [0, 5], "function": [0, 2, 3, 4, 5, 6, 7, 8, 10, 11], "server_callback": 0, "wait": [0, 5, 9, 10], "go": [0, 2, 5, 9], "handl": [0, 3, 5, 6, 7, 9, 10, 11], "reception_stat": 0, "is_connected_to_shared_inst": 0, "reception_rssi": 0, "get_packet_rssi": 0, "packet_hash": 0, "reception_snr": 0, "get_packet_snr": 0, "rssi": [0, 7, 10], "dbm": [0, 5, 10], "snr": [0, 7, 10], "db": [0, 10], "destination_hexhash": 0, "timeout": [0, 7, 10], "binari": [0, 2, 7, 9, 10], "represent": [0, 7], "command": [0, 2, 5, 10], "dest_len": 0, "truncated_hashlength": [0, 7], "2": [0, 5, 7, 9, 10], "rais": [0, 7], "valueerror": [0, 7], "length": [0, 5, 7, 9], "invalid": [0, 7], "hex": [0, 10], "hexadecim": [0, 9, 10], "charact": 0, "byte": [0, 7, 9, 10, 11], "format": [0, 4, 10, 11], "fromhex": 0, "e": [0, 6, 10], "check": [0, 2, 7, 9, 10], "overrid": 0, "loglevel": [0, 7, 10], "provid": [0, 2, 3, 4, 5, 6, 7, 9, 11], "feedback": [0, 4], "log_info": 0, "doe": [0, 2, 3, 4, 5, 6, 7, 9, 10], "load": [0, 2, 7, 10], "has_path": [0, 7], "To": [0, 2, 3, 5, 6, 9, 10, 11], "public": [0, 4, 5, 7, 10], "kei": [0, 4, 6, 7, 10, 11], "done": [0, 2, 5, 6, 9, 10], "recal": [0, 7, 10], "modul": [0, 2, 3, 9, 10, 11], "known": [0, 5, 7, 9, 10], "return": [0, 7, 10], "outgo": [0, 5, 7, 9, 10], "got": 0, "correct": [0, 9], "convent": 0, "request_destin": 0, "add": [0, 2, 5, 6, 7, 10], "echo_request": 0, "get_random_hash": [0, 7], "successfulli": [0, 7, 9], "packetreceipt": [0, 4, 7], "packet_receipt": [0, 7], "set_timeout": [0, 7], "set_timeout_callback": [0, 7], "packet_timed_out": 0, "deliveri": [0, 2, 7, 11], "set_delivery_callback": [0, 7], "packet_deliv": 0, "yet": [0, 5, 9, 11], "retri": [0, 7, 9], "onc": [0, 2, 3, 5, 6, 7, 9, 10, 11], "request_path": [0, 7], "statu": [0, 2, 4, 5, 7, 9, 10], "deliv": [0, 7], "rtt": [0, 7, 9], "get_rtt": [0, 7], "round": [0, 7, 10], "3": [0, 5, 9, 10, 11], "rttstring": 0, "second": [0, 5, 7, 9, 10, 11], "1000": 0, "millisecond": [0, 10], "proof_packet": 0, "valid": [0, 5, 7, 9, 10], "trip": [0, 7, 10], "fail": [0, 2, 7], "store_tru": 0, "t": [0, 2, 5, 6, 7, 10], "metavar": 0, "float": [0, 7], "narg": 0, "timeoutarg": 0, "print_help": 0, "establish": [0, 2, 5, 6, 7, 11], "remot": [0, 4, 7], "forth": 0, "o": [0, 2, 9, 10, 11], "refer": [0, 2, 4], "latest": [0, 2, 5, 7, 10], "latest_client_link": 0, "server_destin": 0, "linkexampl": 0, "set_link_established_callback": [0, 7], "client_connect": 0, "server_loop": 0, "set_link_closed_callback": [0, 7], "client_disconnect": 0, "server_packet_receiv": 0, "disconnect": [0, 5], "activ": [0, 2, 5, 7, 9], "last": [0, 5, 7], "reply_text": 0, "reply_data": 0, "server_link": 0, "sleep": [0, 10], "begin": [0, 3, 7], "And": 0, "client_packet_receiv": 0, "close": [0, 6, 7, 10], "link_establish": 0, "link_clos": 0, "interact": [0, 2, 7, 9, 10], "client_loop": 0, "becom": [0, 2, 6, 9], "should_quit": 0, "fals": [0, 5, 7, 10], "should": [0, 2, 5, 6, 7, 9, 10, 11], "q": [0, 10], "teardown": [0, 7], "mdu": [0, 7], "size": [0, 2, 5, 7, 9, 10], "exce": [0, 5, 7], "log_error": 0, "error": [0, 2, 8, 10], "ha": [0, 2, 3, 5, 6, 7, 9, 11], "been": [0, 2, 3, 5, 6, 7, 9, 11], "later": [0, 2, 5, 10], "teardown_reason": 0, "now": [0, 2, 6, 9, 10], "elif": 0, "destination_clos": 0, "exit_handl": 0, "5": [0, 2, 5, 7, 9, 10, 11], "_exit": 0, "identifi": [0, 5, 7, 9, 10], "intiat": 0, "initi": [0, 6, 7, 9, 11], "peer": [0, 2, 5, 7, 9, 10], "identifyexampl": 0, "set_remote_identified_callback": [0, 7], "remote_identifi": 0, "origin": [0, 6, 9], "displai": [0, 9, 10], "remote_p": 0, "unidentifi": 0, "get_remote_ident": [0, 7], "client_ident": 0, "sendig": 0, "perform": [0, 2, 5, 6, 7, 9, 10], "random_text_gener": 0, "request_id": [0, 7], "link_id": [0, 7], "remote_ident": [0, 7], "requested_at": [0, 7], "look": [0, 2, 5, 9, 10], "On": [0, 2, 5, 10], "full": [0, 5, 7, 9, 10, 11], "moon": 0, "becki": 0, "upset": 0, "stai": [0, 9, 10], "awai": [0, 5, 6, 9, 10], "pet": 0, "shop": 0, "stock": 0, "requestexampl": 0, "register_request_handl": [0, 7], "response_gener": [0, 7], "allow": [0, 2, 3, 5, 6, 7, 9, 10, 11], "allow_al": [0, 7], "response_callback": [0, 7], "got_respons": 0, "failed_callback": [0, 7], "request_fail": 0, "request_receipt": [0, 7], "request_receiv": 0, "structur": [0, 7, 9, 11], "datetim": 0, "vendor": [0, 3, 11], "umsgpack": 0, "share": [0, 2, 6, 7, 9, 10], "object": [0, 7], "subclass": [0, 7], "messagebas": [0, 4, 7], "ensur": [0, 5, 7, 9, 10, 11], "serial": [0, 2, 4, 9, 11], "deseri": 0, "multiplex": 0, "other": [0, 2, 3, 5, 6, 7, 9, 10], "both": [0, 2, 3, 5, 6, 7, 9, 10, 11], "same": [0, 2, 3, 5, 6, 7, 9, 10], "definit": [0, 9], "note": [0, 3, 4, 5, 7, 9, 10], "wish": [0, 9, 10], "make": [0, 2, 3, 5, 8, 9, 10], "stringmessag": 0, "convei": 0, "timestamp": [0, 9, 11], "msgtype": [0, 7], "variabl": [0, 7], "assign": [0, 9, 10], "integ": 0, "valu": [0, 5, 7, 9], "constructor": 0, "uniqu": [0, 5, 7, 9, 11], "across": [0, 3, 6, 7], "0xf000": [0, 7], "reserv": [0, 7], "0x0101": 0, "callabl": [0, 7], "paramet": [0, 3, 5, 6, 7, 9, 10], "empti": 0, "version": [0, 2, 9, 10, 11], "unpack": [0, 7], "final": [0, 7, 9], "implement": [0, 5, 6, 7, 8, 9, 11], "pack": [0, 7], "raw": [0, 3, 7], "payload": [0, 7, 9, 10], "packag": [0, 2, 5, 9], "bundl": 0, "could": [0, 2, 5, 6, 7, 9, 11], "struct": 0, "python": [0, 4, 7, 9, 10, 11], "more": [0, 2, 3, 5, 6, 7, 9, 10, 11], "fit": 0, "entir": [0, 6, 7, 9, 10], "avail": [0, 2, 3, 4, 5, 6, 7, 9, 10, 11], "properti": [0, 6, 7], "slightli": [0, 2], "less": [0, 5, 7, 9, 11], "due": [0, 6], "header": [0, 7, 9], "content": [0, 2, 6, 10], "stream": [0, 7, 9], "packb": 0, "unpackb": 0, "channelexampl": 0, "get_channel": [0, 7], "register_message_typ": [0, 7], "add_message_handl": [0, 7], "server_message_receiv": 0, "param": 0, "deserializ": 0, "unless": [0, 2, 5, 7, 9], "preced": 0, "indic": [0, 7], "isinst": 0, "reply_messag": 0, "order": [0, 7, 10], "were": [0, 6], "consid": [0, 5, 7, 9, 11], "subsequ": [0, 9], "skip": 0, "packed_s": 0, "is_ready_to_send": [0, 7], "pleas": [0, 2, 5, 7, 10, 11], "pend": 0, "complet": [0, 2, 3, 5, 6, 7, 9, 10, 11], "client_message_receiv": 0, "reader": [0, 7], "writer": [0, 7], "__future__": 0, "annot": 0, "latest_buff": 0, "bufferexampl": 0, "old": [0, 3, 8, 9], "stream_id": [0, 7], "bit": [0, 2, 5, 7, 9, 10, 11], "like": [0, 2, 3, 5, 6, 7, 9, 10, 11], "file": [0, 2, 3, 5, 6, 7, 9, 10, 11], "descriptor": 0, "actual": [0, 2, 5, 9], "separ": [0, 2, 5, 6, 9, 10], "unidirect": 0, "flow": [0, 5, 6], "opposit": [0, 5], "create_bidirectional_buff": [0, 7], "server_buffer_readi": 0, "ready_byt": [0, 7], "int": [0, 7], "otherwis": [0, 7], "forc": [0, 10], "server_client_connect": 0, "detail": [0, 2, 4, 5, 7, 10, 11], "client_buffer_readi": 0, "termin": [0, 2, 7], "download": [0, 5, 10], "resourc": [0, 2, 4, 7, 8], "effici": [0, 2, 5, 9, 11], "serv": [0, 3, 5, 6, 9, 10], "larg": [0, 3, 5, 6, 7, 9, 11], "transfer": [0, 7, 9, 10, 11], "recommend": [0, 2, 9], "compress": [0, 7, 9], "hashmap": 0, "sequenc": [0, 7, 9, 11], "long": [0, 2, 3, 5, 7, 9], "slow": [0, 5, 9], "cpu": [0, 9], "probabl": [0, 2, 6, 9, 10, 11], "result": [0, 9, 10], "befor": [0, 2, 5, 7, 9, 10], "prepar": [0, 6], "instead": [0, 2, 5, 7, 9, 10], "slice": 0, "chunk": 0, "suitabl": [0, 2, 5, 6, 9, 11], "thread": 0, "app_timeout": 0, "45": [0, 9], "serve_path": 0, "here": [0, 2, 5, 9, 10], "conveni": 0, "list_fil": 0, "entri": [0, 2, 9], "listdir": 0, "isfil": 0, "join": [0, 2, 6, 8, 9], "host": [0, 2, 5, 9, 10], "still": [0, 2, 5, 6, 9, 10], "isdir": 0, "list_packet": 0, "list_receipt": 0, "list_deliv": 0, "list_timeout": 0, "too": [0, 6], "mani": [0, 2, 3, 5, 6, 7, 9, 10, 11], "split": 0, "filelist": 0, "multipl": [0, 5, 6, 9, 10], "hint": 0, "alreadi": [0, 2, 3, 6, 7, 9, 10], "support": [0, 2, 4, 5, 6, 7, 9, 10, 11], "after": [0, 2, 5, 6, 7, 9, 10], "re": [0, 5, 7, 9], "keep": [0, 6, 7, 9, 10, 11], "open": [0, 3, 5, 6, 7, 8, 9, 10, 11], "client_request": 0, "longer": [0, 2, 6, 9, 10], "filenam": 0, "rb": 0, "file_resourc": 0, "resource_sending_conclud": 0, "somethign": 0, "went": 0, "wrong": [0, 5], "don": [0, 2, 6, 7, 10], "unknown": [0, 5, 7, 9, 10], "conclud": [0, 7], "hasattr": 0, "server_fil": 0, "current": [0, 2, 4, 5, 7, 9], "current_download": 0, "current_filenam": 0, "statist": [0, 5, 7, 8], "download_start": 0, "download_finish": 0, "download_tim": 0, "transfer_s": 0, "file_s": 0, "expect": [0, 2, 5, 7, 9, 10], "normal": [0, 2, 5, 7, 10], "accordingli": 0, "filelist_receiv": 0, "advertis": [0, 7], "set_resource_strategi": [0, 7], "accept_al": [0, 7], "set_resource_started_callback": [0, 7], "download_began": 0, "set_resource_concluded_callback": [0, 7], "download_conclud": 0, "menu": 0, "menu_mod": 0, "down": [0, 3, 5, 7], "request_packet": 0, "create_receipt": [0, 7], "print_menu": 0, "25": [0, 4, 11], "user_input": 0, "screen": 0, "variou": [0, 2, 5, 6, 9, 10, 11], "state": 0, "It": [0, 2, 3, 5, 7, 9, 10, 11], "uninterest": 0, "won": 0, "clear_screen": 0, "print_filelist": 0, "percent": [0, 5], "get_progress": [0, 7], "100": [0, 5, 9], "rprogress": 0, "save_error": 0, "disk": [0, 7], "hour": [0, 5], "rem": 0, "divmod": 0, "3600": [0, 5], "minut": [0, 2, 5, 9], "60": [0, 5], "timestr": 0, "05": 0, "2f": 0, "ttime": 0, "taken": [0, 9], "tfile": 0, "size_str": 0, "tdata": 0, "teffect": 0, "rate": [0, 4, 7, 10], "suffix": 0, "b": [0, 6, 10], "ttransfer": 0, "press": 0, "index": [0, 2, 4], "enumer": 0, "filelist_data": 0, "extend": [0, 2, 7], "local": [0, 2, 5, 6, 7, 9, 10, 11], "append": [0, 9], "visibl": 0, "updat": [0, 2, 7, 9, 10], "small": [0, 5, 6, 7, 9, 11], "job": 0, "potenti": [0, 5, 8, 9, 10, 11], "target": [0, 5, 10], "filelist_timeout_job": 0, "daemon": [0, 2, 5, 7, 10], "detect": 0, "shown": 0, "progress": [0, 7, 10, 11], "total_s": 0, "saved_filenam": 0, "counter": 0, "wb": 0, "human": [0, 7, 8, 9], "readabl": [0, 7, 9], "num": 0, "unit": [0, 2, 7, 10], "ki": 0, "mi": 0, "gi": 0, "ti": [0, 9], "pi": [0, 4, 6, 9, 10, 11], "ei": 0, "zi": 0, "last_unit": 0, "yi": 0, "k": [0, 10], "m": [0, 2, 9, 10], "g": [0, 10], "p": [0, 10], "z": 0, "y": 0, "ab": 0, "1024": 0, "clear": [0, 5, 7, 9, 10], "cl": 0, "nt": 0, "dir": 0, "best": [2, 9, 11], "guid": [2, 3, 9], "outlin": [2, 3, 9], "sensibl": [2, 3, 5], "scenario": [2, 4, 9], "relat": 2, "easiest": [2, 3, 5, 9], "via": [2, 3, 5, 8, 9, 10, 11], "pip": [2, 3, 10], "manag": [2, 4, 6, 7, 9, 11], "sudo": [2, 10], "apt": 2, "python3": [2, 3], "pamac": 2, "similar": [2, 3, 5, 6, 7, 10, 11], "dowload": 2, "releas": [2, 5, 9], "wheel": 2, "channel": [2, 4, 5, 6, 7, 8, 9, 11], "offlin": 2, "py3": 2, "whl": 2, "mai": [2, 5, 7, 9, 10], "case": [2, 3, 5, 6, 9, 10], "usual": 2, "essenti": [2, 5, 9], "deriv": [2, 7, 9, 11], "arch": 2, "manjaro": 2, "devel": 2, "fedora": 2, "dnf": 2, "groupinstal": 2, "tool": [2, 3, 9, 10, 11], "librari": 2, "compil": 2, "miss": 2, "even": [2, 5, 6, 7, 9, 10, 11], "pre": [2, 7, 9], "built": [2, 5, 9, 10, 11], "few": [2, 3, 5, 6, 9, 10, 11], "extrem": [2, 9, 10, 11], "low": [2, 3, 5, 6, 9, 11], "bandwidth": [2, 5, 6, 7, 9, 10, 11], "These": [2, 5, 7, 9, 10], "feel": 2, "work": [2, 3, 5, 6, 9, 10, 11], "design": [2, 3, 6, 9, 11], "well": [2, 3, 5, 6, 7, 9, 10, 11], "lora": [2, 3, 4, 9, 11], "link": [2, 3, 4, 5, 6, 7, 10, 11], "wifi": [2, 4, 5, 6, 9, 10, 11], "wire": [2, 3, 4, 5, 11], "ethernet": [2, 4, 5, 6, 9, 11], "combin": [2, 4, 6, 9], "As": [2, 3, 5, 6, 7, 9, 11], "easi": [2, 3, 5, 9, 10, 11], "experi": [2, 9], "without": [2, 3, 5, 6, 9, 10, 11], "transceiv": [2, 3, 5, 9, 11], "infrastructur": [2, 3, 5, 6, 9, 10], "launch": [2, 10], "devic": [2, 4, 5, 6, 7, 9, 10], "enough": [2, 3, 9], "physic": [2, 3, 5, 7, 9, 10], "rnsh": [2, 10], "fulli": [2, 3, 9, 10, 11], "session": [2, 9], "pipe": [2, 4, 11], "ssh": 2, "veri": [2, 3, 5, 6, 7, 8, 9, 10, 11], "facilit": 2, "suit": [2, 3, 9, 10], "featur": [2, 8, 9, 11], "delai": [2, 5, 9, 10], "browser": 2, "page": [2, 4, 9], "dynam": [2, 10], "render": 2, "authent": [2, 5, 6, 7, 9, 10, 11], "face": [2, 5], "protocol": [2, 3, 4, 5, 11], "lxmf": [2, 10], "anoth": [2, 7, 9, 10], "project": 2, "nomadnet": 2, "might": [2, 5, 6, 9, 10], "reboot": 2, "again": [2, 5, 9, 10], "would": [2, 5, 6, 7, 9], "rather": [2, 7], "graphic": 2, "linux": [2, 3, 9], "maco": 2, "window": [2, 5], "peopl": [2, 9], "compat": [2, 3, 5, 7, 9], "i2p": [2, 4, 11], "qr": 2, "paper": 2, "anyth": [2, 3, 5, 9, 10, 11], "interoper": [2, 3, 6, 9, 11], "friendli": [2, 11], "voic": 2, "interest": [2, 9], "cours": [2, 5, 9], "come": [2, 9], "easier": [2, 5, 6, 10], "rnsd": [2, 4], "background": [2, 5], "foreground": 2, "servic": [2, 4, 6], "rnstatu": [2, 4, 5, 9], "rnpath": [2, 4, 5], "rnprobe": [2, 4], "view": [2, 5, 9, 10], "chapter": [2, 3, 5, 6, 7, 9, 10, 11], "locat": [2, 3, 6, 9, 10], "exampl": [2, 3, 4, 5, 7, 9, 10, 11], "exampleconfig": [2, 10], "broadcast": [2, 4, 5, 7, 9], "domain": [2, 5], "further": [2, 4, 5], "tcp": [2, 3, 4, 6, 9, 11], "There": [2, 6, 9, 11], "subnet": [2, 6], "rout": [2, 3, 5, 6, 7, 9, 10, 11], "tabl": [2, 5, 6, 9, 10], "thing": 2, "discov": [2, 5], "topographi": [2, 6, 9], "situat": [2, 3, 5, 6, 9], "where": [2, 3, 4, 5, 6, 7, 9, 10], "utilis": [2, 5, 6, 7, 10, 11], "extern": [2, 5, 7, 11], "often": [2, 5, 6, 9, 10], "suffici": [2, 5, 9, 10], "act": [2, 7, 9, 10], "gatewai": [2, 5, 6, 9], "enabl": [2, 3, 5, 6, 7, 9, 10, 11], "wider": [2, 5, 9, 10], "autointerfac": [2, 3, 5, 10], "possibli": 2, "offer": [2, 4, 5, 7, 9], "carefulli": 2, "tcpserverinterfac": [2, 5], "access": [2, 4, 5, 6, 7, 10], "ip": [2, 3, 5, 9, 10, 11], "faster": [2, 5, 9], "lower": [2, 5, 10], "latenc": [2, 9, 11], "energi": 2, "i2pinterfac": [2, 5], "howev": [2, 6, 9], "leak": 2, "reveal": [2, 7, 9, 11], "who": [2, 5, 9], "inspect": [2, 5, 6, 9, 10], "someon": [2, 5], "determin": [2, 7, 9], "adversari": 2, "record": [2, 9], "metadata": [2, 9, 11], "transmiss": [2, 5, 7, 9], "though": [2, 5, 9], "publicli": [2, 5], "most": [2, 3, 5, 6, 7, 9, 10], "anymor": 2, "through": [2, 3, 5, 6, 7, 9, 10, 11], "invis": [2, 5], "parallel": 2, "For": [2, 3, 5, 6, 7, 9, 10, 11], "alwai": [2, 5, 7, 9, 10], "node": [2, 4, 5, 6, 10, 11], "i2pd": [2, 5], "mix": [2, 5, 6, 10], "hide": 2, "relai": 2, "extra": [2, 5, 6, 10], "comput": [2, 9, 11], "power": [2, 3, 5, 9, 10], "attack": 2, "form": [2, 5, 6, 7, 9], "deep": 2, "much": [2, 5, 6, 9, 10], "difficult": [2, 3], "non": [2, 7, 9], "behind": [2, 9], "firewal": [2, 5], "nat": 2, "preserv": [2, 7], "anonym": [2, 6, 7, 9, 11], "care": [2, 7, 11], "experiment": [2, 11], "made": [2, 7, 9], "amsterdam": 2, "hub": [2, 5], "tcpclientinterfac": [2, 3, 5], "ye": [2, 5, 9, 10], "target_host": [2, 5], "target_port": [2, 5], "4965": [2, 10], "betweenthebord": 2, "4242": [2, 5], "g3br23bvx3lq5uddcsjii74xgmn6y5q325ovrkq2zw2wbzbqgbuq": 2, "b32": [2, 5], "point": [2, 3, 5, 6, 9, 10], "absolut": [2, 8, 11], "usag": [2, 4, 5, 7, 8, 10], "occasion": 2, "test": [2, 9, 10], "failur": [2, 5, 7], "guarante": [2, 9], "weird": 2, "goe": 2, "sai": 2, "hardcod": 2, "ship": 2, "practic": [2, 9, 11], "solut": [2, 9, 10], "leav": [2, 6, 9], "hardwar": [2, 4, 5, 6, 7, 9, 10, 11], "wide": [2, 3, 5, 9, 10, 11], "section": [2, 3, 5, 6, 9, 10], "easili": [2, 5, 6, 9, 10, 11], "cheapli": 2, "rnode": [2, 4, 9, 10, 11], "purpos": [2, 3, 5, 7, 9, 10], "digit": [2, 3, 9, 11], "integr": [2, 6, 9], "yourself": [2, 9, 11], "custom": [2, 5, 7, 9, 11], "firmwar": [2, 3, 9, 10], "board": [2, 4, 5, 9, 11], "auto": [2, 3, 4, 7, 9], "script": [2, 3], "prefer": [2, 9], "purchas": [2, 6, 9, 11], "supplier": 2, "addit": [2, 3, 5, 7, 9, 10, 11], "privat": [2, 5, 7, 8, 9, 10, 11], "secur": [2, 9, 11], "uncensor": 2, "mesh": [2, 5, 6, 11], "think": 2, "welcom": 2, "head": 2, "discuss": [2, 3, 9], "propos": 2, "abov": [2, 3, 5, 9, 10], "next": [2, 6, 7, 9], "step": [2, 3], "pyseri": 2, "api": [2, 4, 9, 11], "associ": [2, 7, 9], "recip": 2, "cryptographi": [2, 9, 11], "clone": 2, "repositori": [2, 8, 9], "git": 2, "move": [2, 5, 9, 10], "folder": 2, "symlink": [2, 10], "cd": 2, "ln": [2, 10], "echo": [2, 4], "ve": 2, "immedi": [2, 5, 10], "necessari": [2, 3, 5, 6, 7, 9], "nano": 2, "repeat": 2, "process": [2, 3, 5, 7, 9], "h": [2, 10], "ping": [2, 10], "replac": [2, 7, 9, 10], "below": [2, 3, 5, 10], "174a64852a75682259ad8b921b8bf416": 2, "filetransf": [2, 4, 7], "understand": [2, 4, 7, 10], "submit": 2, "pull": 2, "request": [2, 4, 5, 7, 9, 10], "good": [2, 3, 6, 9, 10], "idea": [2, 9, 10], "introduc": [2, 9], "disucss": 2, "forum": 2, "maintain": [2, 9], "place": [2, 5, 6, 9, 10], "procedur": [2, 7, 9], "quirk": 2, "worth": 2, "being": [2, 5, 7, 9], "awar": [2, 9], "termux": 2, "f": [2, 10], "droid": 2, "emul": 2, "environ": [2, 6, 9], "abil": [2, 3], "pkg": 2, "sure": [2, 3, 10], "upgrad": [2, 9], "Then": 2, "reason": [2, 5, 9], "attempt": [2, 3, 7], "openssl": [2, 9], "libffi": 2, "rust": 2, "export": 2, "cargo_build_target": 2, "aarch64": 2, "sever": [2, 6, 7, 10], "succe": 2, "softwar": [2, 3, 5, 9, 11], "possibl": [2, 3, 5, 6, 7, 9, 10, 11], "apk": 2, "tutori": 2, "code": [2, 3, 4, 5, 10], "architectur": 2, "precompil": 2, "dev": [2, 5, 10], "64": [2, 9, 10], "32": [2, 7, 9], "rasperri": 2, "os": [2, 5], "april": 2, "2023": [2, 10], "onto": [2, 9], "unfortun": 2, "pipx": 2, "isol": [2, 5, 10], "neg": 2, "affect": [2, 5], "ensurepath": 2, "restor": [2, 5], "behaviour": [2, 5, 10], "edit": [2, 10], "conf": 2, "break": [2, 7, 9, 11], "somewhat": 2, "mislead": 2, "choic": 2, "word": 2, "rare": [2, 5], "lead": [2, 9], "conflict": 2, "pose": [2, 9], "problem": [2, 9], "_could_": 2, "obscur": 2, "rnspure": 2, "No": [2, 5, 9, 10, 11], "matter": [2, 5], "perfectli": 2, "pyca": [2, 9], "cryptograph": [2, 4, 6, 10, 11], "primit": [2, 4], "One": [3, 7], "truli": [3, 9], "valuabl": [3, 8], "almost": [3, 5, 9, 10], "conceiv": 3, "kind": [3, 5, 6, 9], "medium": [3, 5, 6, 7, 9, 11], "flexibl": [3, 5, 11], "cover": [3, 9, 11], "wireless": [3, 6], "decad": 3, "modern": [3, 9], "millimet": 3, "wave": 3, "backhaul": [3, 6], "oper": [3, 5, 6, 7, 9, 10, 11], "chanc": 3, "box": 3, "glue": 3, "littl": [3, 9], "effort": 3, "pipeinterfac": [3, 5], "kiss": [3, 4, 10, 11], "simplyequip": 3, "broad": 3, "abund": 3, "sometim": 3, "especi": [3, 5], "scratch": 3, "real": [3, 6, 11], "world": [3, 6, 11], "minim": [3, 4, 9], "cost": [3, 9, 11], "fundament": [3, 9], "categori": 3, "addition": [3, 5, 9], "common": [3, 4, 6, 9, 10, 11], "briefli": [3, 9], "describ": [3, 5, 7, 9], "emploi": [3, 9], "pattern": [3, 9], "high": [3, 5, 9, 11], "capac": [3, 5, 7, 9], "gain": [3, 7, 9], "antenna": 3, "backbon": 3, "area": [3, 5, 6, 9, 11], "reliabl": [3, 5, 6, 7, 9, 11], "commonli": 3, "either": [3, 5, 6, 7, 9, 10], "expens": 3, "hard": 3, "hungri": 3, "allevi": 3, "particular": 3, "plaform": 3, "depend": [3, 4, 6, 7, 9, 10], "its": [3, 5, 7, 9], "compon": [3, 8, 9], "frequenc": [3, 5, 9, 10], "band": [3, 9], "scheme": 3, "limit": [3, 4, 6, 9], "ism": [3, 9], "avoid": [3, 9, 10], "confus": [3, 9], "layer": [3, 5, 6, 7, 9, 11], "noth": [3, 11], "lorawan": [3, 9], "standard": [3, 9], "central": [3, 6, 9], "iot": 3, "overhead": [3, 5, 9], "level": [3, 5, 9, 10], "directli": [3, 5, 7, 9, 10, 11], "replic": [3, 9], "togeth": [3, 9, 10], "exact": [3, 5, 9], "explain": [3, 7], "approach": [3, 9, 10], "develop": [3, 4, 7, 8, 9, 11], "boil": 3, "obtain": [3, 7, 9], "autom": [3, 8, 9], "provis": [3, 10], "rnodeinterfac": [3, 5, 10], "ic": 3, "semtech": 3, "sx1276": 3, "platform": [3, 4, 9, 10], "esp32": 3, "manufactur": [3, 5], "io": 3, "avr": 3, "atmega1284p": 3, "rnodeconf": [3, 4], "autoinstal": [3, 10], "seri": 3, "question": [3, 5], "port": [3, 4, 5, 6, 9, 11], "air": [3, 11], "id": [3, 5, 7, 9, 10], "itself": [3, 4, 9], "short": [3, 5, 9, 10], "bridg": [3, 4], "behav": 3, "mean": [3, 5, 6, 7, 9, 10], "dhcp": [3, 5, 10], "dn": 3, "least": [3, 5, 9, 10, 11], "transpar": [3, 5, 9, 10], "distanc": [3, 9], "ubiqu": 3, "airmax": 3, "ltu": 3, "mikrotik": 3, "exhaust": [3, 9], "rel": [3, 9, 11], "cheap": [3, 9], "co": [3, 5, 11], "concurr": [3, 9, 10], "switch": [3, 5, 9, 10], "fiber": 3, "optic": [3, 11], "virtual": [3, 5, 6, 9, 10, 11], "adapt": [3, 6], "tun": 3, "tap": 3, "serialinterfac": [3, 5], "usb": [3, 6, 9, 10], "freedv": 3, "tnc": [3, 5, 7, 10, 11], "dire": 3, "wolf": 3, "aim": [4, 9], "particip": [4, 6, 9], "pdf": 4, "epub": 4, "caveat": 4, "emptor": 4, "fast": [4, 5, 7, 9], "standalon": 4, "instal": [4, 5, 6, 9, 10, 11], "resolv": [4, 5, 10], "issu": [4, 6, 8], "base": [4, 5, 6, 7, 9, 10, 11], "shell": [4, 10], "nomad": 4, "sideband": 4, "meshchat": 4, "With": [4, 5, 6, 9, 10], "internet": [4, 5, 9, 11], "testnet": [4, 10], "radio": [4, 5, 6, 7, 9, 10, 11], "android": [4, 10], "arm64": 4, "raspberri": [4, 6, 9, 10, 11], "debian": [4, 9, 10], "bookworm": 4, "ubuntu": [4, 10], "lunar": 4, "pure": [4, 9], "rnid": 4, "rncp": 4, "rnx": 4, "improv": [4, 5, 8], "fix": [4, 9], "motiv": 4, "goal": [4, 5], "introduct": 4, "announc": [4, 7, 10], "mechan": [4, 5], "reach": [4, 5, 6], "prioritis": [4, 5, 6, 7], "propag": [4, 5, 7], "rule": [4, 5], "modem": [4, 5, 6, 7, 9, 11], "udp": [4, 6, 9, 10, 11], "multi": [4, 9, 10, 11], "ax": [4, 11], "concept": [4, 9, 10], "overview": [4, 5, 9], "interconnect": [4, 5, 9], "site": [4, 5], "growth": 4, "converg": [4, 9], "identif": [4, 5, 11], "respons": [4, 7, 9], "buffer": [4, 5, 7], "donat": 4, "contribut": 4, "requestreceipt": [4, 7], "rawchannelread": [4, 7], "rawchannelwrit": [4, 7], "search": 4, "distinct": [5, 9], "topologi": [5, 9], "endless": 5, "give": [5, 9, 10], "respect": [5, 11], "discover": 5, "autoconfigur": [5, 11], "ipv6": [5, 10], "router": [5, 10], "sort": [5, 9, 10], "communica": 5, "tion": 5, "usabl": [5, 9], "interface_en": [5, 10], "spe": 5, "cific": 5, "lan": 5, "group": [5, 7, 9], "group_id": 5, "multicast": 5, "temporari": 5, "perman": [5, 10], "multicast_address_typ": 5, "kernel": [5, 10, 11], "wlan0": 5, "eth1": 5, "Or": [5, 10, 11], "ignor": [5, 7, 9], "ones": [5, 10], "ignored_devic": 5, "tun0": 5, "eth0": 5, "autodiscov": 5, "discoveri": [5, 9, 10], "scope": 5, "admin": 5, "organis": [5, 6, 8], "custom_network_nam": 5, "discovery_scop": 5, "discovery_port": 5, "48555": 5, "data_port": 5, "49555": 5, "frequent": 5, "block": 5, "inbound": [5, 7], "portabl": [5, 9], "persist": [5, 10], "achiev": [5, 7, 9], "geti2p": 5, "net": 5, "websit": 5, "base32": 5, "comma": 5, "5urvjicpzi7q3ybztsef4i5ow2aq4soktfj7zedz53s47r54jnqq": 5, "output": [5, 10], "event": 5, "simplest": [5, 9], "tunnel": [5, 9, 11], "interchang": 5, "degre": 5, "retain": [5, 7], "eas": [5, 9], "simpler": 5, "listen_ip": 5, "listen_port": 5, "bind": 5, "10": [5, 9, 10], "88": 5, "i2p_tunnel": 5, "127": 5, "5001": 5, "dedic": [5, 9], "natur": 5, "toler": 5, "intermitt": 5, "gracefulli": 5, "reappear": 5, "hostnam": 5, "expos": [5, 7], "soundmodem": 5, "kiss_fram": 5, "8001": 5, "caution": 5, "frame": 5, "conjunct": 5, "never": [5, 7, 9], "disabl": [5, 9, 10], "intern": [5, 7, 9], "recoveri": 5, "greatli": 5, "unreli": 5, "implic": 5, "better": 5, "udpinterfac": 5, "forward_ip": 5, "255": [5, 10], "forward_port": 5, "assum": [5, 9], "55": 5, "72": 5, "24": 5, "equival": 5, "forward": [5, 7, 9, 11], "segment": [5, 6, 7, 9, 11], "15": 5, "16": [5, 9, 10], "ttyusb0": [5, 10], "867": 5, "mhz": [5, 9], "867200000": 5, "125": 5, "khz": 5, "125000": 5, "tx": [5, 10], "7": [5, 9, 10], "mw": 5, "txpower": 5, "spread": [5, 10], "factor": [5, 7, 10], "12": [5, 10], "fastest": [5, 9], "longest": 5, "spreadingfactor": 5, "throough": 5, "codingr": 5, "interv": [5, 7, 10], "id_callsign": 5, "mycal": 5, "id_interv": 5, "600": 5, "homebrew": 5, "amount": [5, 6, 7, 9, 11], "ram": 5, "flow_control": 5, "airtim": 5, "term": [5, 6, 9], "appli": [5, 7, 9], "approxim": 5, "enforc": [5, 7], "roll": 5, "airtime_limit_long": 5, "airtime_limit_short": 5, "33": 5, "sub": 5, "individu": [5, 7, 9, 11], "rnodemultiinterfac": 5, "ttyacm0": 5, "subinterfac": 5, "highdatar": 5, "themselv": 5, "4ghz": 5, "2400000000": 5, "1625": 5, "1625000": 5, "person": [5, 9], "wrote": 5, "vport": 5, "lowdatar": 5, "865": 5, "6": [5, 7, 10], "865600000": 5, "pair": [5, 7, 9, 10], "laser": 5, "baud": [5, 10], "speed": [5, 9, 10], "115200": [5, 10], "databit": [5, 10], "pariti": [5, 10], "stopbit": [5, 10], "stdin": [5, 10], "netcat": 5, "l": [5, 10], "5757": 5, "respawn": 5, "respawn_delai": 5, "continu": [5, 7, 8, 11], "scan": 5, "eof": 5, "respawn_interv": 5, "varieti": [5, 9, 10, 11], "openmodem": [5, 11], "period": [5, 7, 9], "beacon": 5, "station": 5, "kissinterfac": [5, 10], "ttyusb1": 5, "preambl": [5, 10], "150": [5, 10], "tail": 5, "txtail": [5, 10], "cdma": 5, "200": [5, 10], "slottim": [5, 10], "20": [5, 9, 10], "elaps": 5, "comment": [5, 10], "amateur": [5, 11], "spectrum": [5, 9], "encapsul": [5, 11], "callsign": 5, "ssid": 5, "realli": [5, 7], "doesn": 5, "incur": 5, "ax25kissinterfac": 5, "no1cll": 5, "ttyusb2": 5, "150m": 5, "increas": [5, 10], "squelch": 5, "rx": [5, 10], "turnaround": 5, "kept": [5, 6, 7, 9], "wast": 5, "bring": 5, "brought": [5, 10], "access_point": 5, "shorthand": [5, 10], "ap": 5, "shorter": 5, "expiri": [5, 7], "mostli": [5, 6, 9], "quiet": [5, 10], "momentarili": 5, "disappear": [5, 10], "network_nam": 5, "passphras": [5, 9], "alon": 5, "ifac_s": 5, "customis": 5, "carri": [5, 7, 9, 10], "512": [5, 7, 9], "announce_cap": [5, 7], "maximum": [5, 7, 9, 10], "alloc": [5, 7, 9, 10], "given": [5, 6, 7, 9, 10], "upkeep": 5, "cap": 5, "queue": [5, 9], "nearbi": 5, "overwhelm": [5, 7], "rapidli": 5, "spam": 5, "effect": 5, "excess": 5, "benefici": [5, 10], "balanc": 5, "necesarri": 5, "bitrat": [5, 7], "report": [5, 7, 8, 10], "guess": 5, "per": [5, 7, 9, 10, 11], "strictli": [5, 9], "complex": [5, 9], "left": [5, 7, 9, 10], "gw": 5, "behalf": 5, "resid": 5, "requestor": 5, "chain": 5, "along": [5, 6, 7, 9, 10], "boundari": 5, "remain": [5, 7, 9], "roam": 5, "mobil": [5, 9], "seen": [5, 9], "perspect": [5, 7, 9, 11], "vehicl": 5, "equip": [5, 6, 9], "side": [5, 11], "expir": 5, "significantli": 5, "impact": [5, 7, 9], "announce_rate_target": 5, "announce_rate_grac": 5, "announce_rate_penalti": 5, "basi": [5, 7, 9, 10, 11], "moder": 5, "violat": 5, "penalti": 5, "7200": 5, "annouce_cap": 5, "mention": [5, 9], "strategi": [5, 7], "decis": [5, 9], "slower": [5, 7, 9], "hop": [5, 6, 7, 9, 10, 11], "right": [5, 6], "tend": 5, "conserv": 5, "span": [5, 9], "seamlessli": 5, "influx": 5, "newli": [5, 6, 7, 9], "previous": [5, 6, 7, 9], "occur": [5, 10, 11], "hold": [5, 7, 9], "interrupt": 5, "burst": 5, "subsid": 5, "held": [5, 10], "decid": [5, 6, 7, 9], "bogu": 5, "retransmit": [5, 9], "ingress": 5, "disrupt": 5, "neccessari": 5, "modifi": [5, 9, 10, 11], "ingress_control": 5, "ic_new_tim": 5, "spawn": 5, "ic_burst_freq_new": 5, "ic_burst_freq": 5, "temporarili": 5, "ic_max_held_announc": 5, "drop": [5, 7, 9, 10], "256": [5, 7, 9, 10], "ic_burst_hold": 5, "threshold": 5, "ic_burst_penalti": 5, "ic_held_release_interv": 5, "30": [5, 7, 10], "knowledg": [6, 9], "tradit": [6, 9], "worri": 6, "coordin": [6, 7, 9, 11], "evolv": 6, "futur": [6, 9], "mind": [6, 11], "autonom": [6, 9], "terminologi": [6, 9], "rest": [6, 11], "billion": [6, 9], "larger": [6, 9, 10], "higher": [6, 11], "discrimin": 6, "ephemer": [6, 7, 9, 11], "ellipt": [6, 7, 9, 11], "curv": [6, 7, 9, 11], "diffi": [6, 9, 11], "hellman": [6, 9, 11], "exchang": [6, 7, 9, 11], "curve25519": [6, 7, 9, 11], "throttl": 6, "thu": [6, 7, 9], "agnost": [6, 9], "equal": [6, 7, 9], "keystor": 6, "degrad": 6, "stationari": [6, 10], "candid": 6, "optim": 6, "intend": [6, 9], "trustless": [6, 9, 11], "free": [6, 8, 11], "unorganis": 6, "manner": 6, "far": [6, 9], "unexplor": 6, "dissolv": 6, "organ": 6, "restrict": [6, 10], "legaci": 6, "unifi": 6, "underli": [6, 11], "carrier": [6, 11], "involv": 6, "hardlin": 6, "illustr": [6, 9], "plan": [6, 9], "member": 6, "mainli": 6, "three": [6, 9], "hill": 6, "top": [6, 9], "chosen": [6, 9], "sight": 6, "becaus": [6, 9], "four": 6, "At": [6, 9], "cabl": 6, "suppli": [6, 7, 9], "grow": 6, "core": [6, 9, 10, 11], "those": [6, 9], "d": [6, 10], "island": 6, "investig": 6, "dori": 6, "willing": 6, "she": 6, "her": 6, "home": [6, 10], "everyon": [6, 9], "vice": [6, 11], "versa": [6, 11], "vhf": [6, 9, 11], "outli": 6, "geograph": 6, "coverag": 6, "dai": [6, 7], "find": [6, 9], "poorli": 6, "outlier": 6, "signatur": [7, 9, 10, 11], "configdir": 7, "logdest": 7, "verbos": [7, 10], "exactli": [7, 9], "independ": [7, 9, 11], "inter": 7, "soon": 7, "kill": [7, 9], "forcibli": [7, 10], "advantag": 7, "demand": 7, "mtu": [7, 9, 11], "500": [7, 9, 11], "adher": 7, "prerequisit": 7, "percentag": 7, "schedul": 7, "queu": [7, 10], "fewer": 7, "distant": 7, "smaller": 7, "eventu": 7, "alter": [7, 9], "minimum_bitr": 7, "static": 7, "get_inst": 7, "should_use_implicit_proof": 7, "explicit": 7, "implicit": [7, 9], "transport_en": 7, "remote_management_en": 7, "create_kei": 7, "decrypt": [7, 9, 10], "verif": [7, 9, 10], "sign": [7, 9, 10], "dh": 7, "keysiz": 7, "x": [7, 9, 10], "25519": 7, "concaten": 7, "ratchets": 7, "ratchet": [7, 9], "ratchet_expiri": 7, "2592000": 7, "recent": [7, 9], "rememb": [7, 9], "discard": [7, 9], "newer": [7, 9], "meantim": 7, "128": [7, 9, 11], "constant": 7, "truncat": [7, 9, 10], "recall_app_data": 7, "heard": [7, 9], "full_hash": 7, "sha": [7, 9], "truncated_hash": 7, "current_ratchet_id": 7, "from_byt": 7, "prv_byte": 7, "save": [7, 9], "hazard": 7, "feed": 7, "from_fil": 7, "to_fil": 7, "Be": [7, 10], "get_private_kei": 7, "get_public_kei": 7, "load_private_kei": 7, "load_public_kei": 7, "pub_byt": 7, "ciphertext": 7, "token": [7, 9], "keyerror": 7, "ciphertext_token": 7, "enforce_ratchet": 7, "ratchet_id_receiv": 7, "presenc": 7, "ingo": 7, "zero": [7, 11], "ratchet_count": 7, "ratchet_interv": 7, "1800": 7, "rotat": [7, 9], "expand_nam": 7, "app_and_aspects_from_nam": 7, "full_nam": [7, 10], "tupl": 7, "hash_from_name_and_ident": 7, "adress": [7, 9], "path_respons": 7, "attached_interfac": 7, "tag": 7, "flag": [7, 9], "accepts_link": 7, "accept": [7, 8, 9, 10], "set_proof_requested_callback": 7, "proof_strategi": 7, "prove_non": 7, "prove_app": 7, "proof_requested_callback": 7, "allow_non": 7, "allowed_list": 7, "whatev": [7, 9], "funcion": 7, "allow_list": 7, "deregister_request_handl": 7, "deregist": 7, "enable_ratchet": 7, "ratchets_path": 7, "secreci": [7, 9, 11], "outsid": [7, 11], "succeed": 7, "set_retained_ratchet": 7, "retained_ratchet": 7, "set_ratchet_interv": 7, "symmetr": [7, 9], "typeerror": 7, "incompat": [7, 9], "set_default_app_data": 7, "clear_default_app_data": 7, "ae": [7, 9, 11], "instanti": 7, "encrypted_mdu": 7, "383": 7, "plain_mdu": 7, "464": 7, "resend": 7, "get_statu": 7, "cull": 7, "successful": 7, "proven": [7, 9], "established_callback": 7, "closed_callback": 7, "establishment_timeout_per_hop": 7, "keepalive_timeout_factor": 7, "4": [7, 9, 10], "calcul": [7, 9, 10], "stale_grac": 7, "grace": 7, "keepal": [7, 9], "360": 7, "aliv": [7, 9], "stale_tim": 7, "720": 7, "mark": [7, 9], "stale": 7, "torn": 7, "progress_callback": 7, "info": [7, 9, 10], "track_phy_stat": 7, "track": 7, "retriev": 7, "stat": [7, 10], "qualiti": 7, "get_rssi": 7, "signal": [7, 9], "strength": [7, 11], "get_snr": 7, "nois": 7, "ratio": 7, "get_q": 7, "get_establishment_r": 7, "ocur": 7, "get_ag": 7, "no_inbound_for": 7, "no_outbound_for": 7, "outbound": [7, 9], "no_data_for": 7, "travers": [7, 9], "exclud": [7, 9], "inactive_for": 7, "purg": 7, "set_resource_callback": 7, "get_transfer_s": 7, "get_data_s": 7, "get_part": 7, "is_compress": 7, "begun": 7, "resource_strategi": 7, "accept_non": 7, "accept_app": 7, "resource_callback": 7, "unsupport": 7, "get_request_id": 7, "get_respons": 7, "get_response_tim": 7, "auto_compress": 7, "arbitrari": [7, 9, 10, 11], "checksum": [7, 11], "Will": 7, "whenev": [7, 9], "cancel": 7, "total": [7, 9, 11], "get_seg": 7, "divid": 7, "get_hash": 7, "bi": [7, 9], "neither": [7, 9], "constrain": 7, "message_class": 7, "recept": 7, "messagecallbacktyp": 7, "bool": 7, "stop": [7, 11], "remove_message_handl": 7, "remov": [7, 10], "envelop": 7, "thrown": 7, "consum": 7, "adjust": 7, "accommod": [7, 9], "abstract": [7, 9], "greater": [7, 9, 11], "popul": 7, "bufferedread": 7, "bufferedwrit": 7, "bufferedrwpair": 7, "create_read": 7, "ready_callback": 7, "document": [7, 9], "create_writ": 7, "receive_stream_id": 7, "send_stream_id": 7, "rawiobas": 7, "add_ready_callback": 7, "cb": [7, 9], "remove_ready_callback": 7, "pathfinder_m": 7, "attribut": 7, "receive_path_respons": 7, "live": 7, "deregister_announce_handl": 7, "hops_to": 7, "next_hop": 7, "next_hop_interfac": 7, "on_interfac": 7, "recurs": 7, "gratefulli": 8, "monero": 8, "84fpy1qbxhcgdseepynmhthcrgmx4nffbytz2gkytoqhvvhjp8eaw1z1eedrnkd19b3b8nilcgvxzkv17ummmeescrpya5w": 8, "ethereum": 8, "0x81f7b979fea6134ba9fd5c701b3501a2e61e897a": 8, "bitcoin": 8, "3cpmacgm34qyvr6xwlvejmi2ane3pzquuq": 8, "ko": 8, "fi": 8, "roadmap": 8, "realiti": 8, "quickli": [8, 9, 11], "sponsor": [8, 11], "dysfunct": 8, "analyt": 8, "telemetri": 8, "collect": 8, "under": [8, 10, 11], "circumst": [8, 9], "reli": [8, 9], "fashion": 8, "u": [8, 9, 10], "suggest": 8, "overal": 9, "principl": [9, 11], "author": 9, "That": 9, "said": 9, "pretti": 9, "sentiment": 9, "philosophi": 9, "seek": 9, "solv": 9, "primari": 9, "lack": 9, "my": 9, "belief": 9, "highli": 9, "machin": 9, "censorship": [9, 11], "barrier": 9, "todai": 9, "centralis": 9, "trust": [9, 10], "approv": 9, "gatekeep": 9, "inevit": 9, "govern": 9, "censor": 9, "persecut": 9, "unwant": 9, "actor": 9, "imposs": 9, "freeli": 9, "deploi": 9, "enhanc": 9, "agenc": 9, "freedom": 9, "permissionless": 9, "pick": 9, "ghz": 9, "off": [9, 10, 11], "shelf": [9, 11], "ultim": 9, "vast": 9, "myriad": 9, "thousand": 9, "surveil": 9, "disassoci": 9, "oversight": 9, "beings": 9, "useabl": 9, "critic": [9, 10], "agnostic": 9, "shall": 9, "handheld": 9, "strong": 9, "oneself": 9, "unlicens": 9, "licens": 9, "condit": [9, 11], "pmr": 9, "written": 9, "programm": 9, "orient": 9, "multipoint": 9, "recipi": 9, "singular": 9, "_represented_": 9, "characterist": 9, "13425ec15b621c1d928589718000d814": 9, "trade": 9, "simultan": 9, "unlik": 9, "nears": 9, "congest": 9, "galact": 9, "scale": [9, 11], "obvious": 9, "ridicul": 9, "asymmetr": [9, 10, 11], "special": [9, 10], "ecdh": [9, 11], "creator": 9, "correspond": 9, "possess": 9, "although": [9, 11], "capabl": 9, "dot": [9, 10], "notat": [9, 10], "repres": 9, "plenti": 9, "environment": 9, "monitor": 9, "measur": 9, "environmentlogg": 9, "remotesensor": 9, "temperatur": 9, "4faf1b2e0a077e6a9d92fa051f256038": 9, "advis": 9, "expand": 9, "recap": 9, "indirectli": 9, "ledger": 9, "therefor": [9, 11], "messeng": 9, "nicknam": 9, "ed25519": [9, 11], "reconstruct": 9, "notic": [9, 10], "piec": 9, "intention": 9, "infer": 9, "throughout": 9, "accord": 9, "around": 9, "topic": 9, "necessarili": 9, "entiti": 9, "robot": 9, "sensor": 9, "someth": 9, "agent": 9, "manipul": [9, 11], "multilater": 9, "creation": [9, 11], "great": 9, "suffic": 9, "cluster": 9, "hear": 9, "But": 9, "lot": 9, "surviv": 9, "overcom": 9, "challeng": 9, "closer": 9, "distinguish": 9, "contend": 9, "enable_transport": [9, 10], "randomis": 9, "prioriti": 9, "invers": 9, "proport": 9, "count": 9, "insert": 9, "closest": 9, "newest": 9, "contact": 9, "shortest": 9, "predict": 9, "constantli": 9, "earlier": 9, "opt": 9, "against": 9, "bidirect": 9, "ten": 9, "advanc": 9, "confirm": [9, 11], "insid": 9, "intermediari": 9, "moment": [9, 11], "methodologi": [9, 10], "answer": [9, 10], "malici": 9, "pretend": 9, "recreat": 9, "memori": 9, "thereaft": 9, "297": [9, 11], "neglig": 9, "1200": 9, "96": 9, "x25519": [9, 11], "keypair": 9, "simplic": 9, "explan": [9, 10], "lki": 9, "laid": 9, "had": 9, "construct": [9, 11], "lkr": 9, "chose": 9, "direction": 9, "unequivoc": 9, "retransmiss": 9, "reassembl": 9, "programmat": 9, "satisfi": 9, "half": [9, 11], "duplex": [9, 11], "averag": 9, "throughput": [9, 11], "runtim": 9, "consist": 9, "whereupon": 9, "stabl": [9, 11], "stage": 9, "year": 9, "microcontrol": 9, "430": 9, "868": 9, "900": 9, "mac": 9, "tailor": 9, "treat": 9, "regard": 9, "preshar": 9, "ifac": [9, 10], "compos": 9, "field": 9, "context": 9, "465": 9, "vari": [9, 10], "unset": 9, "00": [9, 10], "01": 9, "11": 9, "_______": 9, "________________": 9, "________": 9, "______": 9, "__": 9, "_": 9, "01010000": 9, "00000100": 9, "hash1": 9, "hash2": 9, "header_2": 9, "00000000": 9, "00000111": 9, "header_1": 9, "10000000": 9, "51": 9, "167": 9, "83": [9, 10], "115": 9, "99": 9, "conceptu": 9, "hkdf": 9, "fernet": [9, 11], "cbc": [9, 11], "hmac": [9, 11], "hashlib": 9, "pkcs7": [9, 11], "pad": [9, 11], "trivial": [9, 11], "consequ": 9, "backend": 9, "loss": 9, "scrutini": 9, "review": [9, 11], "risk": 9, "driver": [10, 11], "privileg": 10, "light": 10, "weight": 10, "etc": 10, "boot": 10, "ie": 10, "breviti": 10, "socket": 10, "turn": 10, "share_inst": 10, "shared_instance_port": 10, "37428": 10, "instance_control_port": 10, "37429": 10, "rpc": 10, "rpc_kei": 10, "e5c032d3ec4e64a6aca9927ba8ab73336780f6d71790": 10, "panic": 10, "unrecover": 10, "panic_on_interface_error": 10, "probe": 10, "respond_to_prob": 10, "warn": 10, "debug": 10, "unus": 10, "teach": 10, "task": 10, "08": 10, "18": 10, "17": 10, "59": 10, "56": 10, "v": 10, "show": 10, "ifconfig": 10, "gbp": 10, "13": 10, "kb": 10, "86": 10, "mbp": 10, "63": 10, "23": 10, "80": 10, "tcpinterfac": 10, "dublin": 10, "187": 10, "27": 10, "74": 10, "uhf": [10, 11], "kbp": 10, "e702c42ba8": 10, "49": 10, "9": 10, "5245a8efe1788c6a1cd36144a270e13b": 10, "j": 10, "w": 10, "posit": 10, "arx": 10, "atx": 10, "revers": 10, "json": 10, "new_ident": 10, "984b74a3f768bef236af4371e6f248cd": 10, "new_id": 10, "0f4259fef4521ab75a3409e353fe9073eb10783b4912a6a9937c57bf44a62c1": 10, "hidden": 10, "8dd57a738226809646089335a6b03695": 10, "my_fil": 10, "txt": 10, "bc7291552be7a58f361522990465165c": 10, "rfe": 10, "fetch": 10, "30602def3b3506a28ed33db6f60cc6c9": 10, "2b489d06eaf7c543808c76a5332a447d": 10, "my_ident": 10, "2225fdeecaf6e2db4556c3c2d7637294": 10, "decreas": 10, "overwrit": 10, "c89b4da064bf66d280f0e4d8abfd9806": 10, "f53a1c4278e0726bb73fcc623d6ce763": 10, "max": 10, "rnstransport": 10, "2d03725b327348980d570f739a3a5708": 10, "38": 10, "469": 10, "781": 10, "e7536ee90bd4a440e130490b87a25124": 10, "809": 10, "73": 10, "1726dbad538775b5bf9b0ea25a4079c8": 10, "c50cc4e4f7838b6c31f60ab9032cbc62": 10, "allowed_ident": 10, "copi": 10, "tgz": 10, "73cbd378bb0286ed11a707c13447bb1": 10, "allowed_hash": 10, "silent": 10, "jail": 10, "auth": 10, "941bed5e228775e5a8079fc38b1ccf3f": 10, "1b03013c25f1c2ca068a4f080b844a10": 10, "7a55144adf826958a9529a3bcf08b149": 10, "cat": 10, "proc": 10, "cpuinfo": 10, "pseudo": 10, "stderr": 10, "noauth": 10, "noid": 10, "mirror": 10, "fw": 10, "url": 10, "nocheck": 10, "flash": 10, "baud_flash": 10, "addr": 10, "freq": 10, "hz": 10, "bw": 10, "txp": 10, "sf": 10, "cr": 10, "eeprom": 10, "backup": 10, "dump": 10, "wipe": 10, "hexbyt": 10, "firmware_hash": 10, "product": 10, "model": 10, "hwrev": 10, "revis": 10, "attach": 10, "older": 10, "onlin": 10, "extract": 10, "cach": 10, "921600": 10, "bluetooth": 10, "intens": 10, "ff": 10, "consol": 10, "unlock": 10, "bootstrap": 10, "rom": 10, "enable_remote_manag": 10, "remote_management_allow": 10, "9fb6d773498fb3feda407ed8ef2c3229": 10, "2d882c5586e548d79b5af27bca1776dc": 10, "administr": 10, "ftdi_ft230x_basic_uart_43891ckm": 10, "if00": 10, "port0": 10, "plug": 10, "unplug": 10, "systemd": 10, "usr": 10, "bin": 10, "execstartpr": 10, "restart": 10, "restartsec": 10, "usernameher": 10, "execstart": 10, "wantedbi": 10, "systemctl": 10, "whole": 10, "regular": 10, "rns_bin_dir": 10, "eg": 10, "reload": 10, "loginctl": 10, "linger": 10, "readili": 11, "advers": 11, "unforg": 11, "acknowledg": 11, "empow": 11, "autonomi": 11, "sovereignti": 11, "subject": 11, "planetari": 11, "hierarch": 11, "beaureucrat": 11, "resili": 11, "userland": 11, "beta": 11, "bug": 11, "warrant": 11, "sha256": 11, "iv": 11, "urandom": 11, "intuit": 11, "44": 11, "gigabyt": 11, "scalabl": 11, "hoc": 11, "transform": 11, "fact": 11, "generalis": 11, "fibr": 11, "popular": 11, "ideal": 11, "stdio": 11, "hack": 11, "foremost": 11, "audit": 11, "privaci": 11, "thorough": 11, "research": 11, "touch": 11}, "objects": {"RNS": [[7, 0, 1, "", "Buffer"], [7, 0, 1, "", "Destination"], [7, 0, 1, "", "Identity"], [7, 0, 1, "", "Link"], [7, 0, 1, "", "MessageBase"], [7, 0, 1, "", "Packet"], [7, 0, 1, "", "PacketReceipt"], [7, 0, 1, "", "RawChannelReader"], [7, 0, 1, "", "RawChannelWriter"], [7, 0, 1, "", "RequestReceipt"], [7, 0, 1, "", "Resource"], [7, 0, 1, "", "Reticulum"], [7, 0, 1, "", "Transport"]], "RNS.Buffer": [[7, 1, 1, "", "create_bidirectional_buffer"], [7, 1, 1, "", "create_reader"], [7, 1, 1, "", "create_writer"]], "RNS.Channel": [[7, 0, 1, "", "Channel"]], "RNS.Channel.Channel": [[7, 2, 1, "", "MDU"], [7, 1, 1, "", "add_message_handler"], [7, 1, 1, "", "is_ready_to_send"], [7, 1, 1, "", "register_message_type"], [7, 1, 1, "", "remove_message_handler"], [7, 1, 1, "", "send"]], "RNS.Destination": [[7, 3, 1, "", "RATCHET_COUNT"], [7, 3, 1, "", "RATCHET_INTERVAL"], [7, 1, 1, "", "accepts_links"], [7, 1, 1, "", "announce"], [7, 1, 1, "", "app_and_aspects_from_name"], [7, 1, 1, "", "clear_default_app_data"], [7, 1, 1, "", "create_keys"], [7, 1, 1, "", "decrypt"], [7, 1, 1, "", "deregister_request_handler"], [7, 1, 1, "", "enable_ratchets"], [7, 1, 1, "", "encrypt"], [7, 1, 1, "", "enforce_ratchets"], [7, 1, 1, "", "expand_name"], [7, 1, 1, "", "get_private_key"], [7, 1, 1, "", "hash"], [7, 1, 1, "", "hash_from_name_and_identity"], [7, 1, 1, "", "load_private_key"], [7, 1, 1, "", "register_request_handler"], [7, 1, 1, "", "set_default_app_data"], [7, 1, 1, "", "set_link_established_callback"], [7, 1, 1, "", "set_packet_callback"], [7, 1, 1, "", "set_proof_requested_callback"], [7, 1, 1, "", "set_proof_strategy"], [7, 1, 1, "", "set_ratchet_interval"], [7, 1, 1, "", "set_retained_ratchets"], [7, 1, 1, "", "sign"]], "RNS.Identity": [[7, 3, 1, "", "CURVE"], [7, 3, 1, "", "KEYSIZE"], [7, 3, 1, "", "RATCHETSIZE"], [7, 3, 1, "", "RATCHET_EXPIRY"], [7, 3, 1, "", "TRUNCATED_HASHLENGTH"], [7, 1, 1, "", "current_ratchet_id"], [7, 1, 1, "", "decrypt"], [7, 1, 1, "", "encrypt"], [7, 1, 1, "", "from_bytes"], [7, 1, 1, "", "from_file"], [7, 1, 1, "", "full_hash"], [7, 1, 1, "", "get_private_key"], [7, 1, 1, "", "get_public_key"], [7, 1, 1, "", "get_random_hash"], [7, 1, 1, "", "load_private_key"], [7, 1, 1, "", "load_public_key"], [7, 1, 1, "", "recall"], [7, 1, 1, "", "recall_app_data"], [7, 1, 1, "", "sign"], [7, 1, 1, "", "to_file"], [7, 1, 1, "", "truncated_hash"], [7, 1, 1, "", "validate"]], "RNS.Link": [[7, 3, 1, "", "CURVE"], [7, 3, 1, "", "ESTABLISHMENT_TIMEOUT_PER_HOP"], [7, 3, 1, "", "KEEPALIVE"], [7, 3, 1, "", "KEEPALIVE_TIMEOUT_FACTOR"], [7, 3, 1, "", "STALE_GRACE"], [7, 3, 1, "", "STALE_TIME"], [7, 1, 1, "", "get_age"], [7, 1, 1, "", "get_channel"], [7, 1, 1, "", "get_establishment_rate"], [7, 1, 1, "", "get_q"], [7, 1, 1, "", "get_remote_identity"], [7, 1, 1, "", "get_rssi"], [7, 1, 1, "", "get_snr"], [7, 1, 1, "", "identify"], [7, 1, 1, "", "inactive_for"], [7, 1, 1, "", "no_data_for"], [7, 1, 1, "", "no_inbound_for"], [7, 1, 1, "", "no_outbound_for"], [7, 1, 1, "", "request"], [7, 1, 1, "", "set_link_closed_callback"], [7, 1, 1, "", "set_packet_callback"], [7, 1, 1, "", "set_remote_identified_callback"], [7, 1, 1, "", "set_resource_callback"], [7, 1, 1, "", "set_resource_concluded_callback"], [7, 1, 1, "", "set_resource_started_callback"], [7, 1, 1, "", "set_resource_strategy"], [7, 1, 1, "", "teardown"], [7, 1, 1, "", "track_phy_stats"]], "RNS.MessageBase": [[7, 3, 1, "", "MSGTYPE"], [7, 1, 1, "", "pack"], [7, 1, 1, "", "unpack"]], "RNS.Packet": [[7, 3, 1, "", "ENCRYPTED_MDU"], [7, 3, 1, "", "PLAIN_MDU"], [7, 1, 1, "", "resend"], [7, 1, 1, "", "send"]], "RNS.PacketReceipt": [[7, 1, 1, "", "get_rtt"], [7, 1, 1, "", "get_status"], [7, 1, 1, "", "set_delivery_callback"], [7, 1, 1, "", "set_timeout"], [7, 1, 1, "", "set_timeout_callback"]], "RNS.RawChannelReader": [[7, 1, 1, "", "__init__"], [7, 1, 1, "", "add_ready_callback"], [7, 1, 1, "", "remove_ready_callback"]], "RNS.RawChannelWriter": [[7, 1, 1, "", "__init__"]], "RNS.RequestReceipt": [[7, 1, 1, "", "concluded"], [7, 1, 1, "", "get_progress"], [7, 1, 1, "", "get_request_id"], [7, 1, 1, "", "get_response"], [7, 1, 1, "", "get_response_time"], [7, 1, 1, "", "get_status"]], "RNS.Resource": [[7, 1, 1, "", "advertise"], [7, 1, 1, "", "cancel"], [7, 1, 1, "", "get_data_size"], [7, 1, 1, "", "get_hash"], [7, 1, 1, "", "get_parts"], [7, 1, 1, "", "get_progress"], [7, 1, 1, "", "get_segments"], [7, 1, 1, "", "get_transfer_size"], [7, 1, 1, "", "is_compressed"]], "RNS.Reticulum": [[7, 3, 1, "", "ANNOUNCE_CAP"], [7, 3, 1, "", "MINIMUM_BITRATE"], [7, 3, 1, "", "MTU"], [7, 1, 1, "", "get_instance"], [7, 1, 1, "", "remote_management_enabled"], [7, 1, 1, "", "should_use_implicit_proof"], [7, 1, 1, "", "transport_enabled"]], "RNS.Transport": [[7, 3, 1, "", "PATHFINDER_M"], [7, 1, 1, "", "deregister_announce_handler"], [7, 1, 1, "", "has_path"], [7, 1, 1, "", "hops_to"], [7, 1, 1, "", "next_hop"], [7, 1, 1, "", "next_hop_interface"], [7, 1, 1, "", "register_announce_handler"], [7, 1, 1, "", "request_path"]]}, "objtypes": {"0": "py:class", "1": "py:method", "2": "py:property", "3": "py:attribute"}, "objnames": {"0": ["py", "class", "Python class"], "1": ["py", "method", "Python method"], "2": ["py", "property", "Python property"], "3": ["py", "attribute", "Python attribute"]}, "titleterms": {"code": [0, 8, 9], "exampl": [0, 6], "minim": 0, "announc": [0, 5, 9], "broadcast": 0, "echo": 0, "link": [0, 9], "identif": 0, "request": 0, "respons": 0, "channel": 0, "buffer": 0, "filetransf": 0, "an": 1, "explan": 1, "reticulum": [1, 2, 3, 4, 8, 9, 10, 11], "human": 1, "Beings": 1, "get": [2, 9], "start": 2, "fast": 2, "standalon": 2, "instal": [2, 3], "resolv": 2, "depend": 2, "issu": 2, "try": 2, "us": [2, 10, 11], "base": [2, 3], "program": [2, 10], "remot": [2, 10], "shell": 2, "nomad": 2, "network": [2, 4, 6], "sideband": 2, "meshchat": 2, "includ": [2, 10], "util": [2, 10], "creat": [2, 3], "With": 2, "connect": 2, "instanc": 2, "over": [2, 6], "internet": [2, 6], "public": [2, 9], "testnet": 2, "ad": 2, "radio": [2, 3], "interfac": [2, 5, 9, 11], "develop": 2, "particip": 2, "platform": 2, "specif": [2, 9], "note": 2, "android": 2, "arm64": 2, "raspberri": 2, "pi": 2, "debian": 2, "bookworm": 2, "ubuntu": 2, "lunar": 2, "pure": 2, "python": 2, "commun": 3, "hardwar": 3, "combin": 3, "type": [3, 9, 11], "rnode": [3, 5], "support": [3, 8], "board": 3, "lilygo": 3, "lora32": 3, "v2": 3, "1": 3, "0": 3, "t": 3, "beam": 3, "heltec": 3, "unsign": 3, "x": 3, "v1": 3, "usag": 3, "wifi": 3, "ethernet": 3, "serial": [3, 5, 10], "line": 3, "devic": [3, 11], "packet": [3, 9], "modem": 3, "stack": 4, "manual": 4, "tabl": 4, "Of": 4, "content": 4, "indic": 4, "configur": [5, 10], "auto": 5, "i2p": 5, "tcp": 5, "server": 5, "client": 5, "udp": 5, "lora": [5, 6], "multi": 5, "pipe": 5, "kiss": 5, "ax": 5, "25": 5, "common": 5, "option": 5, "mode": 5, "rate": 5, "control": 5, "new": 5, "destin": [5, 9], "limit": 5, "build": 6, "concept": 6, "overview": 6, "scenario": 6, "interconnect": 6, "site": 6, "bridg": 6, "growth": 6, "converg": 6, "api": 7, "refer": [7, 9], "donat": 8, "provid": 8, "feedback": 8, "contribut": 8, "understand": 9, "motiv": 9, "goal": 9, "introduct": 9, "basic": 9, "function": 9, "name": [9, 10], "kei": 9, "ident": 9, "further": 9, "transport": 9, "node": 9, "The": [9, 10], "mechan": 9, "detail": 9, "reach": 9, "establish": 9, "resourc": 9, "setup": 9, "protocol": 9, "prioritis": 9, "access": 9, "wire": 9, "format": 9, "propag": 9, "rule": 9, "cryptograph": 9, "primit": 9, "your": 10, "system": 10, "data": 10, "rnsd": 10, "rnstatu": 10, "rnid": 10, "rnpath": 10, "rnprobe": 10, "rncp": 10, "rnx": 10, "rnodeconf": 10, "manag": 10, "improv": 10, "fix": 10, "port": 10, "servic": 10, "systemwid": 10, "userspac": 10, "what": 11, "i": 11, "current": 11, "statu": 11, "doe": 11, "offer": 11, "where": 11, "can": 11, "caveat": 11, "emptor": 11}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "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": 57}, "alltitles": {"Code Examples": [[0, "code-examples"]], "Minimal": [[0, "minimal"]], "Announce": [[0, "announce"]], "Broadcast": [[0, "broadcast"]], "Echo": [[0, "echo"]], "Link": [[0, "link"]], "Identification": [[0, "example-identify"]], "Requests & Responses": [[0, "requests-responses"]], "Channel": [[0, "channel"]], "Buffer": [[0, "buffer"]], "Filetransfer": [[0, "filetransfer"]], "An Explanation of Reticulum for Human Beings": [[1, "an-explanation-of-reticulum-for-human-beings"]], "Getting Started Fast": [[2, "getting-started-fast"]], "Standalone Reticulum Installation": [[2, "standalone-reticulum-installation"]], "Resolving Dependency & Installation Issues": [[2, "resolving-dependency-installation-issues"]], "Try Using a Reticulum-based Program": [[2, "try-using-a-reticulum-based-program"]], "Remote Shell": [[2, "remote-shell"]], "Nomad Network": [[2, "nomad-network"]], "Sideband": [[2, "sideband"]], "MeshChat": [[2, "meshchat"]], "Using the Included Utilities": [[2, "using-the-included-utilities"]], "Creating a Network With Reticulum": [[2, "creating-a-network-with-reticulum"]], "Connecting Reticulum Instances Over the Internet": [[2, "connecting-reticulum-instances-over-the-internet"]], "Connect to the Public Testnet": [[2, "connect-to-the-public-testnet"]], "Adding Radio Interfaces": [[2, "adding-radio-interfaces"]], "Develop a Program with Reticulum": [[2, "develop-a-program-with-reticulum"]], "Participate in Reticulum Development": [[2, "participate-in-reticulum-development"]], "Platform-Specific Install Notes": [[2, "platform-specific-install-notes"]], "Android": [[2, "android"]], "ARM64": [[2, "arm64"]], "Raspberry Pi": [[2, "raspberry-pi"]], "Debian Bookworm": [[2, "debian-bookworm"]], "Ubuntu Lunar": [[2, "ubuntu-lunar"]], "Pure-Python Reticulum": [[2, "pure-python-reticulum"]], "Communications Hardware": [[3, "communications-hardware"]], "Combining Hardware Types": [[3, "combining-hardware-types"]], "RNode": [[3, "rnode"]], "Creating RNodes": [[3, "creating-rnodes"]], "Supported Boards": [[3, "supported-boards"]], "LilyGO LoRa32 v2.1": [[3, "lilygo-lora32-v2-1"]], "LilyGO LoRa32 v2.0": [[3, "lilygo-lora32-v2-0"]], "LilyGO T-Beam": [[3, "lilygo-t-beam"]], "Heltec LoRa32 v2.0": [[3, "heltec-lora32-v2-0"]], "Unsigned RNode v2.x": [[3, "unsigned-rnode-v2-x"]], "Unsigned RNode v1.x": [[3, "unsigned-rnode-v1-x"]], "Installation": [[3, "installation"]], "Usage with Reticulum": [[3, "usage-with-reticulum"]], "WiFi-based Hardware": [[3, "wifi-based-hardware"]], "Ethernet-based Hardware": [[3, "ethernet-based-hardware"]], "Serial Lines & Devices": [[3, "serial-lines-devices"]], "Packet Radio Modems": [[3, "packet-radio-modems"]], "Reticulum Network Stack Manual": [[4, "reticulum-network-stack-manual"]], "Table Of Contents": [[4, "table-of-contents"]], "Indices and Tables": [[4, "indices-and-tables"]], "Configuring Interfaces": [[5, "configuring-interfaces"]], "Auto Interface": [[5, "auto-interface"]], "I2P Interface": [[5, "i2p-interface"]], "TCP Server Interface": [[5, "tcp-server-interface"]], "TCP Client Interface": [[5, "tcp-client-interface"]], "UDP Interface": [[5, "udp-interface"]], "RNode LoRa Interface": [[5, "rnode-lora-interface"]], "RNode Multi Interface": [[5, "rnode-multi-interface"]], "Serial Interface": [[5, "serial-interface"]], "Pipe Interface": [[5, "pipe-interface"]], "KISS Interface": [[5, "kiss-interface"]], "AX.25 KISS Interface": [[5, "ax-25-kiss-interface"]], "Common Interface Options": [[5, "common-interface-options"]], "Interface Modes": [[5, "interface-modes"]], "Announce Rate Control": [[5, "announce-rate-control"]], "New Destination Rate Limiting": [[5, "new-destination-rate-limiting"]], "Building Networks": [[6, "building-networks"]], "Concepts & Overview": [[6, "concepts-overview"]], "Example Scenarios": [[6, "example-scenarios"]], "Interconnected LoRa Sites": [[6, "interconnected-lora-sites"]], "Bridging Over the Internet": [[6, "bridging-over-the-internet"]], "Growth and Convergence": [[6, "growth-and-convergence"]], "API Reference": [[7, "api-reference"]], "Support Reticulum": [[8, "support-reticulum"]], "Donations": [[8, "donations"]], "Provide Feedback": [[8, "provide-feedback"]], "Contribute Code": [[8, "contribute-code"]], "Understanding Reticulum": [[9, "understanding-reticulum"]], "Motivation": [[9, "motivation"]], "Goals": [[9, "goals"]], "Introduction & Basic Functionality": [[9, "introduction-basic-functionality"]], "Destinations": [[9, "destinations"]], "Destination Naming": [[9, "destination-naming"]], "Public Key Announcements": [[9, "public-key-announcements"]], "Identities": [[9, "understanding-identities"]], "Getting Further": [[9, "getting-further"]], "Reticulum Transport": [[9, "reticulum-transport"]], "Node Types": [[9, "node-types"]], "The Announce Mechanism in Detail": [[9, "the-announce-mechanism-in-detail"]], "Reaching the Destination": [[9, "reaching-the-destination"]], "Link Establishment in Detail": [[9, "link-establishment-in-detail"]], "Resources": [[9, "resources"]], "Reference Setup": [[9, "reference-setup"]], "Protocol Specifics": [[9, "protocol-specifics"]], "Packet Prioritisation": [[9, "packet-prioritisation"]], "Interface Access Codes": [[9, "interface-access-codes"]], "Wire Format": [[9, "wire-format"]], "Announce Propagation Rules": [[9, "announce-propagation-rules"]], "Cryptographic Primitives": [[9, "cryptographic-primitives"]], "Using Reticulum on Your System": [[10, "using-reticulum-on-your-system"]], "Configuration & Data": [[10, "configuration-data"]], "Included Utility Programs": [[10, "included-utility-programs"]], "The rnsd Utility": [[10, "the-rnsd-utility"]], "The rnstatus Utility": [[10, "the-rnstatus-utility"]], "The rnid Utility": [[10, "the-rnid-utility"]], "The rnpath Utility": [[10, "the-rnpath-utility"]], "The rnprobe Utility": [[10, "the-rnprobe-utility"]], "The rncp Utility": [[10, "the-rncp-utility"]], "The rnx Utility": [[10, "the-rnx-utility"]], "The rnodeconf Utility": [[10, "the-rnodeconf-utility"]], "Remote Management": [[10, "remote-management"]], "Improving System Configuration": [[10, "improving-system-configuration"]], "Fixed Serial Port Names": [[10, "fixed-serial-port-names"]], "Reticulum as a System Service": [[10, "reticulum-as-a-system-service"]], "Systemwide Service": [[10, "systemwide-service"]], "Userspace Service": [[10, "userspace-service"]], "What is Reticulum?": [[11, "what-is-reticulum"]], "Current Status": [[11, "current-status"]], "What does Reticulum Offer?": [[11, "what-does-reticulum-offer"]], "Where can Reticulum be Used?": [[11, "where-can-reticulum-be-used"]], "Interface Types and Devices": [[11, "interface-types-and-devices"]], "Caveat Emptor": [[11, "caveat-emptor"]]}, "indexentries": {"announce_cap (rns.reticulum attribute)": [[7, "RNS.Reticulum.ANNOUNCE_CAP"]], "buffer (class in rns)": [[7, "RNS.Buffer"]], "curve (rns.identity attribute)": [[7, "RNS.Identity.CURVE"]], "curve (rns.link attribute)": [[7, "RNS.Link.CURVE"]], "channel (class in rns.channel)": [[7, "RNS.Channel.Channel"]], "destination (class in rns)": [[7, "RNS.Destination"]], "encrypted_mdu (rns.packet attribute)": [[7, "RNS.Packet.ENCRYPTED_MDU"]], "establishment_timeout_per_hop (rns.link attribute)": [[7, "RNS.Link.ESTABLISHMENT_TIMEOUT_PER_HOP"]], "identity (class in rns)": [[7, "RNS.Identity"]], "keepalive (rns.link attribute)": [[7, "RNS.Link.KEEPALIVE"]], "keepalive_timeout_factor (rns.link attribute)": [[7, "RNS.Link.KEEPALIVE_TIMEOUT_FACTOR"]], "keysize (rns.identity attribute)": [[7, "RNS.Identity.KEYSIZE"]], "link (class in rns)": [[7, "RNS.Link"]], "mdu (rns.channel.channel property)": [[7, "RNS.Channel.Channel.MDU"]], "minimum_bitrate (rns.reticulum attribute)": [[7, "RNS.Reticulum.MINIMUM_BITRATE"]], "msgtype (rns.messagebase attribute)": [[7, "RNS.MessageBase.MSGTYPE"]], "mtu (rns.reticulum attribute)": [[7, "RNS.Reticulum.MTU"]], "messagebase (class in rns)": [[7, "RNS.MessageBase"]], "pathfinder_m (rns.transport attribute)": [[7, "RNS.Transport.PATHFINDER_M"]], "plain_mdu (rns.packet attribute)": [[7, "RNS.Packet.PLAIN_MDU"]], "packet (class in rns)": [[7, "RNS.Packet"]], "packetreceipt (class in rns)": [[7, "RNS.PacketReceipt"]], "ratchetsize (rns.identity attribute)": [[7, "RNS.Identity.RATCHETSIZE"]], "ratchet_count (rns.destination attribute)": [[7, "RNS.Destination.RATCHET_COUNT"]], "ratchet_expiry (rns.identity attribute)": [[7, "RNS.Identity.RATCHET_EXPIRY"]], "ratchet_interval (rns.destination attribute)": [[7, "RNS.Destination.RATCHET_INTERVAL"]], "rawchannelreader (class in rns)": [[7, "RNS.RawChannelReader"]], "rawchannelwriter (class in rns)": [[7, "RNS.RawChannelWriter"]], "requestreceipt (class in rns)": [[7, "RNS.RequestReceipt"]], "resource (class in rns)": [[7, "RNS.Resource"]], "reticulum (class in rns)": [[7, "RNS.Reticulum"]], "stale_grace (rns.link attribute)": [[7, "RNS.Link.STALE_GRACE"]], "stale_time (rns.link attribute)": [[7, "RNS.Link.STALE_TIME"]], "truncated_hashlength (rns.identity attribute)": [[7, "RNS.Identity.TRUNCATED_HASHLENGTH"]], "transport (class in rns)": [[7, "RNS.Transport"]], "__init__() (rns.rawchannelreader method)": [[7, "RNS.RawChannelReader.__init__"]], "__init__() (rns.rawchannelwriter method)": [[7, "RNS.RawChannelWriter.__init__"]], "accepts_links() (rns.destination method)": [[7, "RNS.Destination.accepts_links"]], "add_message_handler() (rns.channel.channel method)": [[7, "RNS.Channel.Channel.add_message_handler"]], "add_ready_callback() (rns.rawchannelreader method)": [[7, "RNS.RawChannelReader.add_ready_callback"]], "advertise() (rns.resource method)": [[7, "RNS.Resource.advertise"]], "announce() (rns.destination method)": [[7, "RNS.Destination.announce"]], "app_and_aspects_from_name() (rns.destination static method)": [[7, "RNS.Destination.app_and_aspects_from_name"]], "cancel() (rns.resource method)": [[7, "RNS.Resource.cancel"]], "clear_default_app_data() (rns.destination method)": [[7, "RNS.Destination.clear_default_app_data"]], "concluded() (rns.requestreceipt method)": [[7, "RNS.RequestReceipt.concluded"]], "create_bidirectional_buffer() (rns.buffer static method)": [[7, "RNS.Buffer.create_bidirectional_buffer"]], "create_keys() (rns.destination method)": [[7, "RNS.Destination.create_keys"]], "create_reader() (rns.buffer static method)": [[7, "RNS.Buffer.create_reader"]], "create_writer() (rns.buffer static method)": [[7, "RNS.Buffer.create_writer"]], "current_ratchet_id() (rns.identity static method)": [[7, "RNS.Identity.current_ratchet_id"]], "decrypt() (rns.destination method)": [[7, "RNS.Destination.decrypt"]], "decrypt() (rns.identity method)": [[7, "RNS.Identity.decrypt"]], "deregister_announce_handler() (rns.transport static method)": [[7, "RNS.Transport.deregister_announce_handler"]], "deregister_request_handler() (rns.destination method)": [[7, "RNS.Destination.deregister_request_handler"]], "enable_ratchets() (rns.destination method)": [[7, "RNS.Destination.enable_ratchets"]], "encrypt() (rns.destination method)": [[7, "RNS.Destination.encrypt"]], "encrypt() (rns.identity method)": [[7, "RNS.Identity.encrypt"]], "enforce_ratchets() (rns.destination method)": [[7, "RNS.Destination.enforce_ratchets"]], "expand_name() (rns.destination static method)": [[7, "RNS.Destination.expand_name"]], "from_bytes() (rns.identity static method)": [[7, "RNS.Identity.from_bytes"]], "from_file() (rns.identity static method)": [[7, "RNS.Identity.from_file"]], "full_hash() (rns.identity static method)": [[7, "RNS.Identity.full_hash"]], "get_age() (rns.link method)": [[7, "RNS.Link.get_age"]], "get_channel() (rns.link method)": [[7, "RNS.Link.get_channel"]], "get_data_size() (rns.resource method)": [[7, "RNS.Resource.get_data_size"]], "get_establishment_rate() (rns.link method)": [[7, "RNS.Link.get_establishment_rate"]], "get_hash() (rns.resource method)": [[7, "RNS.Resource.get_hash"]], "get_instance() (rns.reticulum static method)": [[7, "RNS.Reticulum.get_instance"]], "get_parts() (rns.resource method)": [[7, "RNS.Resource.get_parts"]], "get_private_key() (rns.destination method)": [[7, "RNS.Destination.get_private_key"]], "get_private_key() (rns.identity method)": [[7, "RNS.Identity.get_private_key"]], "get_progress() (rns.requestreceipt method)": [[7, "RNS.RequestReceipt.get_progress"]], "get_progress() (rns.resource method)": [[7, "RNS.Resource.get_progress"]], "get_public_key() (rns.identity method)": [[7, "RNS.Identity.get_public_key"]], "get_q() (rns.link method)": [[7, "RNS.Link.get_q"]], "get_random_hash() (rns.identity static method)": [[7, "RNS.Identity.get_random_hash"]], "get_remote_identity() (rns.link method)": [[7, "RNS.Link.get_remote_identity"]], "get_request_id() (rns.requestreceipt method)": [[7, "RNS.RequestReceipt.get_request_id"]], "get_response() (rns.requestreceipt method)": [[7, "RNS.RequestReceipt.get_response"]], "get_response_time() (rns.requestreceipt method)": [[7, "RNS.RequestReceipt.get_response_time"]], "get_rssi() (rns.link method)": [[7, "RNS.Link.get_rssi"]], "get_rtt() (rns.packetreceipt method)": [[7, "RNS.PacketReceipt.get_rtt"]], "get_segments() (rns.resource method)": [[7, "RNS.Resource.get_segments"]], "get_snr() (rns.link method)": [[7, "RNS.Link.get_snr"]], "get_status() (rns.packetreceipt method)": [[7, "RNS.PacketReceipt.get_status"]], "get_status() (rns.requestreceipt method)": [[7, "RNS.RequestReceipt.get_status"]], "get_transfer_size() (rns.resource method)": [[7, "RNS.Resource.get_transfer_size"]], "has_path() (rns.transport static method)": [[7, "RNS.Transport.has_path"]], "hash() (rns.destination static method)": [[7, "RNS.Destination.hash"]], "hash_from_name_and_identity() (rns.destination static method)": [[7, "RNS.Destination.hash_from_name_and_identity"]], "hops_to() (rns.transport static method)": [[7, "RNS.Transport.hops_to"]], "identify() (rns.link method)": [[7, "RNS.Link.identify"]], "inactive_for() (rns.link method)": [[7, "RNS.Link.inactive_for"]], "is_compressed() (rns.resource method)": [[7, "RNS.Resource.is_compressed"]], "is_ready_to_send() (rns.channel.channel method)": [[7, "RNS.Channel.Channel.is_ready_to_send"]], "load_private_key() (rns.destination method)": [[7, "RNS.Destination.load_private_key"]], "load_private_key() (rns.identity method)": [[7, "RNS.Identity.load_private_key"]], "load_public_key() (rns.identity method)": [[7, "RNS.Identity.load_public_key"]], "next_hop() (rns.transport static method)": [[7, "RNS.Transport.next_hop"]], "next_hop_interface() (rns.transport static method)": [[7, "RNS.Transport.next_hop_interface"]], "no_data_for() (rns.link method)": [[7, "RNS.Link.no_data_for"]], "no_inbound_for() (rns.link method)": [[7, "RNS.Link.no_inbound_for"]], "no_outbound_for() (rns.link method)": [[7, "RNS.Link.no_outbound_for"]], "pack() (rns.messagebase method)": [[7, "RNS.MessageBase.pack"]], "recall() (rns.identity static method)": [[7, "RNS.Identity.recall"]], "recall_app_data() (rns.identity static method)": [[7, "RNS.Identity.recall_app_data"]], "register_announce_handler() (rns.transport static method)": [[7, "RNS.Transport.register_announce_handler"]], "register_message_type() (rns.channel.channel method)": [[7, "RNS.Channel.Channel.register_message_type"]], "register_request_handler() (rns.destination method)": [[7, "RNS.Destination.register_request_handler"]], "remote_management_enabled() (rns.reticulum static method)": [[7, "RNS.Reticulum.remote_management_enabled"]], "remove_message_handler() (rns.channel.channel method)": [[7, "RNS.Channel.Channel.remove_message_handler"]], "remove_ready_callback() (rns.rawchannelreader method)": [[7, "RNS.RawChannelReader.remove_ready_callback"]], "request() (rns.link method)": [[7, "RNS.Link.request"]], "request_path() (rns.transport static method)": [[7, "RNS.Transport.request_path"]], "resend() (rns.packet method)": [[7, "RNS.Packet.resend"]], "send() (rns.channel.channel method)": [[7, "RNS.Channel.Channel.send"]], "send() (rns.packet method)": [[7, "RNS.Packet.send"]], "set_default_app_data() (rns.destination method)": [[7, "RNS.Destination.set_default_app_data"]], "set_delivery_callback() (rns.packetreceipt method)": [[7, "RNS.PacketReceipt.set_delivery_callback"]], "set_link_closed_callback() (rns.link method)": [[7, "RNS.Link.set_link_closed_callback"]], "set_link_established_callback() (rns.destination method)": [[7, "RNS.Destination.set_link_established_callback"]], "set_packet_callback() (rns.destination method)": [[7, "RNS.Destination.set_packet_callback"]], "set_packet_callback() (rns.link method)": [[7, "RNS.Link.set_packet_callback"]], "set_proof_requested_callback() (rns.destination method)": [[7, "RNS.Destination.set_proof_requested_callback"]], "set_proof_strategy() (rns.destination method)": [[7, "RNS.Destination.set_proof_strategy"]], "set_ratchet_interval() (rns.destination method)": [[7, "RNS.Destination.set_ratchet_interval"]], "set_remote_identified_callback() (rns.link method)": [[7, "RNS.Link.set_remote_identified_callback"]], "set_resource_callback() (rns.link method)": [[7, "RNS.Link.set_resource_callback"]], "set_resource_concluded_callback() (rns.link method)": [[7, "RNS.Link.set_resource_concluded_callback"]], "set_resource_started_callback() (rns.link method)": [[7, "RNS.Link.set_resource_started_callback"]], "set_resource_strategy() (rns.link method)": [[7, "RNS.Link.set_resource_strategy"]], "set_retained_ratchets() (rns.destination method)": [[7, "RNS.Destination.set_retained_ratchets"]], "set_timeout() (rns.packetreceipt method)": [[7, "RNS.PacketReceipt.set_timeout"]], "set_timeout_callback() (rns.packetreceipt method)": [[7, "RNS.PacketReceipt.set_timeout_callback"]], "should_use_implicit_proof() (rns.reticulum static method)": [[7, "RNS.Reticulum.should_use_implicit_proof"]], "sign() (rns.destination method)": [[7, "RNS.Destination.sign"]], "sign() (rns.identity method)": [[7, "RNS.Identity.sign"]], "teardown() (rns.link method)": [[7, "RNS.Link.teardown"]], "to_file() (rns.identity method)": [[7, "RNS.Identity.to_file"]], "track_phy_stats() (rns.link method)": [[7, "RNS.Link.track_phy_stats"]], "transport_enabled() (rns.reticulum static method)": [[7, "RNS.Reticulum.transport_enabled"]], "truncated_hash() (rns.identity static method)": [[7, "RNS.Identity.truncated_hash"]], "unpack() (rns.messagebase method)": [[7, "RNS.MessageBase.unpack"]], "validate() (rns.identity method)": [[7, "RNS.Identity.validate"]]}}) \ No newline at end of file