What Is Proof-of-Authority (PoA)- Part 2?
Working of PoA in Apla
- New blocks will be created by validated nodes or selected nodes. The blockchain network and the distributed ledger will be maintained by the validated nodes only.
- The blockchain registry is used to keep the list of validating nodes.
Creation of a new block
A leader node of the current interval time creates a new block. The role of a leader node is transferred to the next validating node at each interval time. The next validating node will be selected from the list of validating nodes. In simple words, the current leader node means a node who creates a new block at the current time.
leader = ((time – first) / step) % nodes is a formula used to determine the current leader node.
- Leader: the current leader node
- Time: the current time
- First: the first block generation time
- Step: the number of seconds taken in the block generation interval
- Nodes: the number of nodes presents at the current block generation interval.
Steps to create a new block
- The current leader node will collect all new transactions. All the new transactions will be collected from a transaction queue of the current leader node.
- All the transactions will be executed one by one. Invalid transactions will be rejected.
- Compliance to block generation limits will also be checked.
- A new block with valid transactions will be created. The new block will be signed with the private key [The Elliptic Curve Digital Signature Algorithm (ECDSA)] of the node.
- The new block will be sent to other validating nodes.
Validation of the new block
Other validating nodes will receive the new block. The validating nodes now will validate the new block like whether the leader node at the current interval time created the new bock, created no other blocks, and generated & signed the block correctly. They will also check whether the current leader node executed the transactions one by one and executed the transactions successfully and within block generation limits. Adding or rejecting of the block will be depended upon the previous step. If the validation of the new block is successful, then the new block will be added to the existing blockchain. If in case, the validation of the new block is not successful, then the block will be rejected and a bad block transaction will be sent.
*A block can be either banned or excluded from the list of validating nodes due to the constant creation of invalid blocks.