"""Проверка цепочки сигналов CL-Zone: python3 verify.py chain.jsonl"""
import hashlib, json, sys
prev, n = "0" * 64, 0
for n, line in enumerate(open(sys.argv[1] if len(sys.argv) > 1 else "chain.jsonl"), 1):
    r = json.loads(line)
    h = r.pop("hash")
    body = json.dumps(r, sort_keys=True, ensure_ascii=False)
    if r.get("prev") != prev or hashlib.sha256((prev + "\n" + body).encode()).hexdigest() != h:
        sys.exit(f"строка {n}: цепочка нарушена")
    prev = h
print(f"цепочка цела, событий: {n}, голова {prev}")
