DC-NODE-13
DC derived enforcedServed view is a durable-chain projection. The ChainView served to followers (ChainSync header advertisement + BlockFetch body) is a deterministic PROJECTION of the durable adopted chain -- including any feed-ingested predecessor -- not an independent accumulator. Once own-forged blocks are durably admitted (DC-NODE-12), the served view follows the durable chain so a follower can fetch coherent history (the durable chain says A -> B; the served view serves A and B, never B without A). SUPERSEDES the PHASE4-N-F-G-R monotone serve-gate workaround (which gated an accumulator) with serve-as-projection.
- Source
docs/planning/phase4-n-u-forged-block-durability-invariants.md; docs/clusters/PHASE4-N-U/S3-serve-as-durable-chain-projection.md
- Introduced in
- PHASE4-N-U
Enforcement trace
Code
Tests 3
- served_view_projects_durable_chain
- follower_fetches_coherent_history_incl_ingested_predecessor
- served_view_retires_accumulator
Cross-references
Strengthened in
Evidence notes
PHASE4-N-U S3 (2026-06-05). ENFORCED. The --mode node served view is a RED read-only projection of the durable ChainDb: ChainDbServedSource (crates/ade_runtime/src/network/served_chain_projection.rs) implements the BLUE serve seams ServedHeaderLookup + ServedRangeLookup over &dyn ChainDb (iter_from_slot/get_block_by_hash/tip; decode_block for block_no/era; the single block_header_bytes / DC-CONS-18 header authority; stored.bytes served verbatim, no re-encode). The single serve-dispatch authority dispatch_server_frame_event_to_outbound reads a ServedChainSource enum (Snapshot for --mode produce / DurableChainDb for --mode node) — DC-NODE-07 preserved (one dispatch, two read sources). run_node_serve_task serves over an Arc