1

I have a private Ethereum Network. It was working without any problems when I had a single miner. But when number of miners increase, I am faced with the following problem:

The way I have started my bootnode:

[~] id="<bootnode's_id>";
[~] sudo geth --networkid 23422 --datadir="$ebloc_path" --rpc --rpcaddr \
"localhost" --rpccorsdomain="*" --rpcport="8545"  --nodiscover --bootnodes \ 
enode://$id@<my_ip>:<my_port> --autodag=false console

My bootnode is called ebloc and all the other nodes are connected into it. When I check net in each node, it returns peerCount as 1, except for bootnode which returns 3, which is the count of all miners.

One of my nodes (avatar) starts creating its own chain, independent from the main private network, while still being connected and returning a peerCount of 1. My other nodes are not in sync with avatar's chain and continue from their own chain.

enter image description here

As you can see ebloc and avatar 's block-hash value on the same block-number differs from each other.

On node called ebloc:

> eth.getBlock(779625)
{
  difficulty: 2688822,
  extraData: "0xd683010509846765746885676f312e388664617277696e",
  gasLimit: 129610224,
  gasUsed: 0,
  hash: "0x2e268c20c9f93faed27f13177c95ec8dee8fea7c247db8d55e9f297fac2c5699",
  logsBloom: "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
  miner: "0x7521d64a1de866e36e326de6a18acf431ff55da6",
  nonce: "0x510d0783341e950d",
  number: 779625,
  parentHash: "0xe61e3960b797a87f75ef01b9c4d2ee493e6c5df6b7637d3bfc41a026a24c54db",
  receiptRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
  sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
  size: 538,
  stateRoot: "0x173169da0048b6c5fef26e77c92ac11391c8553f8f64e136a6c41f268ce4a783",
  timestamp: 1487759403,
  totalDifficulty: 892820498437,
  transactions: [],
  transactionsRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
  uncles: []
}

On node called ebloc:

> eth.getBlock(779625)
{
  difficulty: 1117247,
  extraData: "0xd583010412844765746885676f312e36856c696e7578",
  gasLimit: 460402630,
  gasUsed: 0,
  hash: "0xa6fabbd0d3cae5c9f4c169d15fd0429c4c93500f3393de47318ae56b22f9d95b",
  logsBloom: "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
  miner: "0x7eee9c6e5a05083889cab179b18cad85479bccaa",
  nonce: "0x7270b78b5c68477a",
  number: 779625,
  parentHash: "0x46c86ff442a4c021ed530cd6f0bfb02ccabdf117d507f0340b254d8c9e235b85",
  receiptRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
  sha3Uncles: "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347",
  size: 537,
  stateRoot: "0xca4e394f65daa45e2cb2d822377f6a3005dffd7390490445694617bed818d1a5",
  timestamp: 1487758237,
  totalDifficulty: 890124708731,
  transactions: [],
  transactionsRoot: "0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421",
  uncles: []
}

[Q] What might be the cause of this problem (I assume there should be a fork in the blockchain that is uncle mining) and how can I prevent this from happening?

I guess the problem is related to "Uncle Mining, an Ethereum Consensus Protocol Flaw".

When I re-started my nodes' geth process, block synchronisation started and it seems fixed but after a while it have generated uncle mining again and this time disconnected from the network.

enter image description here

I have deleted avatar's chain and re-create it from the scratch, that was the only way uncle node avatar was able to synchronise with the original network's chain.

Please let me know if any additional information is required.

Thank you for your valuable time and help.

  • 1
    I think this is impossible to answer without looking live at the verbose logs. Something is wrong with the synchronization. – soc1c Mar 23 '17 at 14:35

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.