{"id":861,"date":"2026-06-09T21:38:36","date_gmt":"2026-06-10T05:38:36","guid":{"rendered":"https:\/\/salemdata.net\/johnpress\/?p=861"},"modified":"2026-06-09T21:38:36","modified_gmt":"2026-06-10T05:38:36","slug":"a-reticulum-protocol-specification-extracted-from-the-implementation","status":"publish","type":"post","link":"https:\/\/salemdata.net\/johnpress\/?p=861","title":{"rendered":"A Reticulum Protocol Specification, Extracted from the Implementation"},"content":{"rendered":"<div class=\"gfmr-markdown-container\"><div class=\"gfmr-markdown-source\" style=\"display: none;\">&lt;p data-start=&quot;2791&quot; data-end=&quot;3113&quot;&gt;I undertook an effort to guide OpenAI\u2019s Codex into creating a specification document for the Reticulum protocol. I had learned that, in practice, Reticulum\u2019s \u201cprotocol\u201d is treated more as a reference implementation: the code tree is the embodiment of the protocol, and there is no separate defining specification document.&lt;\/p&gt;\n&lt;p data-start=&quot;3118&quot; data-end=&quot;3167&quot;&gt;Long story short: I have created a specification.&lt;\/p&gt;\n&lt;p data-start=&quot;3172&quot; data-end=&quot;3607&quot;&gt;The procedure for extracting the protocol was developed with ChatGPT; Codex built out the tool chain. I began this project to help myself understand the actual rules of the protocol. An unanticipated consequence is that the resulting specification can now be used to audit other Reticulum implementations, not merely by comparing them against Mark Qvist\u2019s Python implementation, but by comparing them against an explicit specification.&lt;\/p&gt;\n&lt;p data-start=&quot;3612&quot; data-end=&quot;3917&quot;&gt;I staged this project on my Forgejo server. Unfortunately, AI bots have been hammering the server with 8\u201310 hits per second, so I have temporarily restricted access to users with accounts in order to deter the onslaught. Were it not for the bot barrage, the Forgejo repository would be publicly available.&lt;\/p&gt;\n&lt;p data-start=&quot;3922&quot; data-end=&quot;4229&quot;&gt;Humans are welcome to request an account. To do so, please submit your name, email address, and preferred username in the comment form below, beginning the comment with: \u201cForgejo Access Request: \u2026\u201d. I will process the request and will not publish the comment, so your email address will not appear publicly.&lt;\/p&gt;\n&lt;p data-start=&quot;4234&quot; data-end=&quot;4413&quot;&gt;I have copied the following audit reports, along with the specification, &lt;code data-start=&quot;4307&quot; data-end=&quot;4316&quot;&gt;SPEC.md&lt;\/code&gt;, and the &lt;code data-start=&quot;4326&quot; data-end=&quot;4337&quot;&gt;README.md&lt;\/code&gt; from &lt;code data-start=&quot;4343&quot; data-end=&quot;4368&quot;&gt;reticulum-specification&lt;\/code&gt;, to a publicly available area of my website:&lt;\/p&gt;\n&lt;ul&gt;\n&lt;li&gt;&lt;a href=&quot;https:\/\/salemdata.net\/public\/reticulum\/README.md&quot;&gt;README.md&lt;\/a&gt; (&lt;a href=&quot;https:\/\/salemdata.net\/public\/reticulum\/README.html&quot;&gt;HTML&lt;\/a&gt;)&lt;\/li&gt;\n&lt;li&gt;&lt;a href=&quot;https:\/\/salemdata.net\/public\/reticulum\/SPEC.md&quot;&gt;SPEC.md&lt;\/a&gt; (&lt;a href=&quot;https:\/\/salemdata.net\/public\/reticulum\/SPEC.html&quot;&gt;HTML&lt;\/a&gt;)&lt;\/li&gt;\n&lt;li&gt;&lt;a href=&quot;https:\/\/salemdata.net\/public\/reticulum\/go-reticulum-spec-assessment-2026-06-09.md&quot;&gt;go-reticulum-spec-assessment-2026-06-09.md&lt;\/a&gt;&lt;\/li&gt;\n&lt;li&gt;&lt;a href=&quot;https:\/\/salemdata.net\/public\/reticulum\/retinet-spec-assessment-2026-06-09.md&quot;&gt;retinet-spec-assessment-2026-06-09.md&lt;\/a&gt;&lt;\/li&gt;\n&lt;li&gt;&lt;a href=&quot;https:\/\/salemdata.net\/public\/reticulum\/microreticulum-spec-assessment-2026-06-09.md&quot;&gt;microreticulum-spec-assessment-2026-06-09.md&lt;\/a&gt;&lt;\/li&gt;\n&lt;li&gt;&lt;a href=&quot;https:\/\/salemdata.net\/public\/reticulum\/leviculum-spec-assessment-2026-06-09.md&quot;&gt;leviculum-spec-assessment-2026-06-09.md&lt;\/a&gt;&lt;\/li&gt;\n&lt;li&gt;&lt;a href=&quot;https:\/\/salemdata.net\/public\/reticulum\/executive-report-2026-06-09.md&quot;&gt;executive-report-2026-06-09.md&lt;\/a&gt;&lt;\/li&gt;\n&lt;\/ul&gt;\n&lt;p&gt;The concept of a protocol without a specification is novel to me.&lt;\/p&gt;\n<\/div><div class=\"gfmr-markdown-rendered\"><p data-start=\"2791\" data-end=\"3113\">I undertook an effort to guide OpenAI\u2019s Codex into creating a specification document for the Reticulum protocol. I had learned that, in practice, Reticulum\u2019s \u201cprotocol\u201d is treated more as a reference implementation: the code tree is the embodiment of the protocol, and there is no separate defining specification document.<\/p>\n<p data-start=\"3118\" data-end=\"3167\">Long story short: I have created a specification.<\/p>\n<p data-start=\"3172\" data-end=\"3607\">The procedure for extracting the protocol was developed with ChatGPT; Codex built out the tool chain. I began this project to help myself understand the actual rules of the protocol. An unanticipated consequence is that the resulting specification can now be used to audit other Reticulum implementations, not merely by comparing them against Mark Qvist\u2019s Python implementation, but by comparing them against an explicit specification.<\/p>\n<p data-start=\"3612\" data-end=\"3917\">I staged this project on my Forgejo server. Unfortunately, AI bots have been hammering the server with 8\u201310 hits per second, so I have temporarily restricted access to users with accounts in order to deter the onslaught. Were it not for the bot barrage, the Forgejo repository would be publicly available.<\/p>\n<p data-start=\"3922\" data-end=\"4229\">Humans are welcome to request an account. To do so, please submit your name, email address, and preferred username in the comment form below, beginning the comment with: \u201cForgejo Access Request: \u2026\u201d. I will process the request and will not publish the comment, so your email address will not appear publicly.<\/p>\n<p data-start=\"4234\" data-end=\"4413\">I have copied the following audit reports, along with the specification, <code data-start=\"4307\" data-end=\"4316\">SPEC.md<\/code>, and the <code data-start=\"4326\" data-end=\"4337\">README.md<\/code> from <code data-start=\"4343\" data-end=\"4368\">reticulum-specification<\/code>, to a publicly available area of my website:<\/p>\n<ul>\n<li><a href=\"https:\/\/salemdata.net\/public\/reticulum\/README.md\">README.md<\/a> (<a href=\"https:\/\/salemdata.net\/public\/reticulum\/README.html\">HTML<\/a>)<\/li>\n<li><a href=\"https:\/\/salemdata.net\/public\/reticulum\/SPEC.md\">SPEC.md<\/a> (<a href=\"https:\/\/salemdata.net\/public\/reticulum\/SPEC.html\">HTML<\/a>)<\/li>\n<li><a href=\"https:\/\/salemdata.net\/public\/reticulum\/go-reticulum-spec-assessment-2026-06-09.md\">go-reticulum-spec-assessment-2026-06-09.md<\/a><\/li>\n<li><a href=\"https:\/\/salemdata.net\/public\/reticulum\/retinet-spec-assessment-2026-06-09.md\">retinet-spec-assessment-2026-06-09.md<\/a><\/li>\n<li><a href=\"https:\/\/salemdata.net\/public\/reticulum\/microreticulum-spec-assessment-2026-06-09.md\">microreticulum-spec-assessment-2026-06-09.md<\/a><\/li>\n<li><a href=\"https:\/\/salemdata.net\/public\/reticulum\/leviculum-spec-assessment-2026-06-09.md\">leviculum-spec-assessment-2026-06-09.md<\/a><\/li>\n<li><a href=\"https:\/\/salemdata.net\/public\/reticulum\/executive-report-2026-06-09.md\">executive-report-2026-06-09.md<\/a><\/li>\n<\/ul>\n<p>The concept of a protocol without a specification is novel to me.<\/p>\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>&lt;p data-start=&quot;2791&quot; data-end=&quot;3113&quot;&gt;I undertook an effort to guide OpenAI\u2019s Codex into creating a specification document for the Reticulum protocol. I had learned that, in practice, Reticulum\u2019s \u201cprotocol\u201d is treated more as a reference implementation: the code tree is the embodiment of the protocol, and there is no separate defining specification document.&lt;\/p&gt; &lt;p data-start=&quot;3118&quot; data-end=&quot;3167&quot;&gt;Long story [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":867,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_gfmr_meta_descriptions":[],"_gfmr_multilingual_taxonomy_terms":[],"footnotes":""},"categories":[126,130],"tags":[],"class_list":["post-861","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codex","category-reticulum"],"_links":{"self":[{"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=\/wp\/v2\/posts\/861","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=861"}],"version-history":[{"count":5,"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=\/wp\/v2\/posts\/861\/revisions"}],"predecessor-version":[{"id":866,"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=\/wp\/v2\/posts\/861\/revisions\/866"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=\/wp\/v2\/media\/867"}],"wp:attachment":[{"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=861"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=861"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/salemdata.net\/johnpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=861"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}