Codify today's verified live-cluster fixes into source so the tree boots
correctly with zero hidden live state — ending the config drift that an
operator reconcile toward stale source kept re-breaking.
Per net (mainnet/testnet/devnet):
- network.yaml: spec.image.tag v1.30.40 -> v1.31.2.
- luxd-startup.yaml:
- drop strictPQTimestamp from networkUpgradeOverrides (cchain + brand
upgrade.json). The v1.31.2 EVM plugin parses upgrade bytes with
DisallowUnknownFields and NetworkUpgrades has only evm/durango/quasar/
fortuna/granite — a stale key => 'failed to parse upgrade bytes' =>
C-Chain can't init. pqcryptoConfig already retired; standalone
mldsa/slhdsa/etc verifiers stay. dexSettle/dexQuoter/dexPositionManager
remain scheduled @1766708400 (0x9999 activates on next block).
- add --skip-bootstrap=true (un-wedge a self-contained validator set;
sibling-tolerant finality reconciles at tip).
- add a pre-launch guard removing stray upgrade.* (luxd globs upgrade.*
and crashes if >1 file matches).
- mainnet keeps DB-wipe-disabled (preserve 1.08M-block history); devnet
chainId comment corrected 96370 -> 96367.
e2e/dex/: deterministic boot/reset/upgrade harness. dex_e2e_test.go is the
stdlib-only read GATE (chainId, booted-past-genesis, 0x9999=0x01, DEXFill,
multi-validator convergence); boot/reset/upgrade.sh orchestrate a disposable
lux-CLI localnet and drive a real fill with the trader binary. Proven green
(read gate) on the live v1.31.2 spec: devnet 96367 (3-validator convergence
@ block 15, 6 fills), testnet 96368 (1 fill), mainnet 96369 (marker).
RUNBOOK.md: exact boot/reset/upgrade procedure without the operator, gated
by e2e/dex. LLM.md: spec-lock-in section + devnet chainId fix.
21 lines
722 B
Bash
Executable File
21 lines
722 B
Bash
Executable File
#!/bin/sh
|
|
# reset.sh — deterministic RESET proof.
|
|
#
|
|
# Wipes the disposable localnet and boots it again from genesis, asserting the
|
|
# SAME green boot result. Proves the boot is reproducible (no hidden live state):
|
|
# the spec, not operator drift, determines the outcome.
|
|
#
|
|
# Disposable target ONLY. Same env as boot.sh.
|
|
set -e
|
|
DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
|
|
|
|
command -v lux >/dev/null 2>&1 || { echo "reset.sh: lux CLI not on PATH" >&2; exit 2; }
|
|
|
|
echo "[reset] tearing down + wiping localnet state"
|
|
lux network stop >/dev/null 2>&1 || true
|
|
lux network clean >/dev/null 2>&1 || true
|
|
|
|
echo "[reset] re-booting from genesis"
|
|
sh "$DIR/boot.sh"
|
|
echo "[reset] RESET proof GREEN ✓ — boot is reproducible"
|