// lxmf
Reticulum vindt een route en vervoert de packets. LXMF regelt daarboven hoe berichten worden opgebouwd, afgeleverd en eventueel opgeslagen voor offline ontvangers. Ratspeak, Sideband en NomadNet zijn op die twee gebouwd.
Een link is een versleutelde, tijdelijke, point-to-point sessie tussen twee Reticulum destinations. Direct of multi-hop. De link is niet de fysieke radio- of TCP-verbinding: het is een versleuteld kanaal over het pad dat Reticulum gevonden heeft, welk pad dat ook is.
Links bieden forward secrecy via ephemeral X25519 key exchange. Wanneer een link eindigt, worden de sessiesleutels niet hergebruikt. De initiator hoeft geen long-term identity te onthullen om een link te openen.
| 1 | Link request. De initiator maakt vers ephemeral sleutelmateriaal en stuurt een Link Request packet naar de destination hash. |
| 2 | Path marking. Transport nodes die het request doorsturen onthouden de link ID. |
| 3 | Proof. De destination accepteert, maakt eigen ephemeral sleutelmateriaal, signeert proof met de identity, en stuurt een proof packet terug. |
| 4 | Active link. Beide kanten leiden dezelfde symmetrische sleutel af en wisselen versleutelde packets uit. |
| Concept | Wat het doet |
|---|---|
| Channel | Betrouwbare, geordende message streams over een link. Voor request/response en data die in volgorde moet aankomen. |
| Resource | Transfer van payloads groter dan een enkel packet. Chunking, verificatie, hertransmissie en reassembly. Bestanden, afbeeldingen en grote LXMF berichten gebruiken dit. |
LXMF definieert een compact gesigneerd envelope met: bron en destination informatie, timestamp, optionele titel en content, gestructureerde velden voor applicatie-specifieke data, afzendersignatuur, en bezorgmetadata (stamps, tickets, propagation state). Klein genoeg voor LoRa, flexibel genoeg voor chat, mail, telemetrie, game moves en app-specifieke payloads.
| Methode | Hoe het werkt | Geschikt voor |
|---|---|---|
| Direct | Opent een Reticulum link naar de ontvanger en levert over die versleutelde sessie. | Normale gesprekken, betrouwbare bezorging, grotere berichten |
| Opportunistic | Stuurt een klein versleuteld bericht als een enkel Reticulum packet zonder link setup. Max ~295 bytes. | Korte notities, alerts, lage-latentie fire-and-forget |
| Propagated | Slaat het versleutelde bericht op een propagation node op tot de ontvanger het ophaalt. | Offline ontvangers, delay-tolerant messaging |
Berichten groter dan 295 bytes vallen automatisch terug op Direct delivery. Berichten groter dan een enkel link packet worden als resource over de link gestuurd.
Een propagation node is een Reticulum node die LXMF propagation software draait (lxmd of lxmd-rs). Het slaat versleutelde LXMF blobs op voor ontvangers die offline of niet bereikbaar zijn. Wanneer de ontvanger online komt, vraagt de client de propagation node om wachtende berichten.
Ratspeak noemt deze functie Offline Inbox. De technische LXMF term is propagation node. Propagation nodes lezen de berichten niet: de inhoud blijft versleuteld voor de ontvanger.
Je kunt meerdere propagation nodes hun state laten synchroniseren, zodat een ontvanger meer dan een plek heeft om berichten op te halen. Hoe je een propagation node opzet staat op node opzetten. Welke apps LXMF gebruiken zie je op software.
De standaardwaarden zijn afgestemd op langzame, lossy netwerken. Op een gezond LAN merk je ze nauwelijks. Op LoRa en lange multi-hop paden voorkomt het extra geduld dat links falen alleen omdat het medium langzaam is.
| Timer | Gedrag |
|---|---|
| Establishment timeout | Circa 6 seconden per verwachte hop |
| Keepalive | Adaptief, tussen 5 en 360 seconden, gebaseerd op waargenomen RTT |
| Stale handling | Stille link wordt stale na twee keepalive intervallen, daarna gesloten als er geen antwoord komt |