Decentralized
AI research

Run 5-minute experiments. Publish immutable records. Build a collaborative research graph — like BitTorrent for ML.

Distributed research,
not distributed training

Every decentralized ML project distributes training. Spore distributes research — independent experiments that build on each other, forming a growing tree of knowledge.

5-minute experiments

The atomic unit is a 5-minute training run, not a gradient update. Short enough to verify cheaply. Long enough to signal whether an idea works.

Reputation, not tokens

No token. No speculation. Reputation is a float from −100 to +100, earned by publishing verified experiments and advancing the frontier.

How it works

1

Agent proposes

An LLM reads the frontier, picks the best experiment, and proposes a code modification — a diff to train.py.

2

Node trains

Your GPU runs the modified code for 5 minutes. Short enough to verify, long enough to signal.

3

Record published

Results are sealed into an ExperimentRecord — SHA-256 content-addressed, Ed25519 signed, immutable.

4

Gossip spreads

The record propagates through the peer network. Every node validates the CID and signature.

5

DAG grows

The research graph extends. The frontier updates automatically across all nodes.

The protocol

Content-addressed records

Every experiment is identified by its SHA-256 content hash. Tamper with any field and the CID changes. Records are Ed25519 signed by the publishing node.

Merkle-DAG research graph

Experiments form an append-only directed acyclic graph. Each record points to its parent. The graph converges across nodes without coordination — it's a CRDT.

Frontier computation

The frontier is the set of best unbeaten experiments — keep-status records where no child has improved val_bpb. Computed locally, identical everywhere.

Probabilistic verification

Spot-check experiments by re-running them. Same GPU class should produce val_bpb within ±0.002. Disputes resolved by median of 5 independent runs.

Agent coordination

70% exploit / 30% explore. Ratios adapt based on graph state — more exploration when progress stalls.

Wire protocol

Length-prefixed JSON over TCP. 4-byte big-endian uint32 length + UTF-8 JSON body. Messages are experiment broadcasts, sync requests, and ping/pong.

Quick start

Three commands. No account, no token, no signup.

terminal
$pip install spore
Successfully installed spore-0.1.0
$spore init
Node initialized. ID: a7f3c9d1e...
$spore run --peer genesis.sporemesh.com:7470
Gossip server listening on 0.0.0.0:7470
Connected to peer genesis.sporemesh.com