A small standard-library Python verifier for TimeLayer public /live/canon receipts.
Website placeholder: timelayer.io
The verifier fetches http://<node>:47821/live/canon, parses the JSON receipt, and checks the fields exposed by the real /live/canon schema.
A receipt is VERIFIED when all required checks pass:
canon_holdingistrue.resultisPASSorstatusisPASS.node_idexists and is not empty.timestamp_utcexists and is not empty.peer_pairs_checkedexists and is an integer greater than0.pairs[]exists and contains at least one pair wherecanon_holdingistrue.
The verifier does not check snapshot_sequence_number or staleness_seconds in /live/canon. Those fields are not part of the current /live/canon response surface and belong to other status surfaces when available.
- Python 3.6+
- No third-party dependencies
Verify one node:
python3 verifier.py --node 128.140.100.56Verify all built-in public nodes with the default threshold of 4 verified nodes:
python3 verifier.py --all-nodesVerify all built-in public nodes with an explicit threshold:
python3 verifier.py --all-nodes --min-verified 4Show help:
python3 verifier.py --help| Node | IP |
|---|---|
| Web4 | 128.140.100.56 |
| Asia | 5.223.66.154 |
| Liquid | 46.224.191.167 |
| USAE | 5.161.247.5 |
| node5 | 5.78.114.42 |
| node6 | 204.168.227.86 |
The current open verifier threshold is 4/6 verified nodes in all-node mode. Web4, Asia, Liquid, and USAE are expected to verify when their canon_holding remains true.
NODE5_NODE6_CANON_STABILIZING: node5 and node6 may return NOT_VERIFIED while their canon windows stabilize after key registry distribution. This is expected for newly added nodes and is reported explicitly rather than treated as a publication blocker when at least four nodes verify.
Single node mode prints the fetched receipt followed by a verdict:
NODE custom 128.140.100.56
URL http://128.140.100.56:47821/live/canon
...
VERDICT VERIFIED
All-node mode prints a compact table and threshold summary:
SUMMARY verified_count=4/6
SUMMARY canon_holding_count=4/6
SUMMARY min_verified=4
SUMMARY threshold_pass=YES
The examples/ directory contains real /live/canon JSON responses fetched from the six public TimeLayer nodes during publication.
MIT