01The idea
Today the Academy's trust chain terminates in two central places: a hard-coded master-key list in a GitHub-hosted file, and Firestore rules in front of one database. Spire Mesh removes both by letting any participant run a node that holds a full replica of the canon and independently re-verifies every record — every seal, certificate, unlock request and 2-of-2 grant.
The adaptation is honest about its source: NeuroMesh supplies the transport recipe (gossip sync, peer identity, sharing quotas); the Academy already owns the trust machinery (ECDSA P-256 seals, an immutable 145-tome canon, a certificate web of trust). And the S.P.I.R.E. manual already promised the shape: a globally verified crystal matrix (Core) beside sovereign local space (Biostrata) over a sync substrate (Hypersim) — which is exactly NeuroMesh's participant/private split.
Polycentria cell Every peer that gossips a record is Helix A — an untrusted oracle that proposes. Every node's validation processor is Helix B — an exact certifier that decides. A record enters a node's SPIRE Core only after that node verified the signatures and walked the certificate chain itself. Many locally-authoritative certifiers composed into a whole: polycentric governance, literally.
02Live mesh — proposals vs. certifiers
Twelve nodes (♛ Archon · ⬢ Instructors · ○ Acolytes). Inject records and watch gossip
carry them outward; each node runs its own exact checks. Green = accepted into
that node's SPIRE Core, magenta = quarantined. (Visualization only — the real
ECDSA/chain checks run in spire_mesh.py.)
03The mapping
| NeuroMesh mechanic | Spire Mesh adaptation | Reuses |
|---|---|---|
| Ed25519 node identity | Minor Tome seal (ECDSA P-256) as the node's pen; the operator's Cosmological ID as persistent identity | seal-crypto.js · spire-registrar.js |
| Shared-secret HMAC handshake | CERT/2 — certificate chain to a genesis trust anchor; no shared secret | genesis-registrar.js (upgraded) |
| Web of Trust vouching | The Genesis tier chain is a web of trust: Archon → Instructor, plane-scoped | Genesis Authority |
| CRDT memory + vector clocks | Canon = immutable grow-only set; seal status = owner-signed LWW register; requests/grants append-only. Simpler objects → simpler CRDT | major-tome.js · minor-tome.js |
| Gossip protocol | Hypersim anti-entropy over content-addressed digests — measured convergence: 12 nodes, 2 rounds | new |
| Sharing quota 40/30/20/10 | canon-hosting 40 · validation-work 30 · uptime 20 · web-of-trust rep 10 → read-quota tiers | new |
| Specialist router (12 schemas) | Plane router: dept-IV requests route to dept-IV / * certified validators | certifiedPlanes |
| Participant / private mode | SPIRE Core (validated replica) · Biostrata (sovereign local) · Hypersim (sync) — the manual's tri-layer, implemented | S.P.I.R.E. Manual |
04The validation processor — firestore.rules as pure functions
The rules file is already a declarative validation spec in front of one database. Each rule translates line-for-line into an exact check any node can run — that translation is the decentralization:
┌ SPIRE NODE ────────────────────────────────────────────────┐ │ Biostrata (sovereign, never gossiped) │ │ quarantine ledger · local chronicle · counters │ │ │ │ Helix B — VALIDATION PROCESSOR (exact certifier) │ │ 1 schema check 4 authority: cert-chain walk to a │ │ 2 ECDSA signatures genesis anchor + plane scope │ │ 3 immutability / 5 seal-status (recall) check │ │ referential 6 accept → Core | reject → quarantine │ │ │ │ SPIRE Core — the validated replica │ │ canon G-Set · seal registry (LWW) · request/grant log │ │ │ │ Hypersim — content-addressed gossip, fanout 2 │ └────────────────────────────────────────────────────────────┘
Found & fixed Genesis certificates are HMAC-keyed by the
issuer's public Cosmological ID — safe only while Firestore controls writes; forgeable by anyone on an open
network. CERT/2 keeps the exact field layout but signs with the issuer's ECDSA seal.
Moved The root of trust moves from GENESIS_MASTER_UIDS in a JS file to
trust-anchor genesis IDs baked into the content-addressed genesis snapshot — changing the root becomes a visible
hard fork, not a quiet commit. Rehomed Canon CI (validate-canon.mjs)
stops being a GitHub Action and runs inside every node.
05Measured (the reference run)
python3 spire_mesh.py — pure stdlib, deterministic, ~37 s, real ECDSA P-256 (the seals' own
curve), the exact UNLOCK-REQ/1 / UNLOCK-GRANT/1 payload bytes, the exact Cosmological-ID
pipeline (SHA-256 → holographic inverse → SHD-CCP 4×4×4 φ-fold → XOR). Full output in
spire_mesh_output.txt.
| Check | Result |
|---|---|
| 145-tome canon inscribed (9×9 + 4×16, the real Dept I–X structure) | pass |
| 12 nodes converge to identical SPIRE Core | 2 gossip rounds |
| 2-of-2 completion grant independently verified | 12/12 certifiers |
| Forged-signature Archon cert · self-signed promotion · acolyte grant · off-plane grant · tampered canon replay | rejected everywhere |
| Seal recall gossips → earlier grant invalidated on every replica | 12/12 flipped |
| Contribution scores → quota tiers | accounting shown; differentiation needs scale |
Honest reads: quorum here is verification redundancy, not voting — no node trusts another's verdict. Sybil resistance is inherited from the certificate chain (Sybils can host, never grant). No BFT consensus by design: self-certifying records only need set membership, not ordering — the day artifacts become transferable is the day that stops being true.
06Off GitHub, in phases
| Phase | Authority | What moves |
|---|---|---|
| 0 — today | Firestore + GitHub CI | — |
| 1 — shadow mesh | Firestore | volunteer nodes replicate & re-verify read-only; discrepancies reported; zero risk |
| 2 — dual-write | both | browser seals already emit mesh-valid records; CERT/2 re-issuance; genesis snapshot published |
| 3 — mesh-authoritative | the mesh | Firestore demoted to one mirror; quota rail activates; consoles read from any trusted node |
| 4 — content too | the mesh | lesson HTML content-addressed; "store the seed" extends to "store the hash" |