AuRa is the name for Parity's Proof-of-Authority (PoA) consensus engine, the name originally comes from Authority Round (used to be AuRo). It's used in the Kovan network.
PoA networks are permissioned not public by design. Only strictly defined authority nodes are allowed to seal blocks. This is very useful for test networks or enterprise networks where the native tokens on the blockchain are not holding any value and therefore would be easy to attack in a Proof-of-Work (PoW) or Proof-of-Stake (PoS) environment.
A step is one part of the authority round. Each authority can seal one block in each round. Let's say we have five authorities: 0x0a .. 0x0e
. These would be the steps, as defined in the chain specification or in the dynamic validator contract:
- Step 1:
0x0a
seals a block
- Step 2:
0x0b
seals a block
- Step 3:
0x0c
seals a block
- Step 4:
0x0d
seals a block
- Step 5:
0x0e
seals a block
After the round is finished, it starts over again.
What do you mean by "Blocks from more than 1 step into the future are rejected."?
Now if The node 0x0c
would try to seal a block right after 0x0a
, then this block would be more than 1 step into the future. The block sealing strickly relies on the block step order of all authorities.
And also what happens when the next primary doesn't broadcast?
That's no problem, there will be a gap between two blocks, i.e., doubled block time. So if 0x0c
notices that 0x0b
is not providing a block in the specified time window, it can override this step with its own block and the round goes on. There are certain tolerances on the block timestamps to make sure the network does not stall.
In this screenshot above, you can see that two authorities in the Kovan network are not sealing blocks. The result is an increased block time between these steps.
Disclosure: I work for Parity.