3

I have followed following answer about How to add new Sealer in Geth 1.6 Proof of Authority?.

Currently I have one signer account 0x4e4a0750350796164d8defc442a712b7557bf282. With one signer the mining was working without any problem. My signer account proposed a new signer account using propose() function.

clique.propose("0x5b29ede59ecff473fb5760a53dbacc21cbc5b3dd", true) 

On my signer node and other nodes, I can see the new address on my signers list (clique.getSigners()),

clique.getSigners()
["0x4e4a0750350796164d8defc442a712b7557bf282", "0x5b29ede59ecff473fb5760a53dbacc21cbc5b3dd"]

Than on my other node which has 0x5b29ede59ecff473fb5760a53dbacc21cbc5b3dd I have unlocked that account and run miner.start() command, but no help on mining new blocks on the network. So network stop mining new blocks :(

Also new signer account does not show up on my other connected node, which has the account for new added signer.

Now, I cannot also remove the newly added signer using:

clique.propose("0x5b29ede59ecff473fb5760a53dbacc21cbc5b3dd", false)

Please note that both signers are unlocked and miner.start() is active.

[Q] How could I solve this problem?

alper
  • 8,395
  • 11
  • 63
  • 152
  • I mean instead of "0x", there is original ethereum address. And another node that address is unlocked and I run miner.start() command but still mining new blocks is stopped. @ivicaa – alper Feb 28 '18 at 16:03
  • 1
    Is "0x5b29ede59ecff473fb5760a53dbacc21cbc5b3dd" also eth.coinbase? I am not 100% sure, but I remeber having problems when the sealer account is not eth.coinbase. – ivicaa Feb 28 '18 at 16:11
  • No it is not; let me make it coinbase and see will there be any change. @ivicaa – alper Feb 28 '18 at 16:13
  • 1
    Ah I feel like a stupid, eth.coinbase was pointing some other address, when I updated with "0x5b29ede59ecff473fb5760a53dbacc21cbc5b3dd" it get solved. @ivicaa – alper Feb 28 '18 at 16:17
  • How could I remove new added signer? @ivicaa – alper Feb 28 '18 at 16:35
  • Both accounts have to send clique.propose(..., false). You always need 50% + 1 vote, which is 2 for 2 accounts. – ivicaa Feb 28 '18 at 16:36
  • It didn't work :( before remove a signer, again each account should be assigned to coinbase, again? or is there any default account for the clique as well? @ivicaa – alper Feb 28 '18 at 16:42
  • 1
    It worked! But it does not right away show up on the clique.getSigners() @ivicaa – alper Feb 28 '18 at 16:48
  • 1
    I assume it has to be eth.coinbase. I am again not 100% sure, but It might take some blocks until the request is processed. Where I am 100% sure is that both have to vote false for the address which is to be removed. – ivicaa Feb 28 '18 at 16:48
  • You are right, I think it takes around 10 blocks to be show up on the clique.getSigners() @iviaa – alper Feb 28 '18 at 16:54
  • Yes. They‘ll calling that snapshots or so, but I don‘t know the design rationale behind it. – ivicaa Feb 28 '18 at 17:03
  • If there is 10 signer accounts on the same node and all are unlocked. How can each can do propose? I can ask this on a different question. @ivicaa – alper Mar 01 '18 at 10:52

1 Answers1

4

eth.coinbase has to point to the sealing account.

If you want to remove again the second account, both accounts will have to propose the removal. You always need 50% + 1 vote, which is 2 for 2 accounts.

ivicaa
  • 7,519
  • 1
  • 20
  • 50