# rialo-s-program-runtime
## Classification
This crate is **Objective** per
[`NORTHSTAR-objective-v-subjective`](../../../protocol/NORTHSTAR/NORTHSTAR-objective-v-subjective.md)
§1 and §8.
**What it is.** The per-transaction program-execution runtime: it dispatches
instructions to builtin and RISC-V programs, tracks the per-block set of
active on-chain features, exposes sysvars and account state to the program
being executed, and enforces the compute budget for the instruction stream.
**Properties that MUST hold (§8):**
- **Determinism (test 1).** Given the same transaction, the same per-block
active-feature snapshot, and the same committed account and sysvar state,
every validator MUST produce the same program-dispatch decision and the
same instruction execution result.
- **Closed input (test 2).** Instruction execution MAY read only the
transaction's own accounts, the per-block active-feature snapshot derived
from committed on-chain state, sysvar values populated from committed
account data, and the consensus-committed per-block random seed. It MAY
NOT read any per-node state, wall-clock time, or external input.
- **Authority by construction (test 3).** An instruction's execution result
MUST be authoritative for every validator that processed the same
transaction against the same committed state, with no additional
validation once produced.
## Bundled control-plane surface
Per §9, this crate bundles a control-plane management surface alongside its
Objective computation: the program-loading cache (`ProgramCache` and its
per-transaction views) and its usage/eviction statistics. This surface is not
persisted, is not shared across validators, and its eviction policy is
explicitly randomized per validator — a validator's local cache contents MAY
differ from every other validator's at any time. A cache miss re-loads and
re-verifies the same on-chain program bytes; it does not change what those
bytes compute. Bundling this cache alongside the Objective dispatch path does
not reclassify the component; only instruction dispatch and execution are
Objective.