Skip to content

v0.5.3 — Epoch 10: the first consumer

Latest

Choose a tag to compare

@parthod0x parthod0x released this 23 Oct 14:30
· 7 commits to main since this release
v0.5.3

The first epoch whose record was produced by a party that will pay for the anchor.
Two signed attestations from another system — real paid transaction-status records
on a public chain, system id NAXYTRA-ATTESTATION/1 — bound into a reality sandwich
and mined into block 1365.

The round trip, and why it needed two new scripts

Every earlier external binding ran in one script because the record was local. This
one is a round trip: the session opens here, the tag goes out, the other party signs
its records with the tag inside the signed bytes, and the digests come back. So
the ritual is now two halves — scripts/open_binding_session.py and
scripts/close_binding_session.py — and the closer refuses to re-mint anything: a
fresh B0 would orphan whatever the other party had already bound to the first tag.

Each digest was recomputed here from the public source's RFC 8785 form before
binding, and the tag confirmed inside each signed object. The bundle carries digests
only; the records' content never enters this repository.

B0            1364
records       2 (seq 0, seq 1), each its own EXTERNAL-RECORD/v1 blob
witnesses     five NTP operators, two exchanges each, every nonce echoed
checkpoint    epoch 10, chained to epoch 9
C             1365, found on round 1
burial        2 at assembly (the chain stands at 1368)
verdict       SANDWICH_PASS
bundle        vectors/valid/naxytra-binding-bundle.cbor
              sha256 dc14bc557abc666288950220ff2117012dd9a90106434a404735f012010947a5
OTS           .ots stamped at four calendars, pending Bitcoin attestation

A decision recorded rather than made quietly

With the laboratory VM idle for two days, publishing at burial depth 0 was
considered and a dry run assembled. The verifier returned SANDWICH_PASS_UNBURIED
— the binding held, but depth is fixed inside the bundle bytes, so the artifact would
have read UNBURIED permanently while every other shipped epoch reads
SANDWICH_PASS. Held for two blocks instead. That is why the verifier has a named
verdict for the case: so the choice is visible, not silent.

Epoch 9

Not in this repository. It was bound through this protocol by a downstream
repository that records its own binding. This repository does not list its
consumers, so the table in the README goes 8 → 10, and says so.

Also in this release

capture_retarget.py --refresh now restamps the one manifest line it changes, so a
refresh-then-verify no longer reports a false FAIL (v0.5.1-era defect, mine). A
second round-trip session is open for a different system id and its first record is
verified and closed as epoch 11, awaiting burial; it publishes separately.

Not claimed

That the other system's records are meaningful — the sandwich bounds a digest in
time, and whether the record it names is true is that system's question. That the
OTS proof is attested — it is pending. Operator diversity on the anchor chain.