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 on the blockchain.
Subsequent blocks have increasing heights that differ by one.
Each block can contain up to 1,000
transactions (public network), being this value configurable per network.
Symbol blocks complete every 15
seconds, making transactions confirm quickly enough for everyday use.
Nodes stores blocks in a serialized form as follows:
Version: 0x01
EntityType: 0x8143
Inlines:
Property | Type | Description |
---|---|---|
height | Height | Height of the blockchain. Each block has a unique height. Subsequent blocks differ in height by 1. |
timestamp | Timestamp | Number of milliseconds elapsed since the creation of the nemesis block. |
difficulty | Difficulty | Determines how difficult is to find a new block, based on previous blocks. |
generationHashProof | VrfProof | Generation hash proof. |
previousBlockHash | Hash256 | Hash of the previous block. |
transactionsHash | Hash256 | Hash of the transactions in this block. |
receiptsHash | Hash256 | Hash of the receipts generated by this block. |
stateHash | Hash256 | Hash of the global chain state at this block. |
beneficiaryAddress | Address | Address of the optional beneficiary designated by harvester. |
feeMultiplier | BlockFeeMultiplier | Fee multiplier applied to block transactions. |
blockHeader_Reserved1 | uint32 | Reserved padding to align end of BlockHeader on 8-byte boundary. |
Symbol calls the first block in the chain the nemesis block. The first block is defined before launching a new network and sets the distribution of the network currency mosaics.
The process of creating the subsequent new blocks is called harvesting.
Blocks are created by accounts, which are chosen by the consensus algorithm based on their importance score. The consensus algorithm determines a new account to harvest the subsequent block after each block creation.
The harvesting account receives the fees for the transactions added in the block and the mosaics created by inflation. This gives the harvester an incentive to add as many transactions to the block as possible.
Blockchains are designed in a way that, in the presence of a network failure or partition, the recent blocks might need to be rolled back.
The rewrite limit is the maximum number of blocks that can be rolled back. Hence, forks can only be resolved up to a certain depth too.
Symbol’s public network has a rewrite limit of 398
blocks, but this limit is configurable per network.
The transactions linked to a block are permanently recorded on the blockchain once the number of confirmation blocks (subsequent blocks) surpasses the maximum number of rollback blocks.
Get the block information given a height.
Get notified when a new block is included.
Continue: Transaction.
Did you find what you were looking for? Give us your feedback.