centram
information is your creation

how peer-to-peer
AI actually works

centram in 2 minutes · thirteen scenes · auto-loops
A
A
A
A
A
A
node A · laptop
B
B
B
B
B
B
node B · friend
C
C
C
C
C
C
node C · phone
node A · identity
peer A
ed25519 pubkey:
4f3a 7c2b 8e9d 1f6a … bc4e
hello + sig(A) hello + sig(B) ✓ session established
node B · identity
peer B
ed25519 pubkey:
9c7e 2a14 6b8d 3f5c … 71a9
node A · model + LoRA
embedding
layer 0
layer 0 · lora_A · lora_B
layer 1
layer 1 · lora_A · lora_B
layer 2
layer 2 · lora_A · lora_B
layer 3
layer 3 · lora_A · lora_B
lm_head
training loss↘ converging
iter 0 loss 2.10

why LoRA: small enough to share, large enough to matter

Each peer only ships the trained adapter — about 7% of the model — instead of the entire base.

full modelall weights
842,496params
LoRA adaptertrained slice only
65,536params · 256 KB
a 65,536-parameter adapter (7.22% of the model) carries the entire knowledge update. that's what a peer ships.
node A · full model
842K params total
extract LoRA
256KB
genome packet
65,536
params
7.22%
of model
A UDP :9743 broadcast peer @ 192.168.1.10 peer @ 192.168.1.21 peer @ 192.168.1.34 peer @ 192.168.1.42
A sender B receiver ACCEPTED

blend the peer's adapter into your own

own LoRA
peer's LoRA
blend ratio0.85 · own  +  0.15 · peer
own (kept) peer (mixed in) post-apply fitness gate · reverts if generalist drops
for inference, the model splits

hyperlink
distributed forward pass

two peers each hold half the transformer. activations cross the wire between them. one prompt, two processes, one token at a time.

input
prompt
"the quick brown fox "
shard A · port 9801
layers 0 — 1
first half + embedding
shard B · port 9802
layers 2 — 3
second half + lm_head
generated sequence (live)

single-process vs distributed (842K toy model)

singlebaseline, 1 process
1.72 ms
/token
distributed2 shards over HTTP
7.61 ms
/token
4.4× slower at toy scale because HTTP+base64 dominates. compute scales O(d²), activation transfer scales O(d) — the network fraction shrinks fast as models grow.
equivalence check

verdict: pass

baseline:[106, 117, 109, 112, 115, 32, …]
distributed:[106, 117, 109, 112, 115, 32, …]
match:true (bit-exact)
try it yourself: experiments/hyperlink_mvp/
scroll for details
01 status

what ships, what's a demo, what's open

Eight components, three columns. If a row says open, we don't claim it works yet — we link to the experiment that's currently inconclusive.

componentwhat it doesstatus
local LLM + LoRAtrain on-device, extract weight deltas, persist genomes.ships
P2P binary protocol96 message types, Ed25519-signed, QUIC transport, LAN discovery.ships
genome merge opsSLERP / TIES / DARE-TIES weight-space interpolation.ships
10-layer validation gatedifferential privacy, lineage cycle detection, fitness gating, signatures.ships
hyperlink distributed inferencetwo-process pipeline parallelism with bit-exact equivalence.demo
DETRA / CyBank / Dashboardthree Flutter apps shipping with the daemon.beta
cross-domain genome aggregation5 toy-scale tests are flat. scale-up is the next experiment.open
CEN economy & royalty ledgerlocal lineage-decay royalties; cross-peer reconciliation pending.open
the right benchmark for a decentralized AI system is not the easy case — it is whether the project shows you the hard case and tells you which parts are still open.— from docs/HONEST_STATUS.md
03 the five experiments

if peers exchange knowledge, generalist quality should rise

0 +.05 −.05 gen 0 gen 19 generalist Δ — every variant flat at toy scale delta divergent (declines) LoRA divergent LoRA same-domain LoRA SLERP LoRA rich-dialogue
all 5 hover at the zero line — cross-node uplift not yet seen

The fair test is fitness on domains other than what each peer trained on. Five variants at 842K-parameter toy scale.

Every own-training column is positive (local learning works); every cross-node aggregation is flat or declining at this scale. The chart on the left is what 100 generations of evolution actually looks like — five lines, all clustered around zero.

variantown Δgeneralist Δcross Δacceptverdict
delta · divergent corpora+0.0347−0.02775.0%declines
LoRA · divergent corpora+0.0179+0.00340.0%flat
LoRA · same domain (registers)+0.0156−0.0022−0.00301.7%flat
LoRA · SLERP operator (same)+0.0156−0.0023−0.00300.0%flat
LoRA · topic-overlap rich data+0.0070−0.0006−0.00133.3%flat

The remaining hypothesis is scale: the same pipeline at 1.5B+ parameters may behave differently. Cloud-GPU validation is the next experiment; results will be published here, positive or negative, when the evidence is in.

04 architecture

three layers, three honest names

Earlier framing called these IEIT, DNA, GWP. The original posts are still linked. The plain-language version is shorter — and each composes well-understood techniques rather than inventing new ones.

Top to bottom: a node first trains and shares a LoRA-adapter genome with peers, then those same peers cooperate to run inference, and finally several peers' outputs are reconciled into one answer.

i. genome exchange federated LoRA · P2P ii. distributed inference pipeline parallel · hyperlink iii. output reconciliation self-refine ensemble
three stacked layers, each composed of known primitives
i
layer 1 · evolution

genome exchange

LoRA weight-delta packages, validated 10 ways, blended with peer adapters under a fitness-regression gate. Standard model merging applied across a P2P boundary.

marketed: IEIT · plainly: federated LoRA
ii
layer 2 · cooperation

distributed inference

Peers each hold a slice of the model and pass activations. The Hyperlink MVP above is the working core; the rest is engineering — KV cache, streaming, replica selection.

marketed: DNA · plainly: P2P pipeline parallelism
iii
layer 3 · verification

output reconciliation

Multiple peers answer the same query; outputs are compared, contradictions detected, integration loop continues until convergence. Currently heuristic; semantic version in design.

marketed: GWP · plainly: self-refine ensemble
05 three flutter apps in the box

you don't need to write code to run a node

detra

chat · image · music

Local-first multimodal interface. Streams from the daemon's Qwen / llama.cpp backend. No API keys, no data leaves the device.

cybank

CEN wallet

Send and receive CEN, see history, manage Ed25519 identities. Pairs with the daemon over LAN in 30 seconds.

dashboard

node management

Network topology, peer health, evolution-cycle status, model downloads. The control panel for everything else.

06 running it yourself

four commands · two minutes

# 1. install the daemon
$ pip install -e daemon/
$ centram-daemon --data-dir ~/.centram

# 2. download a model (Qwen 2.5 3B)
$ centram-model download qwen2.5-3b

# 3. run the Hyperlink MVP demo
$ python experiments/hyperlink_mvp/demo.py
   VERDICT: PASS

# 4. (optional) launch a Flutter app
$ cd detra && flutter run

The daemon is a Python package with a Rust crypto core. The Flutter apps are optional — the REST API on port 9740 is the source of truth. Full guide: GETTING_STARTED.md.