This tutorial will walk you through the setup of a private blockchain using Aura consensus mechanism and a dynamic validator set contract.
No previous knowledge of OpenEthereum or Aura is required.
Aura (for “Authority Round”) is a proof-of-authority (PoA) consensus mechanism that lets a defined set of authorities seal blocks in a round robin fashion. The term validator is also used in place of an authority node. Unlike proof-of-work (PoW) based consensus mechanism, PoA-based consensus makes sense for private consortium blockchains or networks using a currency without value such as test networks where there is no incentive for miners to spend money in mining. Kovan testnet is running on Aura.
There are different ways to define the set of authorities in the chain specification file. The easiest way is to use a fixed list of authorities. Any change in this list requires a hard fork, and thus an off-chain synchronisation between the parties running authority nodes. Kovan network historically ran with a fixed list of authorities.
A fixed list of addresses works well for small networks with few participants. However, it lacks flexibility as there is no easy way to add or remove validators, there is also no monitoring mechanism to report if authority nodes are offline. Using a contract, however, allows managing authorities without a hard fork as well as reporting misbehaving authorities. This tutorial will show the setup of a network using a fixed list of validators at its start and then move to a Validator-set smart contract to manage authorities. Finally, we will use a simple script to monitor authorities and spot the misbehaving ones.
The overall setup is as follows:
If you wish to read this tutorial and quickly get to the end result, you can clone this repository and spin up the nodes with an already set up blockchain.
|Part 1 - Configuring each node →|