Invariants / DC-CONS-03

DC-CONS-03

DC derived enforced

Praos chain selection ordering: block number first, then Praos TiebreakerView (slot, issuer, op-cert issue number, VRF output). Density-based ordering is reserved for Genesis/catch-up and must not be used for caught-up Praos fork-choice.

Source

Project constitution §3, ouroboros-consensus (pin at code-lock); CN-CONS-01

Enforcement trace

Tests 15

  • 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
  • consensus::fork_choice::tests::no_candidates_returns_no_candidates_error
  • consensus::fork_choice::tests::equal_to_current_keeps_current_via_tiebreaker_loss
  • consensus::candidate::tests::tiebreaker_view_eq_is_field_wise
  • consensus::candidate::tests::candidate_fragment_carries_anchor_block_no
  • 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

Cross-references

Strengthened in