Invariants / DC-CONS-24

DC-CONS-24

DC derived enforced

Forged parent hash byte-equals the peer-visible selected tip. The forged successor's prev_hash byte-equals the followed peer tip hash AND its block_no == followed_tip.block_no

    1. Parent identity is the canonical hash, never inferred from block number alone.

Source

docs/clusters/PHASE4-N-AE/cluster.md; docs/clusters/PHASE4-N-AE/slices/AE.A.md

Introduced in
PHASE4-N-AE

Enforcement trace

Tests 1

  • forge_on_followed_tip_proceeds_with_parent_byte_equal

Cross-references

Evidence notes

PHASE4-N-AE.A (2026-06-06). ENFORCED. When the forge is admissible (CaughtUp), the ForgeTick arm forges on selected_tip = ChainDb::tip() = the durable servable tip, which equals the followed peer tip (DC-NODE-15). forge_header_position sets the successor prev_hash = PrevHash::Block(selected_tip.hash) and block_no = last_block_no + 1, so the forged parent hash BYTE-EQUALS the peer-visible selected tip and block_no == followed_tip.block_no + 1. Test forge_on_followed_tip_proceeds_with_parent_byte_equal reads the forged prev_hash from the inner Conway header body (preserved CBOR, never inferred from block_no) and asserts byte-equality to the followed peer tip hash + block_no + 1. Gate: ci_check_forge_followed_tip_admission.sh (assertion (b): the classifier compares hash AND block_no).