Invariants / DC-PUMP-08

DC-PUMP-08

DC derived enforced

Reconnect policy is transport-only and TOTAL. should_reconnect_after is the single named authority classifying the wire pump's closed outcome sum: TRANSPORT loss (Eof / TransportRead / TransportWrite) reconnects an ESTABLISHED session; a peer PROTOCOL or GRAMMAR violation (Session, ChainSyncDecode, BlockFetchDecode, UnexpectedProtocolMessage, UnsupportedRollbackPoint, KeepAlive, DeferredFrameOverflow) keeps the pre-slice fail-closed drop so a systematically bad peer is never retried into a livelock; EventsChannelDropped means the consumer is gone. Reconnect re-establishes ONLY the wire session: admission, the rollback k-guard, boundary promotion and the forge fence all remain in the consumer with their existing typed halts, so reconnect can never convert a fail-closed AUTHORITY outcome into a retry.

Source

docs/clusters/LIVE-WIRE-LIVENESS/SLICE-S1-keepalive-under-backpressure.md + docs/clusters/LIVE-WIRE-LIVENESS/SLICE-S2-live-feed-reconnect.md (INV-WL-6)

Enforcement trace

Cross-references

Evidence notes

The gate has teeth: adding an AdmissionWirePumpError variant without classifying it fails ci_check_wire_liveness.sh (verified by negative test at registration). SUPPORTING live evidence only (never the reason for enforcement): a sustained preview run 2026-08-01 (~/.cardano-live1/ade-1376-s1s2.log) held the live tip for 8h+ with 1400 consecutive keep-alive round trips, max observed inter-line stall 20.0s (the cadence itself) against the peers ~97s limit, and recovered a deliberate docker restart of cardano-node-preview in 1m48s. Enforcement rests on the named tests + ci/ci_check_wire_liveness.sh, not on this run.