The change of wai/one-way-delivery (f1258784d..987625394, 28 commits), on the fix branch: its changelog entries as files of wai/changes/, its wai-conformance.yml edits as step files, corpus files and test tags, and every other file as the branch has it. - 25240c4f0 wai: timeliness — when each object of a group is of use, and whether each holder held it in time - c84992362 wai: timeliness_verify.py — the timeliness corpus's second implementation - 44036fcdc wai: timeliness in the registry, SPEC §5, the changelog and CI; http_receipts.py checks its claims - 27ce6754c wai: claim_verify.py lists not-held-by-deadline, and the claim corpus holds a session that switches for it - 73d8d8eb9 wai: timeliness corpus — each holder's own line in key order, a holder's earliest fallback, and §7.2–§7.3's unreached plan rules - 64c735f0c wai: the files timeliness changes are clippy-clean — a let chain, and the fetch callback's type allowed - b72dc36bf wai: rung price — what delivering a rung costs, by bearer and direction, and which option a comparer takes - 4e905e213 wai: rung_price_verify.py — the rung price corpus's second implementation - 711fa6126 wai: rung price in the registry, SPEC §5, the changelog and CI - 8ab70654e wai: rung price corpus — a refusal for every form rule 1 and §6.1 set, and the neighbour order a plan gives - 1bc465959 wai: rung price ranks energy by checked evidence — a class counts only on the seller's own per-hop records, current and under a confirmed key - 9e97997d9 wai: rung_price — the evidence text bound at its exact sizes, and a key confirmed for another class confirming nothing - 8f1168683 wai: rung price corpus — a key confirmed for another class, the uncertainty product, each edge and order of the evidence verdict, and the evidence a plan read - 7330e26ff wai: rung price — §6.1 links jwp-receipts at its first mention, and §10 says a record's age is its room's word - 12c099457 wai: cache authority — who served what a node holds, and on whose authority - f8f5d3e09 wai: cache_authority_verify.py — the cache authority corpus's second implementation - 354146619 wai: cache authority in the registry, SPEC §5, the changelog and CI; its corpus holds what §12 states - 55c7f3031 wai: timeliness §6 reads holdings records alone; cache-authority §9 derives the lines that read every kind - b8fc6f02b wai: cache authority's lines read records as timeliness does, its deadline claim meets the envelopes held, and its corpus fixes each order and instant - 91c5291cf wai: the files cache authority changes are clippy-clean — a boxed envelope, the base's names named once, slices borrowed - 8e479daff wai: a held envelope boxes both its forms, so neither outweighs the other - 3ec8da807 wai: impression aggregates — ad presentations counted over a bearer with no return path - 0433a35c3 wai: impression_aggregate_verify.py — the impression aggregates corpus's second implementation - 7d8e150e4 wai: impression aggregates in the registry, SPEC §5, the changelog and CI; its corpus states each receipt whole and a control for every malformed file - d5e8ace02 wai: impression aggregates' size bounds are checked at their edge, and §4.3's decides no outcome - 4bc8e13bd wai: impression aggregates' table totals are exact, and a receipt given twice is checked when either occurrence was - 3c9f20524 wai: key_log's two result enums keep their public form, and say so to clippy - 987625394 wai: Item::with_authority and Count::instance_received build only with the feature that calls each Co-Authored-By: Claude Opus 5.5 <[email protected]>
3.3 KiB
live-conformance/cache-authority — who served what a node holds
The corpus of extensions/cache-authority.md §12, in one
file, vectors.json.
Provenance. Generated here by wai_cache_authority_vectors gen (wai-rs, feature
cache_authority), from Ed25519 keys on published seeds of one byte repeated 32 times
(jwp-receipts §7.8), constant instants, and envelopes of 2,000 bytes whose payloads are opaque test
bytes written by the generator; no media and no input from outside this repository.
keys names every key by its role, as 64 lowercase hexadecimal digits: the publisher P
(did:web:publisher.example#d1), the nodes C1 to C8 and the receivers R1 to R4 and R9.
groups gives the link hashes of G (four objects, the tallied group), G9 (nine), GL (labelled
leaves), GX (a group_start that is not a date-time) and GF (four, its object 2 a floor derived
from its object 1). heads holds the two test logs' head revisions, of https://operator.example
and https://other.example; C2 is in neither.
claims(§5) are each aclaim, the signer'searlierclaims in chain order, thecontextit is checked against (a group receipt, another receipt, ornull) and theobjectsheld under it;outcomeisaccept,unchecked(no group: it stops at step 5) orreject step=N reason=….placements(§4.4) are each akey, an instantat_msand theheadsnamed, keyed by origin;outcomeis the placement as §4.4 writes it.verdicts(§7) are each thegroup, theobjects(receipt, and envelope ornull), theclaims, asink's own instance, a statement offered (assertion),count_onlyand theheads;outcomegives each object's and each claim's label, the status,sinks,whole,received_by, the publisher'sbearersand thecachesthat stand, the sink's outcome and the statement's (holdsorreject reason=…), orrefuse reason=…for a group that fails.tallies(§8) are a verdict's inputs, theacknowledgements(each a record and its item lists, in hexadecimal), the holdingsrecords, the object'sindex, adeadline_msor a timelinessdeadline_claim, theregion, thepopulationandmiss_target_ppm;outcomeismetorrefuse reason=miss_target_exceededwith §8.5's figures, orrefuse reason=…for §8.2.lines(§9) are a verdict's inputs, acknowledgements and holdings records, a timelinessclaimand anindex;outcomeis timeliness §6.3's lines for that object's entry, from held-at statements of all three kinds.
Everything is synthetic: keys attest nothing, both key logs are test logs, origins and bearer instances are reserved example domains, and regions are ISO 3166-1's user-assigned codes. Each case states the outcome it was written to have, declared in the generator, never copied from a verifier. §8.1's bound of 1,048,576 keys is carried by no vector (32 MiB of hexadecimal); both implementations check it themselves.
wai_cache_authority_vectors verify and tests/cache_authority.rs check that the file regenerates
byte for byte and that wai-rs reaches every stated outcome. ../cache_authority_verify.py is the
second implementation, written from the extension's text, which also mutates copies of the corpus
and drops each of its own checks in turn and requires each to be caught.