Goal. Hand a third party everything needed to verify files, stamps, chains, and daily anchors — fully offline, plain ASCII.
What to ship (normative, minimal)
A) Core verifiers (Python, stdlib-only)
ssmclock_core.py,ssmclock_verify.py,ssmclock_check_ledger.pyssmclock_rollup_from_sidecars.py,ssmclock_verify_anchor.pyssmclock_resync_from_sidecars.py,ssmclock_chainwalk_rebuild.py
B) Stamp/verify wrappers (CMD)
22_ssmcs_verify.cmd,25_ssmcs_check_ledger.cmd24b_ssmcs_rollup_from_sidecars.cmd,24c_ssmcs_verify_anchor.cmd,24d_ssmcs_anchor_note.cmd33_ssmcs_verify_all.cmd,33a_ssmcs_verify_one.cmd
C) One-screen spec note (TXT)
- Include the three core lines (copy-paste ASCII):
Stamp line: SSMCLOCK1|iso_utc|rasi_idx|theta_deg|sha256(file)|chain[|kv:...]]
Chain rule: chain_k = H_chain( ascii(chain_{k-1} + "|" + stamp_core) ) with chain_0 = "0"*64
Roll-up: rollup_D = sha256( ascii(Stamp_1 "|" ... "|" Stamp_n) ) # canonical sort
- Note that the label
sha256(file)is historical; the value useskv:algoif present (defaultsha256).
D) Samples (optional, recommended)
- 2–4 tiny files with sidecars and a mini ledger for quick PASS checks.
E) Integrity for the pack itself
verify_pack.zipandverify_pack.zip.sha256.txt(ASCII, 64-hex digest).
F) Policy manifests (recommended)
POLICY.txt(leap-second stance),ALGO.txt(enabled digests),FORMAT.txt(theta_prec, float model).- Optional joined commitment:
policy_sha256 = sha256( ascii(POLICY.txt|ALGO.txt|FORMAT.txt concatenation) )
Pack layout (suggested)
verify_pack.zip
verify_pack.zip.sha256.txt # two lines: size_bytes=..., sha256=...
README_SSM-CS.txt # one-screen, copy-friendly
tools/ # .py verifiers
cmd/ # .cmd wrappers
samples/ # tiny files + sidecars + mini ledger (optional)
policy/ # POLICY.txt, ALGO.txt, FORMAT.txt (optional)
Receiver’s quick path (offline, ASCII)
- Check the pack hash
Computesha256(file_bytes_of_zip)and compare toverify_pack.zip.sha256.txt. - Unzip and smoke-test
Run the verify wrapper on a sample file → expectVERDICT=PASS. - Check ledger continuity
Run the ledger checker → expectLEDGER_OK=true. - Check anchor parity (one UTC day)
Recompute both ways (ledger and sidecars). Expect:rollup_D(ledger) == rollup_D(sidecars)and counts match. - Optional resync
Rebuild ledger from sidecars startingchain_0 = "0"*64; the new ledger should match previous anchors. - Optional policy witness
Recomputepolicy_sha256if manifests are included.
Navigation
Back: SSM-Clock Stamp – Conformance Checklist (7.3)
Next: SSM-Clock Stamp – Build & (Optionally) Sign the Verify Pack (8.2)