On the following blog, at very last paragraph, Vitalik Buterin
mentioned that:
Hence, a 3-second target block time (and 5s actual block time) may be
quite viable. As usual, we’ll be more conservative at first and not
take things that far, but a block time of 12s does nevertheless seem
to be very much achievable.
I am not sure that does this statement holds on Proof-of-Authority consensus. Please see my example CustomGenesis.json file.
On the Proof-of-work
consensus block time is dynamically changes based on the network, but on the Proof-of-Authority
consensus, block time is fixed and we cannot change it after block-time is defined on the genesis block.
"clique": {
"period": 15,
"epoch": 30000
}
For example Rinkeby Ethereum testnet uses Proof-of-Authority and its block time is 15 seconds.
By following this tutorial, I have created a private chain based on Proof-of-Authority
by using clique consensus engine - proof-of-authority
. By default, blocks also recommended is 15 seconds. The problem is after, when we decide the block time on the genesis file, in future we cannot change it.
$ puppeth
...
How many seconds should blocks take? (default = 15)
> 15
Assume that we have a private ethereum-network with good network connectivity.
[Q] What might be the safest minimum block time to use without having any problem on Proof-of-Authority consensus?
For example, could I use 12 seconds or even less (such as 5 seconds) for block time without having any problem? If no, what kind of problems will I face with?
Thank you for your valuable time and help.
Best Answer
PoA in Aura consensus engine of parity defaults to 5s, which has been tested to run with good stability. PoA network runs one such infrastructure.
I have tested for a 1 sec PoA using aura running across 4 different geographical regions. This is the minimum possible and one that I have successfully tested :) Stability testing across more regions is still in progress. Will update with more info.
Update
Stability testing was successful. Only problems that were faced were regarding timings, the servers have to be synchronised with same time. After resolving this issue, there were no more problems.
The main thing being that they all need to have a synchronised time.
Possible problems that you might face:
Personally, I think 5s is a decent time for PoA and runs smoothly without any problems. If you wanna read about Aura, see Aura Consensus Protocol Audit.