Spaces:
Running
Running
| from __future__ import annotations | |
| import hashlib | |
| from typing import Any | |
| from constitutional_constants import HEADER_SIZE, LAMBDA, OMEGA, PHI, QBEC_VERSION, SIGMA | |
| from shared.serialization import safe_json_dumps | |
| def build_header(phase: str, rdod_value: float, frac: float, node_id: str, state: dict[str, Any] | None = None) -> bytes: | |
| digest_source = state if state is not None else { | |
| "phase": phase, | |
| "rdod": round(rdod_value, 8), | |
| "frac": round(frac, 8), | |
| "node_id": node_id, | |
| } | |
| digest = hashlib.sha256(safe_json_dumps(digest_source, sort_keys=True).encode("utf-8")).hexdigest()[:32] | |
| raw = ( | |
| f"{QBEC_VERSION:<10}" | |
| f"{SIGMA:4.1f}" | |
| f"{LAMBDA:<16}" | |
| f"{phase:<16}" | |
| f"{rdod_value:8.4f}" | |
| f"{frac:8.4f}" | |
| f"{node_id:<16}" | |
| f"{OMEGA:10.2f}" | |
| f"{PHI:8.5f}" | |
| f"{digest:<32}" | |
| ) | |
| return raw[:128].ljust(HEADER_SIZE).encode("utf-8") | |
| def verify_header(header: bytes) -> tuple[bool, dict[str, Any] | str]: | |
| if len(header) != HEADER_SIZE: | |
| return False, "L3_REJECT: Header size != 144" | |
| text = header.decode("utf-8") | |
| if text[14:30].strip() != LAMBDA: | |
| return False, "L1_REJECT: Lattice lock mismatch" | |
| try: | |
| sigma_value = float(text[10:14].strip()) | |
| except ValueError: | |
| return False, "L2_REJECT: Invalid sigma" | |
| if sigma_value != SIGMA: | |
| return False, "L2_REJECT: Sovereignty violation" | |
| return True, { | |
| "version": text[0:10].strip(), | |
| "sigma": sigma_value, | |
| "lambda": text[14:30].strip(), | |
| "phase": text[30:46].strip(), | |
| "rdod": float(text[46:54].strip()), | |
| "frac": float(text[54:62].strip()), | |
| "node_id": text[62:78].strip(), | |
| "omega": float(text[78:88].strip()), | |
| "phi": float(text[88:96].strip()), | |
| "merkle": text[96:128].strip() | |
| } | |