Invariants / DC-CORE-01

DC-CORE-01

DC derived enforced

BLUE authoritative crates are sync-only: no async fn, .await, tokio::, async_std::, Future, futures::, task spawning, async channels, or timers. Async runtime concerns are confined to RED transport/runtime code.

Source

Project constitution §2, T-CORE-02; PHASE4-N-A scope decisions §Decision 2 (docs/active/PHASE4-N-A_scope_decisions.md)

Enforcement trace

Tests 5

  • consensus::chain_selector::tests::header_arrival_updates_state_and_selector
  • consensus::chain_selector::tests::rollback_walks_back_via_recent_snapshots
  • consensus::chain_selector::tests::rollback_to_block_older_than_snapshots_rejected
  • consensus::chain_selector::tests::epoch_boundary_emits_no_event
  • cardano_node_session_sustained_window

Cross-references

Strengthened in

Evidence

  • crates/ade_runtime/src/consensus/chain_selector.rs is the GREEN orchestrator that bridges BLUE ade_core::consensus transitions to RED N-A network inputs; BLUE never receives sockets or tokio types — verified by code_locus partitioning and ci_check_no_async_in_blue.sh

  • crates/ade_core_interop is the RED live-peer driver crate; it depends on ade_core only via the typed Orchestrator surface and never on internal BLUE modules