dimension version 2 — the bostrom genesis root unblocked
Date: 2026-10-15. Scope: bbg feat/dimension-chunks (PR #41, on master after
#40) and its integration onto the 0.3 line int/genesis-dims (PR #42), with
soft3 genesis/dimension-v2 on top of soft3 #183 (soft3 genesis build).
Tracker: cyber/launch.md rows 14 (genesis bijective with the snapshot) and
43 (block cost). Prior finding: soft3 #183 — the bostrom state root was
root_blocked: lens/brakedown MAX_VARIABLES = 20 caps a v1 dimension at
2^20 field elements and bostrom's particles dimension needed 2^27, files /
balances / axons 2^25, signals 2^24; two engine inflations made it worse.
what changed
- root version 2 is the default. The dimension leaf is the keyed-trie
root (
rs/src/trie.rs, #40). There is no size cap: a trie grows by one leaf and ≤ one branch per record. v1 (flat Brakedown polynomial) stays opt-in for the zheng look argument and the state certificates. - injective leaves. Keys enter the leaf chain as eight 32-bit limbs, every
u64field as two 32-bit limbs (dim::u64_limbs,dim::bytes32_limbs— the same functions the 0.3 line'sDIMENSION_VERSION = 2serialization uses). One Goldilocks limb peru64is not injective (vandv − pcollide) and a raw 64-bit key limb ≥ p was craftable. - a link without conviction writes topology only.
BbgState::insertwithamount = 0touchesaxons_out,axons_inand the reverse edge map and nothing else: no axon-particle, no target energy, no neuron focus, no balance row. A genesis replay is all such links. - a zero balance is an absent row.
balances[k]reaching 0 is removed.
Spec: specs/state.md § root versions → "dimension version 2", § dimension
commitment v2.
the two inflations, measured on the snapshots
Counts from soft3 genesis build (bbg: lines of its report), before =
soft3 #183's run on the 0.3 line, after = int/genesis-dims:
| chain | dimension | before | after | why |
|---|---|---|---|---|
| pussy | particles | 16,271 content + axon-particles per link | 16,271 | rule 3 |
| pussy | balances | one zero row per link endpoint + 442 real | 442 | rules 3–4 |
| bostrom | particles | 6,086,630 (3,143,650 content + axon-particles) | 3,143,650 | rule 3 |
| bostrom | balances | 3,200,435 (56,785 real) | 56,785 | rules 3–4 |
genesis build, end to end
soft3 genesis build --chain <chain> --snapshot ~/cyber/<repo>/snapshot --out /tmp/gen/<chain> (cache ~/cyber/.cache/snapshots/<chain>), release build,
M4 Max, one thread; peak memory = /usr/bin/time -l. verify --root
re-loads the manifest and recomputes the root.
| chain | links | genesis hash | state root (v2) | wall | peak memory | verify --root |
|---|---|---|---|---|---|---|
| pussy | 29,112 | 4d703ecc1d618eb4921de62d8bca4326db8b7cb9140dced576278e1d9eec70ef |
47fcbd67ce96ecf965b77527a1fc0a01982f0ce7b76b275240d315fe8ce8d924 |
10.7 s | 74 MB | clean |
| bostrom | 2,949,732 | d0965ed10f0fe29c33467d352e9ae5c66b59cd4ff04169fe143b9a06800c0fd2 |
7cbac3268e12e6d954ec477e6a2039b5697d4ba8bda85ca2a1c59e42fa8d025a |
1,790 s (state load + root 1,750 s; the bbg link replay shared the machine for the first 20 min) | 8.57 GB | not run (a second 30-minute load; the pussy verify is clean and the loader is deterministic by #183's two-build check) |
Before: pussy 8339b4ad… / root f5b10b87… (v1 on the 0.3 line, with the
inflations); bostrom hash da45937f…, root blocked, 104 s, 5.2 GB
(soft3 audit/genesis-2026-10-15.md). The genesis hash moves because the
manifest carries state_counts / state_fields, which the deflation changed;
the root moves because the derivation is v2. The new chain starts fresh, so
nothing deployed depends on the old values. No conformance .snap files exist
to bless (soft3/conformance is a scaffold).
bbg alone: the bostrom link stream through BbgState::insert
rs/examples/replay_pussy.rs /tmp/bostrom-cyberlinks.csv v2 0 — the 2,949,732
links as one-link signals with amount = 0, one block per source height,
root at every block edge (383,503 blocks), no genesis tables:
| links | wall | µs/link | peak memory |
|---|---|---|---|
| 2,949,732 | 1,168.6 s | 396 | 4.74 GB (the CSV rows stay resident) |
Per-10k cost: 587 µs at 500k, 328 µs at 1.5M, 353 µs at 2.5M — flat; the last 400k links ran at ≈ 1.2–1.6 ms while the genesis build shared the machine. max_degree 30,439 (a hub append is O(log degree)).
what this does not do
- The zheng look argument and the state certificates still open v1 Brakedown
cells; a read against a v2 root needs a trie-path opening in zheng. Tests
that exercise them pin
RootVersion::V1on small states. - The per-neuron nonce field (soft3
feat/chain-kernel→ bbgfeat/chain-dims) was not on origin when this was written; it belongs in the same dimension version — add it toNeuronRecord::leaf_valsanddim_entries, re-pintests/root_vectors.rs. - Storage is untouched: the tries live in memory next to the maps.