Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Reticulum Protocol Specification

This appendix is an exact, English specification of the Reticulum (RNS) protocol, derived from and proven against the vendored Python reference (vendor/Reticulum, RNS 1.3.5, commit d5e62d4). It is the wire contract the libreticulum reticulum-core/reticulum-std crates interoperate against, and the foundation the LXMF Protocol Specification builds on.

Reticulum is a cryptography-based networking stack: self-sovereign identities, addressable destinations, encrypted packets, announces for discovery, links for sessions, resources for large transfers, and channels for ordered messaging, all medium-agnostic above a thin framing layer.

How to read this specification

  • Normative statements use RFC 2119 keywords (MUST, SHOULD, MAY). Every normative fact carries a file:line citation into the reference, a derivation with the arithmetic shown, or a labelled test vector [VEC-...].
  • Informative sections describe internal reference behaviour (transport tables, retransmission timing, resource window adaptation, keepalive math) that an implementation MAY diverge from without breaking wire or semantic compatibility.
  • Test vectors are the genuine byte output of the reference, regenerated by vectors/gen_vectors.py and pinned to the submodule commit. Ephemeral-key paths (encryption token, announces, link handshake) are frozen by injecting fixed randomness and time, and additionally carry a decrypt/verify/derive roundtrip so the semantic property is proven too.

Sections