Entropy
Purpose
The capability that supplies the randomness the mix needs — the other seam to the floor. Mixing is
nothing without unpredictability: a tumbler that released its cells in the order they arrived would
mix nothing, and a route an observer could predict would hide nothing. Rather than reach for ambient
randomness in the middle of a context — which would make the transport untestable and its scenarios
non-reproducible — the mix layer names randomness as a port it is given, so a scenario can inject a
fixed draw and pin the behaviour exactly. This is a port: the host crate binds it to an
operating-system random source; the gate binds a seeded, deterministic one so the whole stack's
scenarios reproduce.
Operations
shuffle
Given some Cells, produces them in a freshly randomised order — the reordering a tumbler applies
before it releases a batch.
Result: the Cells in their freshly randomised order
pick
Given some Peers, yields one of them at random — the next hop a cell is routed to.
Result: the Peer it picked
nonce
Yields a fresh opaque value, no two alike — the per-cell salt that makes each detection tag and each
sealing look unrelated to every other.
Result: the fresh value as Text
Notes
Naming entropy as a port is the DCI-honest way to keep an impure, non-reproducible source out of the pure transport logic: the contexts stay deterministic given their inputs, and the one place unpredictability enters is visible and swappable. The strength of the underlying source — a CSPRNG, seeded from the OS — is the floor's concern, asserted where the port is bound, not here.