This motion whitelists the System.authorizeUpgrade call for the nexus-v8000 runtime so it can be dispatched via the Whitelisted Caller track on OpenGov.
Whitelist.whitelistCall(callHash) (pallet index 83, call index 0)0x0009b05ee8a5aa7be15a521b80462bec5543ab20c657018c1216ed21e4a2dddfbd000x001e1d358fbe548638c800a08777f53bba7fae7f52ff012e1e15369418006739Whitelist.whitelistCall: 0x5300001e1d358fbe548638c800a08777f53bba7fae7f52ff012e1e15369418006739f48786c71ae6c468915a5bcb1cd96a707d947f65nexus-8000 nexus-0.tx1.au1)0xb05ee8a5aa7be15a521b80462bec5543ab20c657018c1216ed21e4a2dddfbd00MAX_STATE_MACHINE_COMMITMENTS moves from 1,024 to 10,240. One commitment is stored per consensus update, so this bounds a time window rather than a block range: the effective retention is MAX_STATE_MACHINE_COMMITMENTS * consensus_update_frequency. The new default is sized to hold roughly a week of BSC updates at the 60s relayer cadence.
The pointer set that tracked retained heights is replaced with a per-chain FIFO queue (StateCommitmentQueue) keyed by a monotonically increasing insertion index, with head and tail indices held in CommitmentQueueStates. Insertion order matches height order because consensus updates only ever advance a state machine, so evicting at the head removes the oldest height. Each insertion now touches O(1) small storage items, which means a per-chain cap can grow without adding I/O or PoV weight to the insert path.
The change also adds StateMachineCommitmentCap, a per-chain override for retention depth that falls back to the default when unset. Chains with faster finality emit state machine updates more frequently and need a deeper queue to retain the same wall-clock window of provable heights. Raising a cap pauses eviction until the queue grows into it; lowering one drains the excess gradually, bounded by a per-call eviction limit.
This runtime includes pallet_ismp::migrations::SeedCommitmentCaps, which seeds StateMachineCommitmentCap for two fast-finality chains sized to a 6 hour retention window:
| Chain | Consensus state id | Block time | Seeded cap |
|---|---|---|---|
BSC (Evm(56)) |
BSC0 |
450ms | 48,000 |
Polygon (Evm(137)) |
POLY |
2s | 10,800 |
Each cap is only written if the chain has no cap configured yet, so re-running the migration never clobbers a value set by governance in the meantime.