| Filename | Latest commit message | Latest commit date |
|---|---|---|
live_worlds_verify.py is the corpus's second implementation, written from the extension's text and the sections it cites, sharing no code with wai-rs; it agrees with the reference on every vector. Writing it found readings the text left open, now closed: a CausalOp's integers are little-endian and its signature is over the domain then the preceding bytes (interactive-worlds 5.1); a world track's receipts are a track's, not interactive-worlds 8's session receipts; the order of the descriptor, grant and statement checks; the group total is checked; a private world's first opened object above group 0 starts its chain; the session hash chains each op with its signature; the outcome lists the actors whose ops were admitted. The corpus gains a group-total refusal, and section 12 states which codes it covers. Co-Authored-By: Claude Opus 5.5 <[email protected]> |
||
| .. | ||
| README.md | ||
| vectors.json | ||
live-conformance/worlds — live worlds
The corpus of extensions/live-worlds.md §12: rooms of
live-rooms with a world statement (WLW1), the world tracks
their actors publish, and what a verifier states of them.
World equivalence. For each vector, a conforming verifier given its descriptor, grants,
statement, private flag and tracks (§9.1) reaches the expect the vector states: for an
accepted world, its session_hash, the number of admitted ops and each actor's count under
actors (§9.4); for a refused one, its reason and at ("descriptor", "statement",
{"grant": i} or {"track": i, "group": g}). Each track gives its owner and its objects in
group order, each with its group, its receipts (the receipts track's object of that group,
in the binary form of jwp-receipts §2.7.3), the payload
its receipt covers and, in a private world, the op batch that opened from it. about says
what each vector is, and is not checked. A verifier that reaches another outcome, hash, count,
reason or place does not conform.
Provenance. Generated here: wai_live_world_vectors gen writes vectors.json from worlds
authored in code, from fixed seeds. Each key is SHA-256 of wai:live-world/corpus/key, a zero
byte and the principal's index (principals lists their public keys). Every receipt is signed
in the labelled form a room's publisher signs, with the unmetered marker as its figure. In a
private world the corpus holds no key, since opening is
confidentiality's and its corpus is ../e2ee/: each
payload is a stand-in for the sealed bytes (sealed_stand_in says how it is made), the
receipt is over it, and opened is the batch. Ed25519 is deterministic, so the file is the same
bytes on every machine. The generator asserts that each vector reaches the outcome it was
written to have, and that the corpus gives every reason of §11 a verifier raises
(world_incomplete is a participant's report on its own copy, §7, and no vector carries it),
before it writes. No recorded data.
cargo run -q --no-default-features --features live_world --bin wai_live_world_vectors -- gen ../live-conformance/worlds
cargo run -q --no-default-features --features live_world --bin wai_live_world_vectors -- verify ../live-conformance/worlds
python3 -I live_worlds_verify.py worlds