Invariants / DC-CONS-17

DC-CONS-17

DC derived enforced

Block bytes delivered via producer-side block-fetch Block{bytes} are byte-identical to AcceptedBlock.as_bytes() for the AcceptedBlock that cleared self_accept. The producer-side server never re-encodes.

Source

docs/planning/phase4-n-a-successor-invariants.md §1 (I-1)

Cluster
PHASE4-N-G
Authority surface
producer-side block-fetch wire-byte transmission

Enforcement trace

Tests 5

  • producer_block_fetch_serve_block_bytes_equal_accepted_block_as_bytes
  • session_transcript_served_block_bytes_equal_admitted_accepted_block_bytes
  • n_r_b_partial_overlap_from_endpoint_not_in_snapshot_yields_no_blocks
  • n_r_b_partial_overlap_to_endpoint_not_in_snapshot_yields_no_blocks
  • n_r_b_partial_overlap_both_endpoints_fabricated_yields_no_blocks

Cross-references

Strengthened in

Evidence

  • End-to-end transcript test session_transcript_served_block_bytes_equal_admitted_accepted_block_bytes asserts every Block{bytes} payload in a corpus-driven transcript equals the admitted AcceptedBlock.as_bytes() at its (slot,hash) key.

  • CI gate ci_check_block_fetch_server_closure.sh enforces that producer_block_fetch_serve sources Block{bytes} only through served.range_bytes (positive grep).