open-standards/wai/live-conformance/worlds
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science 376668c58b wai.live.world: the independent verifier, and the text made exact where it read two ways
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]>
2026-10-25 23:17:33 -04:00
..
README.md wai.live.world: the extension text, the wai-rs module and its corpus 2026-10-25 23:04:20 -04:00
vectors.json wai.live.world: the independent verifier, and the text made exact where it read two ways 2026-10-25 23:17:33 -04:00

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