Invariants / CN-SNAPSHOT-02
CN-SNAPSHOT-02
CN derived enforcedA 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