Configuring a Babylon node for migration from Olympia with the CLI

1. Introduction

These instructions aim to help you configure your babylon node using the nodecli.

Please refer to the Olympia to Babylon node migration page for more information about the migration process in general.

2. Install dependencies on the host machine

This is required only to be run during first time setup on a new host machine. This is done through one simple call of the babylonnode CLI script.

  • docker mode

  • systemd mode

babylonnode docker dependencies

Once the process has completed, you will be asked to log out of your ssh bash session and log back in.

babylonnode systemd dependencies

The script will install the software necessary for systemd mode. You’ll be asked to create a password for the radixdlt user. (For security, the node runs under the radixdlt user, rather than running as an administrator).

Once you have entered and confirmed the password, you will be presented with a series of instructions to enable the radixdlt user to execute commands without the need for user intervention.

Execute following commands so that the radixdlt user can use sudo commands without needing you to enter a password:

  $ sudo su

  $ echo "radixdlt ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/radixdlt

3. Configuring

We have added a new setup mode to the config command. This works for both systemd and docker-compose setups respectively.

babylonnode docker config -m CORE MIGRATION
babylonnode systemd config -m CORE MIGRATION

Notice the MIGRATION parameter. This adds additional questions prompts that let you configure the olympia node address, authentication methods and the bech32 address of your node.

These parameters can also be added via the following parameters (see babylonnode docker config --help for the most up to date version):

  -miu MIGRATION_URL, --migration_url MIGRATION_URL
                        The root url of the olympia node to migrate the ledger from. (Do NOT add /olympia-end-state)
  -miau MIGRATION_AUTH_USER, --migration_auth_user MIGRATION_AUTH_USER
                        The user to authenticate to the olympia node for migration
  -miap MIGRATION_AUTH_PASSWORD, --migration_auth_password MIGRATION_AUTH_PASSWORD
                        The password to authenticate to the olympia node for migration
  -miba MIGRATION_BECH_URL, --migration_bech_url MIGRATION_BECH_URL
                        The bech url of the olympia node to migrate the ledger from

These parameters will be added to your babylon-node-config/config.yaml

They default to this:

migration:
  olympia_node_auth_password: ''
  olympia_node_auth_user: admin
  olympia_node_bech32_address: ''
  olympia_node_url: http://localhost:3400
  use_olympia: false

You also have the option to modify the config file manually and run the corresponding install command aferwards. Just make sure to use the current version of the nodecli, as older versions will not understand these parameters. Check the latest version with this:

babylonnode version
Radixnode CLI latest version is 2.0.rcnet-v3-rc2 and current version of the binary is 2.0.rcnet-v2-rc2.
.

                ---------------------------------------------------------------
                Update the CLI by running these commands
                    wget -O radixnode https://github.com/radixdlt/babylon-nodecli/releases/download/2.0.rcnet-v3-rc2/radixnode-ubuntu-22.04
                    chmod +x radixnode
                    sudo mv radixnode /usr/local/bin

Cli - Version : 2.0.rcnet-v2-rc2
There has been a name change in the binary that is not represented in older versions of the cli. To address that, you can simply change the value radixnode to babylonnode in the commands. This will make sure that our example commands will work on your machine.

4. Installing

Simply run

babylonnode docker install

or

babylonnode systemd install

5. Verifying your node is talking to olympia node

The node should be printing below logs saying it has been successful in querying endstate on olympia node

Successfully connected to the Olympia mainnet node, but the end state hasn't yet been generated (will keep polling)