Invariants / DC-CONS-10

DC-CONS-10

DC derived enforced

A header's op-cert issue counter must be >= the highest observed counter for the same (pool, kes_period). Regression yields HeaderInvalid with a typed OpCertCounterError reason; ChainDepState never accepts a regression.

Source

Project constitution §3, ouroboros-consensus OperationalCertificate

Enforcement trace

Tests 16

  • consensus::op_cert::tests::apply_op_cert_inserts_first_observation
  • consensus::op_cert::tests::apply_op_cert_advances_existing_strictly
  • consensus::op_cert::tests::apply_op_cert_accepts_equal_counter_as_noop
  • consensus::op_cert::tests::apply_op_cert_rejects_lower_counter
  • consensus::op_cert::tests::apply_op_cert_independent_kes_periods_dont_collide
  • consensus::op_cert::tests::apply_op_cert_independent_pools_dont_collide
  • consensus::op_cert::tests::apply_op_cert_does_not_touch_nonces
  • consensus::op_cert::tests::apply_op_cert_does_not_touch_last_slot_or_block_no
  • consensus::praos_state::tests::op_cert_upsert_rejects_regression
  • consensus::praos_state::tests::op_cert_upsert_accepts_equal_counter_as_noop
  • consensus::praos_state::tests::op_cert_upsert_accepts_monotonic_increasing
  • normal_progression_records_highest_counter_per_window
  • regression_after_progression_rejected_with_typed_error
  • op_cert_replay_is_deterministic
  • header_with_op_cert_regression_rejected
  • valid_header_accepted_advances_state

Cross-references

Strengthened in