mirror of
https://github.com/luxfi/genesis.git
synced 2026-07-28 16:41:33 +00:00
mainnet/upgrade.json: fix C-Chain warpConfig + drop bls12381 entries
Two surgical fixes that get lux-mainnet C-Chain past the `PrecompileUpgrade verification` gate in luxd v1.28.21 (evm@v0.18.18): 1. warpConfig toggle (disable@1766708399 + enable@1766708400) C-Chain genesis already enables warp at blockTimestamp 1730446786 (luxfi/genesis@v1.7.1 cchain.json). Per the validator at evm/params/extras/precompile_upgrade.go:133, the next upgrade for an enabled precompile MUST flip state — a re-enable without an intermediate disable trips "disable should be [true]". Inserting a disable upgrade 1s before Quasar (1766708399) followed by re-enable at Quasar (1766708400) satisfies the toggle requirement and activates the new warp config (requirePrimaryNetworkSigners=true) at the network-wide PQ rollout, consistent with #114 intent. Also moved the two warp entries to AFTER the at-zero precompile block so the monotonicity check at line 129 (timestamps must be non-decreasing across the entire list) passes. 2. Dropped bls12381 sub-config entries (G1Add/Mul/MSM, G2Add/Mul/MSM, Pairing). All 7 share a single Configurator.MakeConfig() in luxfi/precompile@v0.5.23/bls12381/module.go that returns a Config whose Key() method hard-codes G1AddConfigKey: func (c *Config) Key() string { return G1AddConfigKey } This makes the EVM plugin's verifyPrecompileUpgrades loop see all 7 entries as "bls12381G1AddConfig", the 2nd-7th fail the disabled/enabled toggle check with "disable should be [true]" even though the entries are byte-distinct in the JSON. Underlying fix is in luxfi/precompile (instance-field key like `dead`/`graph`/etc — not a const). Until that lands and a new EVM plugin ships to s3://lux-plugins/, mainnet upgrade.json must not enumerate bls12381 sub-modules. The plugin still gates them correctly via strictPQTimestamp; the loss is only explicit activation scheduling for the bls12381 sub-keys. After these two fixes lux-mainnet C-Chain bootstraps cleanly (info.isBootstrapped=true, /ext/health C check OK).
This commit is contained in:
@@ -8,8 +8,6 @@
|
||||
"strictPQTimestamp": 1766708400
|
||||
},
|
||||
"precompileUpgrades": [
|
||||
{"warpConfig": {"blockTimestamp": 1766708400, "quorumNumerator": 67, "requirePrimaryNetworkSigners": true}},
|
||||
|
||||
{"aiMiningConfig": {"blockTimestamp": 0}},
|
||||
{"blake3Config": {"blockTimestamp": 0}},
|
||||
{"cggmp21Verify": {"blockTimestamp": 0}},
|
||||
@@ -41,18 +39,14 @@
|
||||
{"slhdsaVerify": {"blockTimestamp": 0}},
|
||||
{"zkConfig": {"blockTimestamp": 0}},
|
||||
|
||||
{"warpConfig": {"blockTimestamp": 1766708399, "disable": true}},
|
||||
{"warpConfig": {"blockTimestamp": 1766708400, "quorumNumerator": 67, "requirePrimaryNetworkSigners": true}},
|
||||
|
||||
{"pulsarVerify": {"blockTimestamp": 1782864000}},
|
||||
{"magnetarVerify": {"blockTimestamp": 1782864000}},
|
||||
{"p3qVerify": {"blockTimestamp": 1782864000}},
|
||||
{"coronaThreshold": {"blockTimestamp": 1782864000}},
|
||||
{"hqcEncapsulate": {"blockTimestamp": 1782864000}},
|
||||
{"bls12381G1AddConfig": {"blockTimestamp": 1782864000}},
|
||||
{"bls12381G1MulConfig": {"blockTimestamp": 1782864000}},
|
||||
{"bls12381G1MSMConfig": {"blockTimestamp": 1782864000}},
|
||||
{"bls12381G2AddConfig": {"blockTimestamp": 1782864000}},
|
||||
{"bls12381G2MulConfig": {"blockTimestamp": 1782864000}},
|
||||
{"bls12381G2MSMConfig": {"blockTimestamp": 1782864000}},
|
||||
{"bls12381PairingConfig": {"blockTimestamp": 1782864000}},
|
||||
{"curve25519Config": {"blockTimestamp": 1782864000}},
|
||||
{"x25519Config": {"blockTimestamp": 1782864000}},
|
||||
{"sr25519Verify": {"blockTimestamp": 1782864000}},
|
||||
|
||||
Reference in New Issue
Block a user