Helium Blockchain Primitives
Below are some of the larger components and concepts of the Helium blockchain.
Blocks
Blocks are used to record the most recent set of transactions in the Helium blockchain. Blocks are
mined based on time, as defined in the block_time
chain variable. The current target block time is
60000
milliseconds (or 60 seconds). During any given epoch, the most recent block consists of:
- Block Version
- Block Height
- Previous Block Hash
- Transactions (stored as a Merkle hash)
- Threshold signature from the current consensus group
The easiest way to see the blocks being mined is with the Helium Blockchain Explorer. The Helium Mobile App also shows block details. Developers can also use the Helium blockchain API to access all blockchain transactions and metadata.
Chain Variables
Chain Variables, often referred to as chain vars
, are a series of configuration settings for the
Helium blockchain. Chain Variables can be used to change things like target block time, target epoch
time, the minimum number of targets in a PoC Challenge, and much more. Chain Variables can be
altered by submitting a transaction containing the chain variable to be changed, its new value, and
a signature of the chain variable master key.
A full list of chain vars and their current values can be found here.
Accounts, Wallets, and Keys
The Helium blockchain uses an account-based system for wallets and balances (similar to Ethereum and others) as opposed to a UTXO-based ledger like Bitcoin blockchain. Users have several options for creating Helium wallets and managing their private keys:
- If you’re using the Helium Mobile Wallet (iOS, Android), your private key is encrypted locally (and can be recreated on another mobile device using the 12 word passphrase generated when your wallet was first created);
- Using the Helium CLI Wallet, users are responsible for creating, storing, and securing a wallet’s private key and associated passphrase;
Both the Helium Mobile Wallet and the CLI Wallet create and use keys based on the ed25519 public key signature system. The CLI can also support NIST p-256 keys. And the Helium blockchain supports both key types.
To learn more about existing wallet solutions, check out our section on wallets.