[Ethereum] How to add more authority nodes in Private chain Proof of Authority

parityprivate-blockchainproof-of-authority

Scenario: I am running a private chain having some authority nodes. The entire network is running fine.

  • Question

    How should I add more authority nodes in the network. Other than the ones defined in genesis file.

  • Attempt 1

    I modified genesis file of all the nodes in the network and restarted them. They all agree upon the new authority. It has been accepted by the network.

  • Problem

    Now I add a new non-authority node with the updated genesis file. It does not sync correctly, instead it stops at block #2 after an error:

    Error: Engine(NotProposer(Mismatch { expected: 00ad89…, found: 0068… }))

  • Possible Solution

    I change the genesis and remove the one authority which was added previously and try syncing it. It syncs correctly to the block at which authority was added. Then sync stops. Then I modify genesis again to add that authority to get it synced to latest block.

I am not sure if this is the correct way to add authority nodes in the network?

Info: I am running aura consensus engine using parity.

Best Answer

The OP states they are using parity, which I had missed initially. But just for general info, here is the process for geth users on a PoA network.

Use

clique.propose('....')

You have to create an account for the new node using

geth --datadir ... new account

Then add clique.propose(..) to a majority of the nodes. Try all to be safe.

Related Topic