Invariants / DC-PUMP-02

DC-PUMP-02

DC derived enforced

A CLOSED authority event is emitted on every chain-sync reply carrying a Tip: TipUpdate for IntersectFound / IntersectNotFound / RollForward; the DISTINCT AdmissionPeerEvent::RollBackward for RollBackward (PHASE4-N-AI AI-S4a -- a rollback is NEVER represented as a TipUpdate only; it is the closed fork-choice / durable-rollback signal carrying the peer's post-rollback tip). The runner's next verdict::derive / fork-choice call sees the freshest peer comparison input. (PHASE4-N-AN gate triage refined the RollBackward case to the AI-S4a event; the "closed event per reply" invariant is preserved -- the RollBackward reply's closed event is its own variant, not a generic TipUpdate.)

Source

docs/planning/phase4-n-m-c-operator-pass-invariants.md §1 (I-C7); refined for PHASE4-N-AI AI-S4a in the PHASE4-N-AN gate triage

Enforcement trace

Tests 3

  • admission::wire_pump::tests::pump_emits_tip_update_and_request_next_on_intersect_found_no_block_fetch
  • admission::wire_pump::tests::pump_emits_tip_update_on_intersect_not_found
  • admission::wire_pump::tests::rollforward_drives_block_fetch_then_request_next

Cross-references

Strengthened in