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]>
5.1 KiB
live-conformance/prices — what delivering a rung costs, and which option a comparer takes
The corpus of extensions/rung-price.md §9: vectors.json.
Provenance. Generated here by wai_rung_price_vectors gen (wai-rs, feature rung_price),
from Ed25519 keys on fixed 32-byte seeds and constant instants; no input from outside this
repository. Every signature is deterministic (RFC 8032) but one: same_body_two_signatures signs
unicast_tiers's body a second time under a fixed, different nonce prefix, which is still a valid
signature of the same body under the same key.
keys names every key by its role, as 64 lowercase hexadecimal digits: seller_unicast (A,
two-way delivery and rooms), seller_broadcast (B, transmissions), seller_c and seller_d (the
sellers the limit and ranking cases add), seller_contribution (uplink), seller_other_currency
(the one list in EUR), five holders (holder_a to holder_e) that price their bytes as peers, of
which holder_d's list lapses a minute after issue and holder_e's prices only XA, seller_e
(a second calibrated relay), seller_f (a relay that prices from a model), seller_g (a seller
whose class its records do not bear out), room_authority (signs the two room descriptors), and
small_order, the identity point.
Instants are microseconds. Lists are issued at 1,793,664,000,000,000 (2026-11-03T00:00:00Z) and
expire a day later unless a case says otherwise; comparisons are made an hour after issue. The
currency is USD. Every region is an ISO 3166-1 user-assigned code (XA, XB, XC) or a
subdivision of one (XA-1, XB-1), and names no place. The footprint of 8,192 codes is the
subdivisions 000 to 511 of each of XA to XP, in byte order; the one of 8,193 adds XQ-000.
The per-hop records are of two rooms, both signed by room_authority. R1's t0 is a day before
issue (1,793,577,600,000,000), and R0's thirty days before it (1,791,072,000,000,000). Each record
covers its room's first hour, so a record of R1 has the instant 1,793,581,199,999,999 and one of R0
the instant 1,791,075,599,999,999. Each record is signed by its hop's key, one of seller_c,
seller_d, seller_e, seller_f and seller_g; seller_g also names seller_c's and
seller_d's records, which it did not sign, and seller_c names one of seller_g's. One of
seller_c's records counts media bytes it received beside those it sent. rc2 and R1 are each also
given once with their last byte changed, a copy whose signature fails. The base request confirms
seller_c and seller_e for CalibratedInstrument, seller_d for OnChipCounter and seller_f
for ModelBased, and relies on records up to seven days old; a case that confirms another key or
class, or relies on records up to a day old, says so.
lists(§4) are each a list'stextand itsoutcome:read, with itsdigest,sellerand count ofentries; orrefuseand itsreason.verdicts(§5) are eachtextsand an instantat_us;outcome.listsgives each text's verdict, in order:stands,superseded,set-aside reason=…orreject reason=….comparisons(§6) are eachtexts, an instantat_us, arequesttext andevidence, the texts given as evidence, as lowercase hexadecimal, in ascending order of the digest each names, and of their bytes for one digest;outcomeisrefuseand itsreason, or the plan of §6.6:request(its digest),at_us,lists(eachverdictanddigest),evidence(the digests of the records and rooms those texts give, a damaged copy giving none),audience,candidates(each with itsenergy_ppm,evidenceandenergy_rank),orderanddecision.
The comparisons use A's 8,000,000 tier, bytes at 20,000,000 per 10⁹, and B's unidirectional
8,000,000 tier, bytes_sent at 100,000,000 per 10⁹. Most requests ask for 500,000,000 bytes per
receiver and 500,000,000,000 bytes_sent per transmission, for a rung of 3,000,000 and passes of
6,000,000 bits per second, to XB: a cost per receiver of 10,000,000 against T = 50,000,000,000,
and a break-even audience of 5,000. A's and B's figures are estimates.
Everything is synthetic: keys attest nothing, and prices and figures are chosen for their arithmetic. Each case states the outcome it was written to have, declared in the generator, never copied from a verifier: the removals, the order, the decision, the break-even and each candidate's evidence of each comparison are written out case by case, and its costs, energies and energy ranks are §6.3's and §6.4's arithmetic over the entries and the declared evidence. No vector carries the bounds of a list of 1,048,577 bytes, a list of 1,025 entries, a request of 65,537 bytes or an evidence text of 1,048,577 bytes; both implementations check them themselves.
wai_rung_price_vectors verify and tests/rung_price.rs check that the file regenerates byte for
byte and that wai-rs reaches every stated outcome. ../rung_price_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.