sim-lib-journal
sim-lib-journal is SIM's domain-free canonical journal. A logical entry is a
journal/entry-v2 Datum; its core/sha256-datum-v1 identity links the next
entry and determines the public head. Payload ids likewise name semantic
values. Exact-byte storage ids, namespaces, and locators stay inside the
backend.
The host backend reads both native generations. It verifies retained
SIMJSTATE1 entries and byte-addressed payloads under their original laws,
then derives the canonical chain without rewriting the old bytes. The first
writer reserves a fresh namespace and uses one state CAS to select the verified
prefix, format, fence, canonical head, and locator. V2 entry leaves include the
sequence, full canonical entry id, and storage id, so a losing writer cannot
reserve a winner's sequence path. Replay follows the committed locator closure;
directory order and orphan leaves carry no authority.
PersistentObjectStore provides owned-return Datum persistence over that
same object backend. StoredDatumRef keeps the semantic and storage identities
separate, and its derived correspondence index can be rebuilt and verified.
use Arc;
use Datum;
use ;
let backend = new;
let mut objects = open.unwrap;
let stored = objects.put.unwrap;
assert_eq!;
assert_eq!;