Skip to content

v2.4.0 - Basel

Latest

Choose a tag to compare

@kongrath kongrath released this 09 Mar 03:19

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 wiggleTime from 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.2v2.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
  • wiggleTime reduced 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:

  1. Produce the missing block — ensuring the chain never stalls, regardless of individual validator availability
  2. Slash and penalize the non-performing validator — enforcing accountability and incentivizing uptime across all validators
  3. 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 InitialSuperNode system transaction.

Security Patches

  • ECIES decryption validation fix — patched crypto/ecies/ecies.go to use params.BlockSize instead of a hardcoded constant when validating ciphertext length during decryption. Prevents potential invalid message handling during node handshake (P2P encryption layer)

Other Features

  • BaselConfig in 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