Nordhavn / specs / convene / mix / Wire

convene / mixport

Wire

Purpose

The capability that moves a cell between two peers over the network — the mix layer's seam to the floor. The transport domain owns what travels (an indistinguishable Cell) and why (routing it through the tumblers toward a recipient); the wire owns only the hop: hand this cell to that peer, and tell me which cells have arrived here. It knows nothing of groups, members, epochs, or the contents of a cell — it moves fixed-size opaque bytes between addresses. This is a port: it lowers to an interface the mix layer emits and the host crate binds to an existing peer-to-peer transport (a libp2p swarm); the gate binds a direct in-memory hand-off.

Operations

send

Given a Peer and a Cell, hands the cell to the network toward that peer; fire and forget. Result: None

collect

Given the collector Peer, produces the Cells that have arrived at it awaiting handling — those routed to this peer, in no promised order. Empty when nothing has arrived. Result: the Cells that have arrived at the collector peer

Notes

The wire is the floor's edge: below it are retransmission, framing, congestion, and connection management, all owned by the bound transport crate and none of them the mix layer's concern. The mix layer assumes only that a sent cell eventually reaches its peer or is lost — never that it is ordered, timely, or private — which is why order and privacy are built above the wire, in the cells and the tumblers, not asked of it.

spoken of by