rialo-s-program-runtime 0.23.0-alpha.0

Solana program runtime
Documentation
# 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.