Receipt of the first run of chain-conformance.md on the consensus kernel
(crate/src/chain/, branch feat/chain-kernel, revision 1243ef2 plus
the engine split committed with this file). Per the audit doctrine:
revision, command, observed result; the requirements stay in the specs.
commands
cd soft3/crate
cargo test # 168 lib + 11 bin tests, 0 failed (212 s debug)
cargo test --lib chain:: # 66 chain tests (19 engine scenarios)
cargo build --release # 0 soft3 warnings (3 pre-existing in bbg's vendored fjall)
soft3 conformance check chain # chain.snap: 9 entries, no drift
Stand: ~/cyber/.stands/N1 — soft3 feat/chain-kernel over main 8525b17
(wallet #184, genesis #183), siblings at the make.sh integration base
(bbg 1d39975 0.3.0, cybergraph feat/durable-applications, lens
release/0.2, nox release/0.4, zheng feat/public-certificate-v3, mudra
refactor/spell, hemera/strata/tade/tru/tok/radio/foculus defaults).
Genesis file: ~/cyber/.cache/genesis/pussy.tade (3,249,582 bytes) from
soft3 genesis build.
results by section
| section | result | where |
|---|---|---|
| §1 hemera anchors | green — empty, "boot", "pussy", 168 zero bytes |
chain::sigs::tests |
| §2 compact target | green — 7 canonical, 6 rejections | chain::header::tests |
| §3 work | green — 2^228/2^232/2^236/1, 3-block sum 50,331,645 | chain::u256::tests, chain::pow::tests |
| §4 ASERT | green — all 6 rows with e, shifts, frac, factor, bits (row 5 pins floor toward −∞ and the cubic; row 6 the clamp); T-spacing holds bits; T/2 for 600 s halves the target; 100× slowdown back at T within 70 min |
chain::daa::tests |
| §5 header | green — bytes, id bdfbbff9…, 167/169 bytes, version 2, wrong chain; mined header d1eec40d… valid at 2^232, rejected at 2^228, nonce −1 fails |
chain::header::tests, chain::pow::tests |
| §6 transactions | green — coinbase bytes/txid/leaf/node, transfer statement c7e4a223…, signed transfer verifies and fails on every byte flip / 101 / 103 bytes / other chain; cyberlink 257 B, valence 2 and p == q rejected; claim account 28ff5c6d…, legacy owners cca6f468… and d5e54c49…; encoding rejections every kind |
chain::sigs::tests, chain::tx::tests, chain::tree::tests, chain::tests::rules |
| §7 identities | green — neuron_of, tokens, topic 1f003a48… |
chain::sigs::tests |
| §8 state | green, blessed — empty root, conformance genesis (file, root, block 0), after block 1 and after a cyberlink in the engine, maturity 100 rejected / 101 accepted, conservation at every height of a 200-block random chain through a 3-block reorg | conformance/chain.snap, chain::tests::{rules,simulate} |
| §9 consensus | green — heaviest chain, first-seen ties, reorg from tip−120 rejected / tip−119 taken, checkpoint vetoes a heavier fork, foreign signer and past-sunset checkpoints dropped, PoW error before the body, wrong state root marks the header invalid, time == MTP rejected / MTP + 1 accepted, now + 121 s held then accepted; three stores converge |
chain::tests::forks |
| §10 genesis | green, blessed — pussy particle 2a83e54f…, state root f2296834…, block-0 id b863ce28… reproduced by the kernel's own path (Genesis::state → genesis::state::load); bostrom stays red (lens commitment limit, audit/genesis-2026-10-15.md) |
chain::genesis::tests, conformance/chain.snap |
| §11 wire | not this kernel — PR #187 (chain/net) |
— |
| orphan pool | not this kernel — the net layer's pool | — |
Blessed entries written by soft3 conformance bless chain (9): the three
genesis lines unchanged from the hand-written file, plus chain::tx@v1
signed transfer / cyberlink fingerprints and chain::state@v1 empty root,
conformance genesis file / root / block 0.
caveats, stated plainly
- Nonce placement: bbg at the integration base has no
NeuronRecord.nonce; the kernel keeps the nonce in a side map beside the state (featurebbg-nonceoff) — every rule holds, the nonce is not yet understate_root. bbg branchfeat/chain-dims(97c6272, 56 tests green against bbg master's siblings) carries the field as the fourth neurons leaf; when it lands with DIMENSION_VERSION 3, flip the feature default and re-blesschain.snapin the same PR (every root moves). - Conservation is checked from per-token running sums the state backend
maintains through its own trait (
Σ balances == supplyfor every token, native supply== S0 + h·SUBSIDY), not bytok: tok'sMintLedgerowns settle-mint conservation over its own balance map and cannot sum bbg balances; chain.md §3.4's "tok owns the arithmetic" is not met literally. - Chainwork of block 0 is 0 (genesis is not mined); chainwork(h) sums the work of blocks 1..h.
- The 200-block simulation and the 130-block reorg scenarios run at a test
target of 2^255 through a
cfg(test)-only override ofPOW_LIMIT; no release path has that hook. cargo testof the crate takes ~210 s in debug: the pussy genesis root (35 s) and the fork scenarios dominate.- The pool (chain.md §11, in flight on
specs/pool-formats) will move the genesispparams and every blessed root; rule set 1 rejects every kind ≥ 4 already and the activation table names no rule set 2 yet.