#38·Whitelist call for nexus runtime upgrade nexus-8000

1mo ago
0 Comments
Executed

Whitelist call for nexus runtime upgrade nexus-8000

This motion whitelists the System.authorizeUpgrade call for the nexus-v8000 runtime so it can be dispatched via the Whitelisted Caller track on OpenGov.

Call Details

  • Call: Whitelist.whitelistCall(callHash) (pallet index 83, call index 0)
  • Encoded call: 0x0009b05ee8a5aa7be15a521b80462bec5543ab20c657018c1216ed21e4a2dddfbd00
  • Call hash (keccak-256): 0x001e1d358fbe548638c800a08777f53bba7fae7f52ff012e1e15369418006739
  • Encoded Whitelist.whitelistCall: 0x5300001e1d358fbe548638c800a08777f53bba7fae7f52ff012e1e15369418006739

Runtime Details

  • Release: nexus-v8000 (published July 17, 2026)
  • Commit: f48786c71ae6c468915a5bcb1cd96a707d947f65
  • Spec version: 8000 (nexus-8000 nexus-0.tx1.au1)
  • WASM file: 2,048,358 bytes (1.96 MiB)
  • Keccak-256 hash: 0xb05ee8a5aa7be15a521b80462bec5543ab20c657018c1216ed21e4a2dddfbd00
  • Toolchain: rustc 1.91.1

What's Changed

State commitment retention raised per chain (#1049)

MAX_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.

State commitment pointer set replaced with a per-chain FIFO queue (#1050)

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.

Storage migration

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.

Edited
Reply
Up
Share
This vote has been closed.
Call
Metadata
Timeline4
Comments