PlatONnetwork/PlatON-Go

Proof Reading The Galileo (v1.1.2) release

Closed this issue · 0 comments

Galileo Release (v1.1.2)

The Galileo (v1.1.2) release is a hotfix for an online issue #1880 that could cause verifier nodes to be slashed

Bug-fixes

  • Fix data inconsistency in concurrent cases due to the use of global random instancePlatON-issue-1880

Notes

When the seed of a random instance is contaminated by concurrency, there will be a 'BAD BLOCK' in the nodes' log. Besides, the block will not be verified, resulting in failure to receive enough votes for the proposer's block. There are 3 possible situations as follows,

  • If the first block produced by the node is not affected, but the seed has been contaminated in subsequent blocks. The node's block production rate will be affected because the final confirmed block is less than 10, the expected number.

  • According to Giskard consensus mechanism, if the first block is contaminated by concurrency, the next blocks can be proposed without confirmation. Subsequently, all blocks of the node in this round will not be confirmed, which will eventually result in 0 blocks proposed and the nodes being slashed.

  • For non-block-producing nodes, the seed may be contaminated while verifying the block, resulting in failure to pass the block verification. Hence, the overall fault tolerance of the consensus will be reduced regarding that the contaminated node can't vote.

    In the above consideration, it is strongly recommended that all verifiers upgrade your node immediately.