Geth Clique Block Period 1, Fork of Chain inconsistency


In my private Clique network with 4 Nodes (A,B,C,D) I noticed a fork in the chain for block period 1.

I noticed that it happens some times with block period 1 & 2.

I noticed that the fork happens at block 1500 for example. Nodes A & D have a similar chain data meanwhile Nodes B& C have similar data.

At block 1500, I noticed the difference in data between 2 chains: 1) Block hashes are different 2) Block of one chain is an uncle block while for other chain it has 5000 txs included 3) Both blocks have same difficulty 2 which means that it was mined in turn 4) Another complication arises when I noticed it was the same sealer who sealed the block.

This results in fork of the network and stalling at the end which cannot undergo any reorg in this deadlock situation.

I noticed a bug reported already https://github.com/ethereum/go-ethereum/issues/18402 but they have atleast different difficulty and different sealers at the same block height.

Please can some one let me know if you faced this issue or a logical explanation of this issue

  • Having 4 nodes will complicate thing since majority is 3. If one node fails to send block in time then all remaining nodes have to agree. Even in a private lan I've seen nodes get disconnected. In my experience is quite common for a node to go down once in a while. An odd number of nodes is slightly better. – Ismael May 13 '20 at 18:33
  • Thanks even I thought the same: odd no of nodes should be better but I could not arrive why the same node seals twice for a particular block height. I check the difficulty of the block in both the forks and it is both in turn sealed but with different hashes. Do you have any idea please – cyril naves May 14 '20 at 8:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.