mirror of
https://github.com/luxfi/genesis.git
synced 2026-10-30 16:25:45 +00:00
Until this commit, live lux mainnet was reproducible from exactly one place: a base64 blob inside the Kubernetes ConfigMap luxd-startup in namespace lux-mainnet. Nothing in this repository reproduced it. If that ConfigMap were lost or regenerated, the C-Chain identity of the chain holding the historic RLP could not be rebuilt from any source. genesis.json is the source document startup.sh decodes to /data/genesis.json on every boot. genesis.bytes is the built P-Chain blob it produces — the artifact that created the current P-Chain state, and therefore what defines every chain id on mainnet. Building the former with the node's own builder reproduces the latter byte for byte, and all nine chain ids match platform.getBlockchains read in-pod. No file under configs/ reproduces this. Four sources give four different C-Chain ids and only this one is live; they are different chains rather than different formatting, carrying different upgrade timestamps, a different targetGas, and in the shard's case warpConfig — the key previously recorded as having bricked the C-Chain. A chain id is sha256 over a CreateChainTx that carries no credentials, so it is a pure function of the genesis bytes and one byte of whitespace moves it. These files must not be reformatted. The operational hazard is one line in a ConfigMap rather than anything in a binary: luxd reaches this document only via --genesis-file=/data/genesis.json, and without that flag the loader falls through to the shards, which yield eleven chains of which only X-Chain matches live. Co-authored-by: Hanzo Dev <[email protected]>
2.3 MiB
2.3 MiB