Invariants / DC-CONS-03
DC-CONS-03
DC derived enforcedPraos 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
Code
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