Heimdall is the backbone of Shibarium’s validator and state management, built on a customized Cosmos-SDK and a forked Tendermint (Peppermint). It manages validators, block producer selection, spans, state sync between Ethereum and Shibarium, and more.

Architecture Overview

  • Manages Validators: Handles validator set, power, and selection.
  • Span & Producer Selection: Allocates slots and shuffles for fair, weighted block producer selection.
  • State Sync: Relays and commits state between Ethereum and Shibarium.
  • Governance: Parameter changes and voting via on-chain proposals.
Diagram showing Heimdall as the validator/state management layer between Ethereum and Bor.

Heimdall's role in Shibarium PoS architecture

Validator & Producer Selection

1

Slot Allocation Shibd on Validator Power

Each validator receives slots proportional to their power (e.g., power 10 = 10 slots). Higher power = higher chance of selection.
2

Shuffling & Selection

Slots are shuffled using a seed from the Ethereum block hash for each span. The first producerCount are selected as block producers using the Ethereum 2.0 shuffle algorithm.

Messages & Types

CLI Commands

  • Propose a span:
  • Query current span:
  • Query span by id:
  • Print all params:
  • Chain manager params:
  • View governance params:
  • Submit a proposal:
  • List all proposals:
  • Query a proposal:
  • Vote on a proposal:

REST APIs

Governance Overview

  • Proposal Submission: Validators submit proposals with a deposit. If the deposit threshold is met, voting begins.
  • Voting: Validators vote on proposals. Each BONE token = 1 vote.
  • Tallying: After the voting period, votes are tallied based on quorum, threshold, and veto parameters.
  • Param Change Proposals: Used to update Heimdall module parameters (e.g., tx fees).