MycoSwarm
One browser tab is a node. Nodes find each other, split work between them and check each other's answers, so a network can grow the way a fungus does: from one sprout, by branching, with nobody planting it.
14 packages · 8 protocol layers · TypeScript · MIT
A single node
Anyone with a browser is a node. There is no installer, no account and no daemon: opening a page is joining, and closing it is leaving.
That is why the design looks the way it does. A network whose members arrive and vanish at any moment cannot be built on machines you control, so everything that would normally be infrastructure has to survive being absent — including the machines themselves.
wasm-executor · client · core
Nodes finding each other
A node alone computes nothing. A stateless signalling service introduces two peers over a socket, and after that they speak directly over WebRTC data channels.
The shape of the connections changes with the size of the mesh. Everyone connected to everyone is optimal and does not scale; a bounded set of neighbours scales and costs a little latency.
full mesh O(n²) · sparse mesh, 6 neighbours by consistent hashing · hybrid switches at 10 nodes
Work splits and spreads
A job is split fractally until the pieces fit the nodes that happen to be awake, and each piece is handed to more than one of them, so a wrong answer or a node that silently disappears cannot pass unnoticed.
Redundancy is a probability rather than a promise. The network sets how many copies a result needs and lets the arithmetic decide, which keeps verification cheaper than recomputation.
task-distribution · redundancy, Poisson guarantees · signal-transduction
Routing across the mesh
Every node benchmarks itself and turns that benchmark into a Bio-score, and the network sends work down the connections that have proved themselves while the rest thin out.
Between 15 and 30 per cent of direct connections fail against symmetric NAT, corporate firewalls and carrier-grade NAT. A design that promised no central infrastructure cannot answer that with a central relay, so the strongest nodes carry their neighbours' traffic instead.
resource-scoring · zk-integrity · homomorphic · relays by score, bandwidth and load: 3 concurrent, 5 Mbps
How large this could grow
A node is a browser tab, so the ceiling is not a machine you buy. The figures below describe a mesh of 8,412 nodes at roughly 14.7 GFLOPS each — what a mid-range laptop or recent phone yields through WebAssembly — which is where 124 TFLOPS comes from.
| Term | Figure | Where it comes from |
|---|---|---|
| nodes | 8,412 | The population the estimate assumes |
| per node | ~14.7 GFLOPS | A mid-range laptop or recent phone, in a WebAssembly worker |
| gross | ~124 TFLOPS | The product of the two above |
| redundancy | ÷ k | Each task runs on more than one node |
| verification | the real limit | Checking results and moving bytes binds before multiplication does |
a projection, not a measurement · no mesh of this size has been run · fragile terms: churn, and the 15–30% needing a relay
What exists now
Eight protocol layers, from the mycelial mesh at the bottom to the application at the top; fourteen packages, one per concern.
- Mycelial mesh WebRTC, signalling, NAT traversal
- Signal transduction gossip, status events
- Resource & discovery Bio-score, capability advertisement
- Task distribution fractal split, assignment, redundancy
- Integrity & privacy zk-SNARK verification, homomorphic
- Incentive & token micropayments, staking, rewards
- Consensus priority voting, conflict resolution
- Application task submission, result collection
a planned build, not a running network · the numbers on this page are parameters, not telemetry
git clone https://github.com/KELLERBABG/MycoSwarm cd MycoSwarm pnpm install && pnpm build pnpm test # vitest, across the workspace
and this is the whole point: it should be able to grow this far without anyone planting it.