SSM-Clock Stamp – Operational Cautions (3.8)

Purpose. A compact MUST/SHOULD checklist for anchoring operations in plain ASCII so every auditor reproduces identical results.

SHALL (must)

  • Use UTC day keys only: iso_utc = "YYYY-MM-DDThh:mm:ssZ" (seconds only, no offsets/subseconds).
  • Serialize stamps with literal | separators, no spaces, no leading/trailing |.
  • Compute anchors with: rollup_D = sha256( ascii(Stamp_1 "|" ... "|" Stamp_n) ) after canonical sort by (iso_utc, stamp_core, chain).
  • Print angles with exactly theta_prec digits (default 5) using IEEE-754 binary64 round-half-to-even; compare angles as strings.
  • Emit digests as lowercase 64-hex [0-9a-f]{64}.
  • Reject leap seconds: no stamping at 23:59:60.
  • Recompute chain_k per link using each row’s declared algorithm:
    chain_k = H_chain( ascii(chain_{k-1} + "|" + stamp_core_k) ) with chain_0 = "0"*64.
  • Treat unknown kv: keys as ignorable (forward-compatible); duplicate keys are invalid.
  • Enforce float = ieee75464 whenever a kv: tail is present; any other value → FAIL.

SHOULD (recommended)

  • Publish anchors on a regular cadence (e.g., daily) to bound backdating:
    max_backdating_window_sec <= anchor_period_sec.
  • Include both count=<n> and source=<ledger|sidecars> in the anchor note.
  • Keep all content ASCII (7-bit) to simplify cross-platform verification.
  • Include stamps exactly as recorded (carry any kv: tail unchanged).
  • Keep algo and chain_algo consistent within a ledger for operational simplicity (mixing is allowed but increases audit work).
  • When multi-device stamping is expected, include provenance keys (non-breaking):
    kv:chain_id=<8hex>, kv:device=<token> with [A-Za-z0-9._-]{1,32}.
  • When verifying observed-time sidecars, normalize \r\n to \n before hashing the evidence concatenation for obs_evidence_sha256.

Navigation
Back: SSM-Clock Stamp – Failure Modes & Guidance (3.7)
Next: SSM-Clock Stamp – Rationale (3.9)