Skip to documentation
SLOP

tiny.reticulum.node.transport.link

Reference tiny.reticulum node transport link

Defined in node.transport.

A node needs records and steps to move the packets of encrypted sessions that run between other pairs of nodes through itself.

API (2)

Namespaces

Public namespaces.

No direct callersNo direct callsnode.transportlink
Static calls · unresolved targets: unknown · external targets: unknown.

Source

Source: lib/reticulum/src/node/transport/link/root.zig

zig
//! A node needs records and steps to move the packets of encrypted sessions//! that run between other pairs of nodes through itself. Two programs that want//! an encrypted session between them may sit many hops apart, so each node//! along the way has to pass the request outward, the answer back, and the//! traffic both ways.//!//! A node in the middle holds none of the session keys, so it tells the two//! directions apart by the hop count a packet carries (the byte in the packet//! header that rises by one at every node the packet passes through) and the//! network interface it arrived on. A request that is never answered would hold//! its record for good, so each record carries a deadline. The record store//! holds a fixed number of sessions in storage its caller supplies, so a//! request arriving with the store full is dropped whole, leaving no//! half-written record.//!//! Reticulum 1.5.0, the reference implementation this package is a port of,//! pinned to one upstream commit, answers these with a record per carried//! session at every node that carries traffic for others, keyed by the 16-byte//! id both ends derive from the request. Each record carries a deadline per//! remaining hop for the signed answer to come back, and a sweep drops records//! past their deadline, at Reticulum@1.5.0 RNS/Transport.py:1998-2010,843-856.//! The lineage is checkable in this tree: the package README pins the upstream//! commit the port follows, and the conformance corpus under src/conformance is//! generated from that release and drives the differential tests.//!//! This port asks its caller to wake the node at the earliest deadline any//! record holds (a *node timer*), so a record ends at its own deadline. The//! reference sweeps every second. `relay.zig` lists every departure from the//! reference.//!//! The subtree holds two modules: `entries` keeps one record per carried//! session with its deadline, and `relay` holds the steps that forward the//! request, carry the signed answer back, pass the traffic, and drop a record//! at its deadline.//!//! - *link*: an encrypted session between two endpoints, named by a 16-byte//!   link id that both ends derive from the request packet.//! - *link id*: the 16-byte name of one link, the same at every node the link//!   crosses.//! - *proof*: a signed packet returned to confirm an earlier packet, which for//!   a link request is the responder accepting the link.//! - *carrier*: one network interface the node sends and receives over, named//!   by a small integer index.//! - *transport node*: a node that carries traffic on behalf of other nodes, as//!   well as sending and receiving its own.pub const entries = @import("entries.zig");pub const relay = @import("relay.zig");

Source: lib/reticulum/src/node/transport/root.zig:105

zig
pub const link = @import("link/root.zig");

Audit

Definitions1
Public names1
Members0
Version26.7.0
Revisiondaab053ee433