Invariants / DC-CONSENSUS-01

DC-CONSENSUS-01

DC derived enforced

Chain selection is deterministic and matches Haskell node behavior

Source

Project constitution §3, T-DET-01, T-CORE-01

Enforcement trace

Tests 26

  • higher_block_no_wins
  • equal_block_no_tiebreaker_decides
  • fork_before_immutable_tip_rejected
  • exceeded_rollback_rejected
  • tiebreaker_loss_keeps_current
  • replay_is_deterministic
  • reject_reason_bytes_are_stable
  • no_candidates_returns_error
  • consensus::fork_choice::tests::tiebreaker_prefer_lower_slot_wins
  • consensus::fork_choice::tests::tiebreaker_prefer_higher_op_cert_wins_on_equal_slot_and_issuer
  • consensus::fork_choice::tests::tiebreaker_prefer_lower_vrf_value_wins_on_full_tie
  • rollback_within_k_succeeds
  • rollback_exceeding_k_rejected_with_typed_reason
  • rollback_before_immutable_tip_rejected
  • rollback_event_bytes_are_stable
  • rollback_is_deterministic
  • rollback_equivalent_to_truncated_replay
  • consensus::chain_selector::tests::header_arrival_updates_state_and_selector
  • consensus::chain_selector::tests::rollback_walks_back_via_recent_snapshots
  • consensus::chain_selector::tests::rollback_to_block_older_than_snapshots_rejected
  • consensus::chain_selector::tests::epoch_boundary_emits_no_event
  • synthetic_session_replays_identically
  • synthetic_session_event_kinds_match_corpus
  • synthetic_session_final_state_matches_corpus
  • op_cert_regression_header_rejected_mid_stream
  • cardano_node_session_sustained_window

Cross-references

Strengthened in

Evidence

  • crates/ade_testkit/tests/consensus_stream_replay.rs drives a canonical stream of HeaderArrival / RollBack / EpochBoundary inputs through the GREEN chain-selector orchestrator and asserts replay equivalence (CE-N-B-5)

  • crates/ade_core_interop/tests/live_consensus_session.rs gates the live-peer evidence pass against a pinned cardano-node 11.0.1 (CE-N-B-6, #[ignore] by default, operator-driven)