#StackBounty: #go-ethereum #private-blockchain #hardforks #clique Is it possible to hard fork a private network to Constantinople?

Bounty: 50

I have a Proof-of-Authority private Ethereum network that has Byzantium EVM version and created by clique engine. I have a single miner that has Geth version: v1.8.27.

  "config": {
    "chainId": 23422,
    "homesteadBlock": 1,
    "eip150Block": 2,
    "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
    "eip155Block": 3,
    "eip158Block": 3,
    "byzantiumBlock": 4,
    "clique": {
      "period": 15,
      "epoch": 30000

Please see my configuration file: custom.json.

When I start geth I get following output:

INFO [07-10|13:46:36.647] Initialised chain configuration          
config="{ChainID: 23422 Homestead: 1 DAO: <nil> DAOSupport: false EIP150: 2
EIP155: 3 EIP158: 3 Byzantium: 4 Constantinople: <nil>  
Petersburg: <nil> Engine: clique}"

I assume since Constantinople: <nil> in the configuration file and I cannot alter the custom configuration file there is no way I can hard fork the private chain.


The configuration is fixed via constants in the code (see
ChainConfig). A custom configuration can be provided in genesis
specification file, however, this is only applicable when setting up a
new chain.

Hence, currently the only way to make a hard fork in a private network
is to ensure that all participants shutdown/upgrade/restart in a
predefined time slot.

// I have updated the geth version but in general I am not sure to check that whether the private chain is updated.

[Q] I was wondering, is it possible to hard fork a private chain that has different EVM version to Constantinople EVM?

Get this bounty!!!

#StackBounty: #go-ethereum #nodes #proof-of-authority #poa #clique Unable to Add 3rd Proof-of-Authority Sealer Node

Bounty: 50

I have a geth POA private blockchain setup and running with 2 sealer nodes. Now I have setup a 3rd node as a sealer, and ran the following command on the both existing sealer nodes

clique.propose("0x555c9e3d738837d14ebda7cad9359f840f3c650c", true)
> null

and we confirm that the 3rd node has been voted because we see the address of the 3rd node when we run clique.getSigners() along with the other two sealer nodes’ address.

Problem: However after we start and restart the 3rd geth node that we are trying to add as a sealer node, we get the error

INFO [08-24|21:25:55.169] Commit new mining work number=1 sealhash=e935f6…e90182 uncles=0 txs=0 gas=0 fees=0 elapsed=256.472µs

WARN [08-24|21:25:55.170] Block sealing failed err=unauthorized

This error persists even when running clique.propose(...,true) on the 3rd node to for itself.

On Ethstats, we see that this 3rd node is stuck at block #0 and never tries to sync the blockchaibn.

Any help is greatly appreciated!

Get this bounty!!!