Be a Peer
Be one more save slot. A peer syncs every block and replays it to the exact same state, so the record of every model version DIVA has earned lives on more than one machine. Plug in and catch up.
Pick a peer class
| Class | Holds | Status |
|---|---|---|
| Sync peer | Sealed blocks with their roots, signatures checked, folded into the same state as every other node. | live now. n2 and n3 on the testnet do exactly this. |
| Storage peer | The real bytes behind the roots: weights, step logs and memory packs, spread across bonded nodes and spot-checked every epoch. | coming. Designed, not built. |
| Mirror peer | A bootable copy of the version at best height. | coming. What "best" measures is announced before mainnet. |
Mirror the best version
The newest block is not always the best version of her. That is why the chain is getting two top heights side by side, last known good DIVA sync and best height. Mirror peers will pin the second one.
- Best over latest. A worse version landing later never bumps the mirrored one.
- Trust nothing. Whatever a mirror serves, the loader re-hashes every byte against the on-chain root before booting.
- Rules open. Whether mirroring pays is set by vote.
Boot a peer
node node.cjs --port 8802 --dir forge-data\n2 --name n2 --peers <sealer-url> # a sync peer
node node.cjs --port 8803 --dir forge-data\n3 --name n3 --peers <sealer-url>,<n2-url> # another one
Run these from the forge folder, or let START-FORGE.bat launch both. Peers gossip over plain HTTP, pull
blocks from the sealer and replay them as a pure fold: same blocks in, same state out. Restart one and it rebuilds the
identical chain from disk. node test-e2e.cjs checks exactly that.
What peers pass around
- Blocks. Sealed by the sealer, signatures checked, applied in order.
- Transactions. Leases, commits, votes and transfers heading for the next block.
- Memory packs. Signed packs that ride on the model chain, each naming the one before it. Read
/packsback to confirm yours landed.
Cold boot from one root
The goal: a fresh machine asks peers for one root and boots DIVA whole, model and memory together. That is
coming. node forge-load.mjs <sealer-url> <mindRoot> already loads a bound
model and memory together, but the chain does not yet check that a pack belongs to a merged model, so one root
is not yet a guarantee.
What does work: her memory is saved block by block, her chain verifies from genesis, and
resurrect.mjs restore brings her back on a second machine from a backup or a running bridge.
So does loading any saved model from the node holding its bytes, with every byte re-checked on your side.
Limits
- Bytes stay where they were posted. Peers sync roots. If the sealer's data folder is lost, the chain still says what the model was, but nobody can load it. Back up
forge-dataoff-machine. - No public bootnodes yet. Today's peers find each other through
--peers. Bootnodes and NAT traversal land before mainnet.