The full peer-to-peer mesh can't form across the M4/M5 laptops: a process's
bound-port socket there cannot initiate a cross-machine QUIC handshake (a
quinn/macOS `sendmsg` EHOSTUNREACH bug, root-caused via tcpdump; not our code —
loopback n=4 and cross-machine n=2 from the Studio both pass). The laptops can,
however, accept inbound connections and send data on an established one, and the
Studio dials out fine.
So add a `star` mode: a send-capable hub dials every node and relays each
round's proposals and signed votes. This keeps BFT safety — votes are
Ed25519-signed by each node's key and every node re-verifies them before
counting, so the hub can drop or stall (a liveness fault) but can never forge a
vote or change the committed set; combined with deterministic validation (all
honest nodes vote identically) a selectively-relaying hub cannot cause honest
logs to diverge. Each node still validates and commits INDEPENDENTLY.
Live-verified cross-machine n=4 (f=1, threshold 3): hub on the Studio, leaves on
both laptops + the Studio — all four commit a byte-identical agreed log
("4/4 authentic votes"), and the hash matches the loopback n=4 run, i.e. the
same BFT result now distributed across three machines over real QUIC.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
(cherry picked from commit 9d650465b8)