{"id":1056,"date":"2026-07-09T11:47:41","date_gmt":"2026-07-09T19:47:41","guid":{"rendered":"https:\/\/salemdata.net\/johnpress\/?p=1056"},"modified":"2026-07-09T11:47:41","modified_gmt":"2026-07-09T19:47:41","slug":"reticulum-finding-the-definitive-source","status":"publish","type":"post","link":"https:\/\/salemdata.net\/johnpress\/?p=1056","title":{"rendered":"Reticulum: Finding The Definitive Source"},"content":{"rendered":"<div class=\"gfmr-markdown-container\"><div class=\"gfmr-markdown-source\" style=\"display: none;\">&lt;h1&gt;Where, oh where, is the current Reticulum source of truth?&lt;\/h1&gt;\n&lt;p&gt;Currently the Reticulum protocol is accepted as defined within the Python code implementation created by Mark Qvist.\u00a0 There is no formal specification\u00a0for the Reticulum protocol.\u00a0 Hence the protocol is derived from Mark&#8217;s Python source tree.\u00a0 The question I faced: where can I obtain the current high watermark of the implementation?\u00a0 Mark&#8217;s GitHub page states development is &#8220;happening elsewhere.&#8221;&lt;\/p&gt;\n&lt;img class=&quot; wp-image-1060&quot; src=&quot;https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/07\/20260709_114344_Thu.png&quot; alt=&quot;&quot; width=&quot;530&quot; height=&quot;255&quot; \/&gt; GitHub markqvist\/Reticulum Project README.md\n&lt;p&gt;As of 10:00 AM, Thursday, July 9, 2026, the source of truth among the releases varies.&lt;\/p&gt;\n&lt;h2&gt;Releases As Of 7\/8\/26&lt;\/h2&gt;\n&lt;p&gt;GitHub is 1.3.4&lt;\/p&gt;\n&lt;p&gt;&nbsp;&lt;\/p&gt;\n&lt;img class=&quot;size-full wp-image-1058&quot; src=&quot;https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/07\/20260709_103138_Thu.png&quot; alt=&quot;&quot; width=&quot;874&quot; height=&quot;557&quot; \/&gt; GitHub for project markqvist\/Reticulum\n&lt;p&gt;The PyPI [Python Package Installer] page for rns is: 1.3.7&lt;\/p&gt;\n&lt;p&gt;&nbsp;&lt;\/p&gt;\n&lt;img class=&quot;size-full wp-image-1057&quot; src=&quot;https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/07\/20260709_100829_Thu.png&quot; alt=&quot;&quot; width=&quot;621&quot; height=&quot;885&quot; \/&gt; pypi.org project page for rns\n&lt;p&gt;I use Chad Attermann&#8217;s &lt;a href=&quot;https:\/\/github.com\/attermann\/microReticulum&quot;&gt;microReticulum&lt;\/a&gt; project which is written in C++ and can be loaded onto a Lilygo T-Beam SUPREME.\u00a0 Chad&#8217;s project relies upon the GitHub release, currently at 1.3.4.\u00a0 (See https:\/\/github.com\/attermann\/microReticulum\/issues\/68 &#8220;Reticulum: Source of Truth #68&#8221;.) If I am going to make the investment of time to bring my testing harness up to the high watermark, I&#8217;d prefer I be at 1.3.7 so I can assume I do not have to keep following the high watermark.&lt;\/p&gt;\n&lt;h1&gt;Fetching the definitive source of truth&lt;\/h1&gt;\n&lt;p&gt;With ChatGPT&#8217;s help searching the varied sources, I came up with this method to fetch from Mark Qvist his current release using his rnsgit tool.\u00a0 (The riddle, of course, is knowing the correct reticulum address which can change or become inactive.\u00a0 Rather that pour through the various forums, many of which become stale, I relied on ChatGPT to search for me.) The command that finally resolved the ambiguity was:&lt;\/p&gt;\n&lt;pre&gt;rngit release rns:\/\/7649a50d84610232d1416b41d2896aff\/reticulum\/reticulum \\\r\n \u00a0fetch latest:all \\\r\n \u00a0--signer bc7291552be7a58f361522990465165c&lt;\/pre&gt;\n&lt;p&gt;&lt;em&gt;Caution&lt;\/em&gt;: the above does not create a protocol specification. It only identifies the current signed implementation release I was able to retrieve over Reticulum as of the date shown.&lt;\/p&gt;\n&lt;h3&gt;Recipe&lt;\/h3&gt;\n&lt;p&gt;1) Install a dedicated Python virtual environment for Reticulum; all command hereafter &lt;em&gt;assume you are operating within such an isolated environment&lt;\/em&gt;.&lt;\/p&gt;\n&lt;p&gt;2) Verify which version of rns you have:&lt;\/p&gt;\n&lt;pre&gt;python3 -m pip show rns \r\nName: rns \r\nVersion: 1.3.7 \r\nSummary: Self-configuring, encrypted and resilient mesh networking stack for LoRa, packet radio, WiFi and everything in between \r\nHome-page: https:\/\/reticulum.network\/ \r\nAuthor: Mark Qvist \r\nAuthor-email: mark@unsigned.io \r\nLicense: Reticulum License \r\nLocation: \/home\/jlpoole\/rnsenv\/lib\/python3.13\/site-packages \r\nRequires: cryptography, pyserial \r\nRequired-by: lxmf, lxst, nomadnet, sbapp \r\n[ rnsenv|script ] jlpoole@jp ~\/tmp\/reticulum-rngit-fetch&lt;\/pre&gt;\n&lt;p&gt;3) If your rns version does not match, I found upgrading with pip did not take me from 1.3.4 to 1.3.7; I had to remove version 1.3.4 and then install anew:&lt;\/p&gt;\n&lt;p&gt;pip install rns&lt;\/p&gt;\n&lt;img class=&quot; wp-image-1061&quot; src=&quot;https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/07\/20260709_122035_Thu.png&quot; alt=&quot;&quot; width=&quot;694&quot; height=&quot;317&quot; \/&gt; directory.rns.recipes\/\n&lt;p&gt;4) Edit your rns configuration file, ~\/.reticulum\/config,\u00a0 to point to some &lt;em&gt;active&lt;\/em&gt; rns servers.\u00a0 A list of active servers may be accessed at: https:\/\/directory.rns.recipes\/&lt;\/p&gt;\n&lt;p&gt;&nbsp;&lt;\/p&gt;\n&lt;pre&gt;[interfaces]&lt;\/pre&gt;\n&lt;pre&gt;[[RNS Sideband]]\r\ntype = TCPClientInterface\r\nenabled = yes\r\ntarget_host = sideband.connect.reticulum.network\r\ntarget_port = 7822\r\n\r\n[[Beleth RNS Hub]]\r\ntype = TCPClientInterface\r\nenabled = yes\r\ntarget_host = rns.beleth.net\r\ntarget_port = 4242\r\n\r\n[[RMAP]]\r\ntype = TCPClientInterface\r\nenabled = yes\r\ntarget_host = rmap.world\r\ntarget_port = 4242\r\n\r\n[[Nexus Backbone PH]]\r\ntype = TCPClientInterface\r\nenabled = yes\r\ntarget_host = 212.227.208.95\r\ntarget_port = 4242&lt;\/pre&gt;\n&lt;p&gt;5) Start your rns daemon in its own console (within your virtual Python environment):&lt;\/p&gt;\n&lt;pre&gt;\u00a0 \u00a0  rnsd -v&lt;\/pre&gt;\n&lt;img class=&quot;size-full wp-image-1062&quot; src=&quot;https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/07\/20260709_122234_Thu.png&quot; alt=&quot;&quot; width=&quot;898&quot; height=&quot;309&quot; \/&gt; rns daemon\n&lt;p&gt;6) In another console (within your virtual Python environment), test if you can &#8220;rnpath&#8221; (similar to ping) the address:&lt;\/p&gt;\n&lt;pre&gt;(rnsenv) jlpoole@jp ~\/tmp\/reticulum-rngit-fetch $ rnpath 7649a50d84610232d1416b41d2896aff \r\nPath found, destination &lt;7649a50d84610232d1416b41d2896aff&gt; is 5 hops away via &lt;521c87a83afb8f29e4455e77930b973b&gt; on TCPInterface[RNS Sideband\/sideband.connect.reticulum.network:7822] \r\n(rnsenv) jlpoole@jp ~\/tmp\/reticulum-rngit-fetch $ date \r\nThu Jul \u00a09 11:16:17 PDT 2026 \r\n(rnsenv) jlpoole@jp ~\/tmp\/reticulum-rngit-fetch $&lt;\/pre&gt;\n&lt;p&gt;Assuming you successfully resolved the path, you can use the tool &lt;strong&gt;rnsgit&lt;\/strong&gt;&lt;\/p&gt;\n&lt;pre&gt;rngit release rns:\/\/7649a50d84610232d1416b41d2896aff\/reticulum\/reticulum \\ \r\n\u00a0fetch latest:all \\ \r\n\u00a0--signer bc7291552be7a58f361522990465165c&lt;\/pre&gt;\n&lt;p&gt;Here&#8217;s my fetch attempt and the results:&lt;\/p&gt;\n&lt;pre&gt;(rnsenv) jlpoole@jp ~\/tmp\/reticulum-rngit-fetch $ rngit release rns:\/\/7649a50d84610232d1416b41d2896aff\/reticulum\/reticulum \\ \r\n\u00a0fetch latest:all \\ \r\n\u00a0--signer bc7291552be7a58f361522990465165c \r\nTransferring manifest.rsm: 100% (3.76 KB) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\nRelease manifest validated, signed by &lt;bc7291552be7a58f361522990465165c&gt; \r\nFetching 5 artifacts... \r\n\u00a0Transferring rns-1.3.7.tar.gz: 100% (516.65 KB) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\u00a0Transferring rns-1.3.7-py3-none-any.whl: 100% (603.49 KB) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\u00a0Transferring rnspure-1.3.7-py3-none-any.whl: 100% (603.62 KB) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\u00a0Transferring Reticulum Manual.epub: 100% (4.07 MB) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\u00a0Transferring Reticulum Manual.pdf: 100% (5.03 MB) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n(rnsenv) jlpoole@jp ~\/tmp\/reticulum-rngit-fetch $ ls -la \r\ntotal 13864 \r\ndrwxr-xr-x 2 jlpoole jlpoole \u00a0\u00a0\u00a04096 Jul \u00a09 11:17 \u00a0. \r\ndrwxr-xr-x 5 jlpoole jlpoole \u00a0\u00a0\u00a04096 Jul \u00a09 10:55 \u00a0.. \r\n-rw-r--r-- 1 jlpoole jlpoole 4072754 Jul \u00a09 11:17 &#039;Reticulum Manual.epub&#039; \r\n-rw-r--r-- 1 jlpoole jlpoole 5029143 Jul \u00a09 11:17 &#039;Reticulum Manual.pdf&#039; \r\n-rw-r--r-- 1 jlpoole jlpoole \u00a0603491 Jul \u00a09 11:16 \u00a0rns-1.3.7-py3-none-any.whl \r\n-rw-r--r-- 1 jlpoole jlpoole \u00a0516648 Jul \u00a09 11:16 \u00a0rns-1.3.7.tar.gz \r\n-rw-r--r-- 1 jlpoole jlpoole \u00a0\u00a0\u00a03763 Jul \u00a09 11:16 \u00a0rns_1.3.7.rsm \r\n-rw-r--r-- 1 jlpoole jlpoole \u00a0603624 Jul \u00a09 11:16 \u00a0rnspure-1.3.7-py3-none-any.whl \r\n(rnsenv) jlpoole@jp ~\/tmp\/reticulum-rngit-fetch $&lt;\/pre&gt;\n&lt;p&gt;Here&#8217;s what is in the rns-1.3.7.tar.gz&lt;\/p&gt;\n&lt;pre&gt;(rnsenv) jlpoole@jp ~\/tmp\/reticulum-rngit-fetch_20260709_1117 $ mkdir -p ~\/tmp\/rns-1.3.7_src_20260709_1117 \r\ntar -xzf rns-1.3.7.tar.gz -C ~\/tmp\/rns-1.3.7_src_20260709_1117 --strip-components=1 \r\ncd ~\/tmp\/rns-1.3.7_src_20260709_1117 \r\nfind . -maxdepth 2 -type f | sort | less \r\n(rnsenv) jlpoole@jp ~\/tmp\/rns-1.3.7_src_20260709_1117 $ find . -maxdepth 2 -type f | sort \u00a0\r\n.\/CRNS\/__init__.py \r\n.\/PKG-INFO \r\n.\/README.md \r\n.\/RNS\/Buffer.py \r\n.\/RNS\/Channel.py \r\n.\/RNS\/Destination.py \r\n.\/RNS\/Discovery.py \r\n.\/RNS\/Identity.py \r\n.\/RNS\/Link.py \r\n.\/RNS\/Packet.py \r\n.\/RNS\/Resolver.py \r\n.\/RNS\/Resource.py \r\n.\/RNS\/Reticulum.py \r\n.\/RNS\/Transport.py \r\n.\/RNS\/__init__.py \r\n.\/RNS\/_version.py \r\n.\/rns.egg-info\/PKG-INFO \r\n.\/rns.egg-info\/SOURCES.txt \r\n.\/rns.egg-info\/dependency_links.txt \r\n.\/rns.egg-info\/entry_points.txt \r\n.\/rns.egg-info\/requires.txt \r\n.\/rns.egg-info\/top_level.txt \r\n.\/setup.cfg \r\n.\/setup.py \r\n(rnsenv) jlpoole@jp ~\/tmp\/rns-1.3.7_src_20260709_1117 $&lt;\/pre&gt;\n&lt;h2&gt;Conclusion&lt;\/h2&gt;\n&lt;p&gt;For my purposes, the signed RNS-distributed release is the best practical source of truth. GitHub is still useful for history, issue discussion, and derivative projects, but the current implementation watermark appears to be the signed release retrievable over Reticulum itself.&lt;\/p&gt;\n<\/div><div class=\"gfmr-markdown-rendered\"><h1>Where, oh where, is the current Reticulum source of truth?<\/h1>\n<p>Currently the Reticulum protocol is accepted as defined within the Python code implementation created by Mark Qvist.\u00a0 There is no formal specification\u00a0for the Reticulum protocol.\u00a0 Hence the protocol is derived from Mark&#8217;s Python source tree.\u00a0 The question I faced: where can I obtain the current high watermark of the implementation?\u00a0 Mark&#8217;s GitHub page states development is &#8220;happening elsewhere.&#8221;<\/p>\n<figure id=\"attachment_1060\" aria-describedby=\"caption-attachment-1060\" style=\"width: 530px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-1060\" src=\"https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/07\/20260709_114344_Thu.png\" alt=\"\" width=\"530\" height=\"255\" srcset=\"https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/07\/20260709_114344_Thu.png 1008w, https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/07\/20260709_114344_Thu-300x144.png 300w, https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/07\/20260709_114344_Thu-768x370.png 768w\" sizes=\"auto, (max-width: 530px) 100vw, 530px\" \/><figcaption id=\"caption-attachment-1060\" class=\"wp-caption-text\">GitHub markqvist\/Reticulum Project README.md<\/figcaption><\/figure>\n<p>As of 10:00 AM, Thursday, July 9, 2026, the source of truth among the releases varies.<\/p>\n<h2>Releases As Of 7\/8\/26<\/h2>\n<p>GitHub is 1.3.4<\/p>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_1058\" aria-describedby=\"caption-attachment-1058\" style=\"width: 874px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1058\" src=\"https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/07\/20260709_103138_Thu.png\" alt=\"\" width=\"874\" height=\"557\" srcset=\"https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/07\/20260709_103138_Thu.png 874w, https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/07\/20260709_103138_Thu-300x191.png 300w, https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/07\/20260709_103138_Thu-768x489.png 768w\" sizes=\"auto, (max-width: 874px) 100vw, 874px\" \/><figcaption id=\"caption-attachment-1058\" class=\"wp-caption-text\">GitHub for project markqvist\/Reticulum<\/figcaption><\/figure>\n<p>The PyPI [Python Package Installer] page for rns is: 1.3.7<\/p>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_1057\" aria-describedby=\"caption-attachment-1057\" style=\"width: 621px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1057\" src=\"https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/07\/20260709_100829_Thu.png\" alt=\"\" width=\"621\" height=\"885\" srcset=\"https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/07\/20260709_100829_Thu.png 621w, https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/07\/20260709_100829_Thu-211x300.png 211w\" sizes=\"auto, (max-width: 621px) 100vw, 621px\" \/><figcaption id=\"caption-attachment-1057\" class=\"wp-caption-text\">pypi.org project page for rns<\/figcaption><\/figure>\n<p>I use Chad Attermann&#8217;s <a href=\"https:\/\/github.com\/attermann\/microReticulum\">microReticulum<\/a> project which is written in C++ and can be loaded onto a Lilygo T-Beam SUPREME.\u00a0 Chad&#8217;s project relies upon the GitHub release, currently at 1.3.4.\u00a0 (See https:\/\/github.com\/attermann\/microReticulum\/issues\/68 &#8220;Reticulum: Source of Truth #68&#8221;.) If I am going to make the investment of time to bring my testing harness up to the high watermark, I&#8217;d prefer I be at 1.3.7 so I can assume I do not have to keep following the high watermark.<\/p>\n<h1>Fetching the definitive source of truth<\/h1>\n<p>With ChatGPT&#8217;s help searching the varied sources, I came up with this method to fetch from Mark Qvist his current release using his rnsgit tool.\u00a0 (The riddle, of course, is knowing the correct reticulum address which can change or become inactive.\u00a0 Rather that pour through the various forums, many of which become stale, I relied on ChatGPT to search for me.) The command that finally resolved the ambiguity was:<\/p>\n<pre>rngit release rns:\/\/7649a50d84610232d1416b41d2896aff\/reticulum\/reticulum \\\r\n \u00a0fetch latest:all \\\r\n \u00a0--signer bc7291552be7a58f361522990465165c<\/pre>\n<p><em>Caution<\/em>: the above does not create a protocol specification. It only identifies the current signed implementation release I was able to retrieve over Reticulum as of the date shown.<\/p>\n<h3>Recipe<\/h3>\n<p>1) Install a dedicated Python virtual environment for Reticulum; all command hereafter <em>assume you are operating within such an isolated environment<\/em>.<\/p>\n<p>2) Verify which version of rns you have:<\/p>\n<pre>python3 -m pip show rns \r\nName: rns \r\nVersion: 1.3.7 \r\nSummary: Self-configuring, encrypted and resilient mesh networking stack for LoRa, packet radio, WiFi and everything in between \r\nHome-page: https:\/\/reticulum.network\/ \r\nAuthor: Mark Qvist \r\nAuthor-email: mark@unsigned.io \r\nLicense: Reticulum License \r\nLocation: \/home\/jlpoole\/rnsenv\/lib\/python3.13\/site-packages \r\nRequires: cryptography, pyserial \r\nRequired-by: lxmf, lxst, nomadnet, sbapp \r\n[ rnsenv|script ] jlpoole@jp ~\/tmp\/reticulum-rngit-fetch<\/pre>\n<p>3) If your rns version does not match, I found upgrading with pip did not take me from 1.3.4 to 1.3.7; I had to remove version 1.3.4 and then install anew:<\/p>\n<p>pip install rns<\/p>\n<figure id=\"attachment_1061\" aria-describedby=\"caption-attachment-1061\" style=\"width: 694px\" class=\"wp-caption alignleft\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-1061\" src=\"https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/07\/20260709_122035_Thu.png\" alt=\"\" width=\"694\" height=\"317\" srcset=\"https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/07\/20260709_122035_Thu.png 1128w, https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/07\/20260709_122035_Thu-300x137.png 300w, https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/07\/20260709_122035_Thu-768x351.png 768w\" sizes=\"auto, (max-width: 694px) 100vw, 694px\" \/><figcaption id=\"caption-attachment-1061\" class=\"wp-caption-text\">directory.rns.recipes\/<\/figcaption><\/figure>\n<p>4) Edit your rns configuration file, ~\/.reticulum\/config,\u00a0 to point to some <em>active<\/em> rns servers.\u00a0 A list of active servers may be accessed at: https:\/\/directory.rns.recipes\/<\/p>\n<p>&nbsp;<\/p>\n<pre>[interfaces]<\/pre>\n<pre>[[RNS Sideband]]\r\ntype = TCPClientInterface\r\nenabled = yes\r\ntarget_host = sideband.connect.reticulum.network\r\ntarget_port = 7822\r\n\r\n[[Beleth RNS Hub]]\r\ntype = TCPClientInterface\r\nenabled = yes\r\ntarget_host = rns.beleth.net\r\ntarget_port = 4242\r\n\r\n[[RMAP]]\r\ntype = TCPClientInterface\r\nenabled = yes\r\ntarget_host = rmap.world\r\ntarget_port = 4242\r\n\r\n[[Nexus Backbone PH]]\r\ntype = TCPClientInterface\r\nenabled = yes\r\ntarget_host = 212.227.208.95\r\ntarget_port = 4242<\/pre>\n<p>5) Start your rns daemon in its own console (within your virtual Python environment):<\/p>\n<pre>\u00a0 \u00a0  rnsd -v<\/pre>\n<figure id=\"attachment_1062\" aria-describedby=\"caption-attachment-1062\" style=\"width: 898px\" class=\"wp-caption alignleft\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-1062\" src=\"https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/07\/20260709_122234_Thu.png\" alt=\"\" width=\"898\" height=\"309\" srcset=\"https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/07\/20260709_122234_Thu.png 898w, https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/07\/20260709_122234_Thu-300x103.png 300w, https:\/\/salemdata.net\/johnpress\/wp-content\/uploads\/2026\/07\/20260709_122234_Thu-768x264.png 768w\" sizes=\"auto, (max-width: 898px) 100vw, 898px\" \/><figcaption id=\"caption-attachment-1062\" class=\"wp-caption-text\">rns daemon<\/figcaption><\/figure>\n<p>6) In another console (within your virtual Python environment), test if you can &#8220;rnpath&#8221; (similar to ping) the address:<\/p>\n<pre>(rnsenv) jlpoole@jp ~\/tmp\/reticulum-rngit-fetch $ rnpath 7649a50d84610232d1416b41d2896aff \r\nPath found, destination &lt;7649a50d84610232d1416b41d2896aff&gt; is 5 hops away via &lt;521c87a83afb8f29e4455e77930b973b&gt; on TCPInterface[RNS Sideband\/sideband.connect.reticulum.network:7822] \r\n(rnsenv) jlpoole@jp ~\/tmp\/reticulum-rngit-fetch $ date \r\nThu Jul \u00a09 11:16:17 PDT 2026 \r\n(rnsenv) jlpoole@jp ~\/tmp\/reticulum-rngit-fetch $<\/pre>\n<p>Assuming you successfully resolved the path, you can use the tool <strong>rnsgit<\/strong><\/p>\n<pre>rngit release rns:\/\/7649a50d84610232d1416b41d2896aff\/reticulum\/reticulum \\ \r\n\u00a0fetch latest:all \\ \r\n\u00a0--signer bc7291552be7a58f361522990465165c<\/pre>\n<p>Here&#8217;s my fetch attempt and the results:<\/p>\n<pre>(rnsenv) jlpoole@jp ~\/tmp\/reticulum-rngit-fetch $ rngit release rns:\/\/7649a50d84610232d1416b41d2896aff\/reticulum\/reticulum \\ \r\n\u00a0fetch latest:all \\ \r\n\u00a0--signer bc7291552be7a58f361522990465165c \r\nTransferring manifest.rsm: 100% (3.76 KB) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\nRelease manifest validated, signed by &lt;bc7291552be7a58f361522990465165c&gt; \r\nFetching 5 artifacts... \r\n\u00a0Transferring rns-1.3.7.tar.gz: 100% (516.65 KB) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\u00a0Transferring rns-1.3.7-py3-none-any.whl: 100% (603.49 KB) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\u00a0Transferring rnspure-1.3.7-py3-none-any.whl: 100% (603.62 KB) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\u00a0Transferring Reticulum Manual.epub: 100% (4.07 MB) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\u00a0Transferring Reticulum Manual.pdf: 100% (5.03 MB) \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n(rnsenv) jlpoole@jp ~\/tmp\/reticulum-rngit-fetch $ ls -la \r\ntotal 13864 \r\ndrwxr-xr-x 2 jlpoole jlpoole \u00a0\u00a0\u00a04096 Jul \u00a09 11:17 \u00a0. \r\ndrwxr-xr-x 5 jlpoole jlpoole \u00a0\u00a0\u00a04096 Jul \u00a09 10:55 \u00a0.. \r\n-rw-r--r-- 1 jlpoole jlpoole 4072754 Jul \u00a09 11:17 'Reticulum Manual.epub' \r\n-rw-r--r-- 1 jlpoole jlpoole 5029143 Jul \u00a09 11:17 'Reticulum Manual.pdf' \r\n-rw-r--r-- 1 jlpoole jlpoole \u00a0603491 Jul \u00a09 11:16 \u00a0rns-1.3.7-py3-none-any.whl \r\n-rw-r--r-- 1 jlpoole jlpoole \u00a0516648 Jul \u00a09 11:16 \u00a0rns-1.3.7.tar.gz \r\n-rw-r--r-- 1 jlpoole jlpoole \u00a0\u00a0\u00a03763 Jul \u00a09 11:16 \u00a0rns_1.3.7.rsm \r\n-rw-r--r-- 1 jlpoole jlpoole \u00a0603624 Jul \u00a09 11:16 \u00a0rnspure-1.3.7-py3-none-any.whl \r\n(rnsenv) jlpoole@jp ~\/tmp\/reticulum-rngit-fetch $<\/pre>\n<p>Here&#8217;s what is in the rns-1.3.7.tar.gz<\/p>\n<pre>(rnsenv) jlpoole@jp ~\/tmp\/reticulum-rngit-fetch_20260709_1117 $ mkdir -p ~\/tmp\/rns-1.3.7_src_20260709_1117 \r\ntar -xzf rns-1.3.7.tar.gz -C ~\/tmp\/rns-1.3.7_src_20260709_1117 --strip-components=1 \r\ncd ~\/tmp\/rns-1.3.7_src_20260709_1117 \r\nfind . -maxdepth 2 -type f | sort | less \r\n(rnsenv) jlpoole@jp ~\/tmp\/rns-1.3.7_src_20260709_1117 $ find . -maxdepth 2 -type f | sort \u00a0\r\n.\/CRNS\/__init__.py \r\n.\/PKG-INFO \r\n.\/README.md \r\n.\/RNS\/Buffer.py \r\n.\/RNS\/Channel.py \r\n.\/RNS\/Destination.py \r\n.\/RNS\/Discovery.py \r\n.\/RNS\/Identity.py \r\n.\/RNS\/Link.py \r\n.\/RNS\/Packet.py \r\n.\/RNS\/Resolver.py \r\n.\/RNS\/Resource.py \r\n.\/RNS\/Reticulum.py \r\n.\/RNS\/Transport.py \r\n.\/RNS\/__init__.py \r\n.\/RNS\/_version.py \r\n.\/rns.egg-info\/PKG-INFO \r\n.\/rns.egg-info\/SOURCES.txt \r\n.\/rns.egg-info\/dependency_links.txt \r\n.\/rns.egg-info\/entry_points.txt \r\n.\/rns.egg-info\/requires.txt \r\n.\/rns.egg-info\/top_level.txt \r\n.\/setup.cfg \r\n.\/setup.py \r\n(rnsenv) jlpoole@jp ~\/tmp\/rns-1.3.7_src_20260709_1117 $<\/pre>\n<h2>Conclusion<\/h2>\n<p>For my purposes, the signed RNS-distributed release is the best practical source of truth. GitHub is still useful for history, issue discussion, and derivative projects, but the current implementation watermark appears to be the signed release retrievable over Reticulum itself.<\/p>\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>&lt;h1&gt;Where, oh where, is the current Reticulum source of truth?&lt;\/h1&gt; &lt;p&gt;Currently the Reticulum protocol is accepted as defined within the Python code implementation created by Mark Qvist.\u00a0 There is no formal specification\u00a0for the Reticulum protocol.\u00a0 Hence the protocol is derived from Mark&#8217;s Python source tree.\u00a0 The question I faced: where can I obtain the current [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_gfmr_meta_descriptions":[],"_gfmr_multilingual_taxonomy_terms":[],"footnotes":""},"categories":[131,130,1],"tags":[],"class_list":["post-1056","post","type-post","status-publish","format-standard","hentry","category-microreticulum","category-reticulum","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=\/wp\/v2\/posts\/1056","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1056"}],"version-history":[{"count":6,"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=\/wp\/v2\/posts\/1056\/revisions"}],"predecessor-version":[{"id":1067,"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=\/wp\/v2\/posts\/1056\/revisions\/1067"}],"wp:attachment":[{"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1056"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1056"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1056"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}