Consensus

Dock is built on Substrate and uses the consensus mechanism offered by Substrate which is a hybrid as it separates block production and finality and achieves them through different methods. The finality is achieved through a finality gadget called GRANDPA (GHOST-based Recursive ANcestor Deriving Prefix Agreement). It finalizes chains rather than individual blocks and offers provable finality. More details on GRANDPA are available on the Web3 Foundation's research page. It is implemented in Substrate in this pallet.

Dock will start with a Proof of Authority (PoA) network and therefore the block production algorithm in this phase will be Aura. This algorithm divides time into fixed intervals and gives each validator an equal chance to produce 1 block in round-robin intervals. It is implemented in Substrate in this pallet.

When Dock transitions into utilizing PoS, the block production algorithm changes from Aura to BABE (Blind Assignment for Blockchain Extension protocol) which selects a validator for each slot (interval of time) randomly using a VRF (Verifiable Random Function). BABE is similar to IOHK's Ouroboros Praos. More information about this is available on Web3 Foundation's research page. It is implemented in Substrate in this pallet.

For development purposes, we will bundle instant-seal consensus which produces a block as soon as the transaction reaches the node rather than wait for blocks to be produced at a fixed interval. This is helpful when running the SDK against a local node during development.

‚Äč