Summary
Implements the Basel hardfork for the KUB chain with the following major changes:
- Introduce Super Node as new consensus role, replacing Official Node
- Reduce block time from 5s → 3s and
wiggleTimefrom 500ms → 100ms - Disable solo node staking and convert old Official Node to standard pool node
- Perform on-chain state migration for PoS contracts at the fork activation block
- Security patch for ECIES decryption validation in P2P node handshake
Version: v2.3.2 → v2.4.0
Breaking Changes
- Official Node revoked — demoted to standard pool node at fork block (
isOfficialPool = false); Super Node takes over block production duties - Solo node staking disabled — new solo node registrations are no longer accepted post-Basel
- Block time reduced 5s → 3s — all downstream services relying on block intervals must adjust accordingly
wiggleTimereduced 500ms → 100ms — faster block propagation for Super Node; other signers have less random delay window
New Features
Zero Downtime with Failsafe Supernodes
The Super Node is a new consensus role that guarantees zero downtime for the KUB chain. It acts as a failsafe block producer — when the in-turn validator fails to propagate a block within the expected time window, the Super Node automatically steps in to:
- Produce the missing block — ensuring the chain never stalls, regardless of individual validator availability
- Slash and penalize the non-performing validator — enforcing accountability and incentivizing uptime across all validators
- Maintain chain liveness — the Super Node is always authorized to seal blocks, providing a last-resort guarantee against network halts
Unlike the previous Official Node (which operated as a privileged validator), the Super Node is purpose-built as a network reliability layer. It does not compete with validators during normal operation — it only activates when validators fail to meet their duties.
The Super Node replaces the Official Node at the Basel fork block. The Official Node is demoted to a standard pool node, and the Super Node is registered on-chain via the
InitialSuperNodesystem transaction.
Security Patches
- ECIES decryption validation fix — patched
crypto/ecies/ecies.goto useparams.BlockSizeinstead of a hardcoded constant when validating ciphertext length during decryption. Prevents potential invalid message handling during node handshake (P2P encryption layer)
Other Features
BaselConfigin chain config — configurable fork block, block period, super node address, and super node owner via genesis JSON ("baselBlock": { ... })GetBlockPeriod(num)— dynamic block period lookup; returns 3s post-Basel, 5s pre-Basel- On-chain state migration — atomic storage slot writes at fork block: creates Super Node validator in
StakeManagerStorageV3, mints NFT to owner, updates contract references