Reticulum 1.3.7 vs. My 1.3.5 Protocol Specification

Since no specification exists for the Reticulum protocol, I previously undertook to derive a specification from the Mark Qvist implementation.  See A Reticulum Protocol Specification, Extracted from the Implementation (“Specification”). When I did so several weeks ago, I was working against Reticulum version 1.3.5.  In source control parlance, that means the Specification I created is “pinned” to 1.3.5. I saw in a Mastodon post that a new release, version 1.3.7, had come out..

So I went through the exercise of obtaining version 1.3.7, Reticulum: Finding The Definitive Source.

I asked Codex to compare the Python tree representing 1.3.7 with the Specification (1.3.5).  Here are Codex’s findings:

Worked for 3m 11s

Assessment: no evidence that RNS 1.3.7 breaks the current wire-level spec coverage. Packet headers, destination hashes, Token crypto, announces, Link handshake/LRPROOF, resources, request/response, transport DATA/LINK, Channel reliability, stamps, and LXMF 1.0.1 vectors all still pass against the 1.3.7 tarball.

What changed or needs spec/verifier attention:

  • The repo is already pinned to RNS 1.3.5, not 1.3.4, per README.md / provenance.
  • RNS 1.3.7 adds/expands operational interface behavior:
    • on-network interface discovery via new RNS/Discovery.py
    • recursive_prs per-interface control for recursive unknown path requests
    • announces_from_internal filtering for announces sourced from internal interfaces
    • interface discovery config fields such as discoverable, reachable_on, publish_ifac, discovery stamps/encryption
  • Existing verifier fakes need updating:
    • verify_path_request_limits.py and verify_transport_tunnel.py now need FakeInterface.recursive_prs
    • verify_transport_announce.py now needs FakeInterface.announces_from_internal
  • verify_regeneration.py only changed vector metadata from 1.3.5 to 1.3.7; vector bytes did not change. I restored those generated metadata edits, so the spec repo working tree is clean.

Advice: update the spec with a small 1.3.7 migration note for interface discovery and the two new interface controls. I would not treat this as a protocol break. Treat it as a spec expansion plus verifier-maintenance pass. The main new wire surface worth documenting is rnstransport.discovery.interface app-data format: flags byte, msgpack info map, LXMF stamp, optional network-identity encryption.

For my purposes, this means the 1.3.5-derived specification remains substantially valid for 1.3.7, but should receive a short migration note covering interface discovery and the new per-interface controls.


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *