Migrate Validator
How to migrate an Autonity validator node to a new instance or to a new IP/Port address
- Ensure that the host machine meets the minimum requirements
Migrating validator node to a new IP/Port address
This guide describes how to migrate a validator node to an environment with a new IP/Port network address by updating the validator’s registered enode URL.
Only the network connection information - IP and/or port - of a registered validator enode can be updated. You cannot change the validator’s address (i.e. the PUBKEY
part of the validator enode URL).
When performing the update the validator must not not be an active member of the consensus committee. It is recommended that you pause
your validator before migration. This is to prevent your node being elected as a committee member while you are in the process of migration.
Step 1: Pause the validator
Pause the validator as described in the guide Pause as a validator.
If your validator is an active member of the consensus committed, wait for the epoch to end before proceeding further.
Call aut protocol get-committee
to verify that your validator address does not appear in the list of committee validators returned.
Step 2: Update enode URL with new IP/Port address
The guide uses the aut contract call
and aut contract tx
commands for the contract interaction.
aut contract
usage requires that you specify the ABI file and the protocol contract address of the contract being called. To complete the guide you will need to call 2 protocol contracts:
- the Autonity Protocol Contract (
Autonity.abi
) with the protocol contract address0xBd770416a3345F91E4B34576cb804a576fa48EB1
.
The Autonity Protocol Contract Interfaces is called to update the validator enode URL.
The abi
files are generated when building the client from source and Autonity.abi
can be found in your autonity
installation directory at ./params/generated/Autonity.abi
. Alternatively, you can generate the ABI using the abigen
cmd
utility if you built the utility when building from source (See Install Autonity, Build from source code).
The guide explicitly sets the path to the ABI file and contract address for clarity. Note that the ABI file and contract address can be set as defaults in aut
’s configuration file .autrc
using the contract_address
and contract_abi
flags:
#contract_abi = Autonity.abi
#contract_address = 0xBd770416a3345F91E4B34576cb804a576fa48EB1
The guide assumes the ABI file is in the directory from which the aut
command is run, and aut
is configured to use the validator treasury account keyfile.
Call updateEnode()
passing in parameters for:
<NODE_ADDRESS>
: the validator identifier address of the validator node<ENODE>
: the new enode URL value
aut contract tx --abi Autonity.abi --address 0xBd770416a3345F91E4B34576cb804a576fa48EB1 updateEnode <NODE_ADDRESS> <ENODE> | aut tx sign - | aut tx send -
On commit, the transaction will update the validator’s registered enode URL in system state. you can view the updated enode using aut validator info --validator
.
Step 3: Migrate to new environment
Migrate the node to the environment with the new IP/Port address configuration as described in the guide Migrating validator node to a new environment on this page.
Step 4: Start validator node
Start the validator as described in the guide Run Autonity.
Step 5: Re-activate the validator
Reactivate the validator as described in the guide Reactivate as a validator.
The validator has resumed an active state and can join the consensus committee if selected.
Migrating validator node to a new environment
To migrate a node to a new instance follow the steps described in the node operator’s guide Migrate Autonity.
If your node is in an active state, you must pause the validator node before migration. Reactivate the validator after migration.
Be sure to fully decommission the original node installation!
If you need help, you can chat to us on Autonity Discord Server!