Invariants / CN-SNAPSHOT-02

CN-SNAPSHOT-02

CN derived enforced

A RequestRange covering a slot range that is not entirely present in ServedChainSnapshot MUST return NoBlocks per the Cardano block-fetch protocol's failure semantics — no partial ad-hoc response, no silent truncation, no serving of a strict prefix. Both endpoints + every block between MUST be present in the snapshot for the server to issue StartBatch + Block* + BatchDone.

Source

docs/planning/phase4-n-r-invariants.md §2 (N4); N-R-A A1 OQ8 audit

Cluster
PHASE4-N-R-B
Introduced in
PHASE4-N-R-B

Enforcement trace

Tests 6

  • 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
  • producer_block_fetch_serve_request_range_with_origin_endpoint_yields_no_blocks
  • producer_block_fetch_serve_request_range_empty_in_chain_yields_no_blocks
  • producer_block_fetch_serve_request_range_outside_chain_yields_no_blocks

CI 0

no CI script — gap

Cross-references