Update OpenEthereum to v3.2.2

Hi, @mariano.conti, @syncnode, @denisgranha, @saschagoebel, @austintgriffith, @chebykin,

We’re preparing xDai chain for Berlin hard fork. To do this, the chain needs to have OpenEthereum v3.2.2 on validator nodes. Please, upgrade your xDai validator node to 3.2.2-rc.1.

Part of validators has already been upgraded, and part of other validators will be asked to switch to Nethermind client.


1) If you are running OpenEthereum v3.1.0-rc.1, you just need to set this line in your docker-compose.yml (instead of previous version):

image: openethereum/openethereum:v3.2.2-rc.1

And then restart your node using the following commands:

docker-compose down
docker-compose up -d

2) If you are running OpenEthereum v2.7.2 or v3.0.1:

The switching from these versions to 3.2.2 requires resyncing from scratch on another server instance (because there was POSDAO backport from these versions to >=3.2.2 and OE database versions are not incompatible), so you need to follow the steps below:

  1. Create a separate Ubuntu 20.04 instance.

  2. Install Docker Engine and Docker Compose following the original instructions Get Docker | Docker Documentation and Install Docker Compose | Docker Documentation

  3. Clone the following repo:

    git clone
    mv validator-node-dockerized openethereum
    cd openethereum
  4. To be a validator, you need to have a mining address and a private key for it. Name your JSON keystore file as key and put it to the openethereum directory. Put keystore’s password to password file.

  5. Copy .env.example to .env and configure the .env file. There are a few settings you need to define:



    • ETHSTATS_ID - The displayed name of your validator in
    • ETHSTATS_CONTACT - Validator’s contact (e.g., e-mail).
    • ETHSTATS_SECRET - Secret key to connect to Netstat (should be provided by xDai team, please, request it if you don’t have one).
    • EXT_IP - External IP of the current server.
    • ACCOUNT - Your mining address (with leading 0x).
  6. Edit docker-compose.yml file with your favorite text editor to remove the line


    This will temporarily set you new node as a non-validator.

  7. Start your node and wait for it to be fully synced:

    docker-compose up -d
  8. Once the new node is fully synced, you will need to stop your old node on an old instance:

    8.1. For OpenEthereum v2.7.2 (uses playbook setup):

    sudo systemctl stop poa-parity
    sudo systemctl stop poa-netstats

    8.2. For OpenEthereum v3.0.1 (uses docker setup):

    docker-compose down
  9. Once the old instance is stopped, go to your new instance and edit docker-compose.yml file to activate a validator role - add the following line to the command section of the file:

  10. Restart your node using the following commands:

    docker-compose down
    docker-compose up -d

    Now, your new node should produce blocks.

Please, report here as soon as you go through the above steps.

Thank you!

1 Like

Hello @varasev !

Sync in progress for syncnode validator. We’ll be switching to the new server once the node will be fully synced.

L.E. @varasev syncnode validator is up and running on OE v3.2.2-rc.1



Hi @varasev ,
Giacomo from Gnosis here, we’ve migrated the validator to OpenEthereum v3.2.2-rc1. It’s fully synced and is validating blocks correctly, also ethstats-agent v0.1.1 is running.

Thank you


Updated! Everything looks good :smiley:


Anyblock updated to openethereum/openethereum:v3.2.2-rc.1 and xdaichain/ethstats-agent:latest and successfully validating.

1 Like

@austintgriffith, @chebykin A reminder: please migrate to OE v3.2.2 using the instruction above

Lab10 collective is sync and validating with OE 3.2.2.

1 Like just migrated to OE 3.2.2

1 Like