Concept
Deterministic network state
Determinism is RAHN's first non-negotiable rule: the same inputs produce byte-identical states, ids, and reports on every machine, every run. Not "usually the same" — identical, and enforced by tests, not by intention.
What determinism means here
Three concrete guarantees:
- State determinism — applying the same transitions to the same starting state yields a byte-identical canonical serialization.
- Identity determinism — the resulting content address is stable across machines, operating systems, and time (research question RQ1, tested by cross-platform CI runs).
- Report determinism — verification reports, diffs, and execution plans are reproducible outputs, so a CI gate on
rahn testmeans the same thing on every runner.
How RAHN achieves it
Determinism is achieved by exclusion and structure, not by effort:
- No nondeterministic iteration order — canonical serialization imposes total ordering (objects are sorted; encoding is order-independent by construction).
- No timestamps as logic, no wall clock, no RNG, no hidden global mutable state — the project rules forbid them in the core; where time appears (observations), it is explicit, ordered, and never affects state identity.
- Explicit transitions — a closed vocabulary of operations, applied purely: the input state is never touched, and each operation produces a new state value.
- Seeded, reproducible tests — property tests use seeded PRNG inputs; a failure replays exactly from its seed.
The reproducibility document records what is reproducible, how it is tested, and what is not yet (binary build reproducibility is an honestly labeled gap).
Why it matters
Determinism is what turns network state into something you can reason about jointly with other people and machines. Without it, "verified" means "verified on my laptop"; diffs are ambiguous; branches cannot be merged with confidence; and a CI gate is theater. With it, a state id is a shared fact — which is the foundation for content addressing, causal attribution, and peer synchronization.
The cost, honestly
Canonical serialization, content hashing, and explicit transitions cost CPU and storage, and immutable history grows until pruning is designed. These are recorded as known costs in the limitations baseline, not hidden. Determinism also has an ergonomics tax: explicitness is more work than editing live configs.
Where to go next
- Network state — the value being made deterministic
- Content addressing — identity from canonical bytes
- Research — RQ1 and the E1 cross-platform determinism experiments
- Serialization specification — the normative encoding