Block
The central element of every cryptocurrency is a public ledger called the blockchain, which links blocks together.
Since the blocks in the chain are ordered, the complete transaction history is held in the blockchain. Subsequent blocks in the blockchain have increased heights that differ by one.
Blocks are stored in a database as a permanent medium. Sirius Chain calls the first block in the chain the nemesis block.
Sirius Chain blocks complete every 15
seconds, making transactions confirm quickly enough for everyday use.
Note:
Configuration parameters are editable. Public network configuration may differ.
Block creation
Blocks are created by accounts. The process of creating new blocks is called validating. The validating account - called the validator - gets the fees for the transactions in the block and inflation. This gives the validator an incentive to add as many transactions to the block as possible.
Guides
-
Get notified when a new block is included.
-
Get the block information given a height.
Schemas
BlockHeader
Inlines:
Property | Type | Description |
---|---|---|
height | uint64 | The height of the blockchain. Each blockchain has a unique height. Subsequent blocks differ in height by 1. |
timestamp | uint64 | The number of seconds elapsed since the creation of the nemesis block. |
difficulty | uint64 | The block difficulty. |
feeMultiplier | uint32 | The fee multiplier applied to transactions contained in block. |
previousBlockHash | 32 bytes (binary) | The hash of the previous block. |
blockTransactionHash | 32 bytes (binary) | The transactions included in a block are hashed forming a merkle tree. The root of the tree summarizes them. |
blockReceiptsHash | 32 bytes (binary) | The collection of receipts are hashed into a merkle tree and linked to a block. The block header stores the root hash. |
stateHash | 32 bytes (binary) | The state of the blockchain is stored in RocksDB for each block, forming a patricia tree. The root of the tree summarizes the state of the blockchain for a given block. |
beneficiaryPublicKey | 32 bytes (binary) | The public key of the optional beneficiary designated by validator. |
feeInterest | uint32 | The part of the transaction fee validator is willing to get. From 0 up to feeInterestDenominator . The customer gets (feeInterest / feeInterestDenominator)'th part of the maximum transaction fee. |
feeInterestDenominator | uint32 | Denominator of the transaction fee. |
Version: The higher byte represents the network identifier.
Id | Description |
---|---|
0xB8 (MAIN_NET) | Public main network |
0xA8 (TEST_NET) | Public test network |
0xC8 (PRIVATE) | Private network |
0xB0 (PRIVATE_TEST) | Private test network |
Type: The type of the block.
Id | Description |
---|---|
0x8043 | Nemesis block |
0x8143 | Block |
VerifiableEntity
Property | Type | Description |
---|---|---|
signature | 64 bytes (binary) | The entity signature generated by the signer. |
EntityBody
Property | Type | Description |
---|---|---|
signer | 32 bytes (binary) | The entity signer’s public key. |
version | uint16 | The version of the structure. |
type | uint16 | The entity type. For transaction types, see transaction types. |