Archive MaleCNS research sources, provenance, bibliography and immutable data inventory
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Read-only frozen-integrity verification and final Phase 4P sealing."""
|
||||
from __future__ import annotations
|
||||
|
||||
import hashlib
|
||||
import json
|
||||
import shutil
|
||||
import time
|
||||
from pathlib import Path
|
||||
|
||||
import yaml
|
||||
|
||||
import phase4p_validate
|
||||
from phase4h_audit import verify_checksum
|
||||
from phase4k import dataset_checks
|
||||
from phase4m import frozen_checks, frozen_hashes
|
||||
from phase4n import load_config
|
||||
|
||||
|
||||
ROOT = Path("/data/digital-drosophila")
|
||||
|
||||
|
||||
def save(path: Path, value: object) -> None:
|
||||
path.parent.mkdir(parents=True, exist_ok=True)
|
||||
path.write_text(json.dumps(value, indent=2, sort_keys=True, default=str) + "\n")
|
||||
|
||||
|
||||
def read(path: Path): return json.loads(path.read_text())
|
||||
|
||||
|
||||
def integrity() -> dict:
|
||||
ncfg, mcfg, cfg, _ = load_config(ROOT / "models/male-cns-lif/credit-assignment-v1/phase4n.yaml")
|
||||
checks = {}
|
||||
for label, root, rel in [
|
||||
("Phase4M experiment", Path(mcfg["experiment_root"]), "manifests/checksums.sha256"),
|
||||
("Phase4M model", Path(mcfg["model_root"]), "checksums.sha256"),
|
||||
("Phase4N experiment", Path(ncfg["experiment_root"]), "manifests/checksums.sha256"),
|
||||
("Phase4N model", Path(ncfg["model_root"]), "checksums.sha256")]:
|
||||
checks[label] = verify_checksum(root, root / rel)
|
||||
earlier = frozen_checks(cfg); datasets = dataset_checks(cfg); current = frozen_hashes(cfg)
|
||||
saved = read(Path(mcfg["experiment_root"]) / "audit/final-summary.json")["integrity"]["after"]
|
||||
phase4o = verify_checksum(ROOT / "experiments/phase4o-runtime-credit",
|
||||
ROOT / "experiments/phase4o-runtime-credit/manifests/checksums.sha256")
|
||||
report = {"Phase1_to_3B": datasets, "Phase4C_to_4L": earlier, "Phase4M_4N": checks,
|
||||
"Phase4O": phase4o, "frozen_input_hashes_unchanged": current == saved}
|
||||
report["all_static_checks_passed"] = bool(datasets["all_passed"] and earlier["all_passed"] and
|
||||
all(x["passed"] for x in checks.values()) and phase4o["passed"] and current == saved)
|
||||
return report
|
||||
|
||||
|
||||
def seal_dir(root: Path, control: Path) -> int:
|
||||
rows = []
|
||||
for p in sorted(root.rglob("*")):
|
||||
if p.is_file() and p != control and p.name not in ("checksums.sha256", "MANIFEST.json"):
|
||||
h = hashlib.sha256()
|
||||
with p.open("rb") as f:
|
||||
for chunk in iter(lambda: f.read(8 << 20), b""): h.update(chunk)
|
||||
rows.append((h.hexdigest(), p.relative_to(root).as_posix(), p.stat().st_size))
|
||||
control.parent.mkdir(parents=True, exist_ok=True)
|
||||
control.write_text("".join(f"{h} {rel}\n" for h, rel, _ in rows))
|
||||
save(control.parent / "MANIFEST.json", {"root": str(root), "files": [{"path": r, "sha256": h, "size": s} for h, r, s in rows]})
|
||||
return len(rows)
|
||||
|
||||
|
||||
def main() -> None:
|
||||
cfg = yaml.safe_load((ROOT / "models/male-cns-lif/deterministic-runtime-v2/phase4p.yaml").read_text())
|
||||
exp = Path(cfg["paths"]["experiment_root"]); model = Path(cfg["paths"]["model_root"])
|
||||
frozen = integrity(); save(exp / "audit/frozen-integrity-final.json", frozen)
|
||||
gate = read(exp / "audit/candidate-gate.json"); p4c = read(exp / "phase4c-v2/summary.json")
|
||||
reval = read(exp / "revalidation/summary.json"); threshold = read(exp / "threshold-3942/summary.json")
|
||||
fanout = read(exp / "fanout-tests/summary.json"); history = read(exp / "historical-comparison/summary.json")
|
||||
brainio = read(exp / "brainio/summary.json"); activity = read(exp / "activity-stream/summary.json")
|
||||
eligibility = read(exp / "eligibility-replay/summary.json")
|
||||
performance = read(exp / "performance/instrumented-100ms.json")
|
||||
highest = reval["highest_revalidated"]
|
||||
final = {"phase": "4P", "status": gate["status"], "candidate_generated": gate["candidate_generated"],
|
||||
"numerical_contract": "MaleCNS-NumericalContract-v1", "canonical_order": ["target_idx", "source_idx", "edge_id"],
|
||||
"neuron_3942": threshold, "real_fanout": fanout, "phase4c_5x20": p4c,
|
||||
"historical_comparison": history, "BrainIO": brainio, "ActivityStream": activity,
|
||||
"eligibility_fixed_event_replay": eligibility, "performance": performance, "candidate_gates": gate["gates"],
|
||||
"revalidation": reval, "highest_revalidated": highest,
|
||||
"frozen_integrity": frozen, "prohibited_follow_on_started": False,
|
||||
"limitations": [
|
||||
"Canonical stable sorting plus one-thread-per-target reduction is correctness-first and 2.6-5.0x slower than biological real time for the 1 s trials.",
|
||||
"Historical runtime-v1 full population/state distributions were not persisted for all 50 Phase4O repeats; total-spike envelopes use all runs while population/V/g comparisons use the frozen historical reference.",
|
||||
"The compiler emitted a generic c++ versus g++ warning even though the cached extension loaded and all exact regressions passed."]}
|
||||
save(exp / "audit/final-summary.json", final)
|
||||
candidate = model / "candidate"; shutil.copy2(model / "phase4p_revalidate.py", candidate / "phase4p_revalidate.py")
|
||||
shutil.copy2(model / "phase4p_finalize.py", candidate / "phase4p_finalize.py")
|
||||
shutil.copy2(model / "phase4p_benchmark.py", candidate / "phase4p_benchmark.py")
|
||||
save(candidate / "VERSION.json", {"name": gate["status"], "numerical_contract": "MaleCNS-NumericalContract-v1",
|
||||
"revalidated_through": highest, "generated_utc": time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime()),
|
||||
"biological_parameters_changed": False, "historical_references_overwritten": False})
|
||||
candidate_files = seal_dir(candidate, candidate / "checksums.sha256")
|
||||
phase4p_validate.make_manifest(cfg, final)
|
||||
own = verify_checksum(candidate, candidate / "checksums.sha256")
|
||||
print(json.dumps({"status": final["status"], "highest_revalidated": highest,
|
||||
"frozen_integrity": frozen["all_static_checks_passed"],
|
||||
"candidate_files": candidate_files, "candidate_checksum": own["passed"]}, indent=2), flush=True)
|
||||
|
||||
|
||||
if __name__ == "__main__": main()
|
||||
Reference in New Issue
Block a user