Support of the Berlin hardfork on the xDai bridge oracles nodes

The 17th of May is the date when the xDai chain validators start supporting the Berlin hardfork.

Since the bridge oracles uses the local instance of OpenEthereum for security reasons, it is necessary to upgrade the nodes otherwise they will stop syncing that could affect the bridging process.

Below are instructions to prepare a xDai bridge oracle node for the Berlin hardfork.

The instructions include special steps to upgrade the OpenEthereum chain data base. It is required since the data base scheme the OpenEthereum 3.0.1 used on the bridge oracles currently is not compatible with OpenEthereum 3.2.x. Without the upgrade of database, the only way to use the newest version of the local node is to make full re-sync.

  1. Login to the system.

  2. Pull the new version of OpenEthereum and tag it as latest to avoid changing the docker-compose files configuring the bridge services.

    sudo docker pull openethereum/openethereum:v3.2.5
    sudo docker tag openethereum/openethereum:v3.2.5 openethereum/openethereum:latest
  3. Upload the database upgrade tool and make it executable.

    curl -LO
    chmod a+x oe-upgrage-db-3-1
  4. Stop the bridge: sudo systemctl stop poabridge

  5. Look at the file docker-compose-erc-native.yml in /home/poadocker/bridge/oracle directory to see the which directory is used for mapping to keep the chain data (most probably, it is /home/poadocker/chaindata).

  6. Run the upgrade tool. Note that the first part of the path depends on the directory name explored on the previous step. The tool requires to type “I AGREE” to confirm the upgrade.

    sudo ./oe-upgrage-db-3-1 /home/poadocker/chaindata/chains/xdai/db/3c648cbdc4c9333d/overlayrecent
  7. Start the bridge: sudo systemctl start poabridge

  8. Check the logs generated by the parity (OpenEthereum) service: sudo docker logs --tail 50 -f parity.
    They must contain information that about imported blocks.

If you have any issues or questions, please add a message to this thread.