Invariants / CN-PEER-OUTBOUND-MAP-01

CN-PEER-OUTBOUND-MAP-01

CN derived enforced

Per-peer outbound senders are owned by an Arc<RwLock<BTreeMap<PeerId, mpsc::Sender>>>. Listener (run_per_peer_session) inserts on PeerConnected; MuxPump removes on emit_peer_disconnected. produce_mode looks up by PeerId and cannot fabricate senders. BTreeMap (not HashMap) for deterministic iteration order. Lookup failure is structured: DispatchError::{UnknownPeer, PeerOutboundMissing}. No cross-peer byte leakage is structurally possible — bytes destined for PeerId(a) reach the MuxPump task owning PeerId(a)'s TCP socket, never another peer's.

Source

docs/planning/phase4-n-s-invariants.md §1 (I5); §2 (N5)

Cluster
PHASE4-N-S-B
Introduced in
PHASE4-N-S-B

Enforcement trace

Tests 1

  • outbound_command_peer_accessor_returns_target_peer

CI 0

no CI script — gap

Cross-references