Updating a SystemD method Node installation

10st Okt 2023Radix Node v1.0.4 released

We renamed the binary filename from radixnode to babylonnode and changed the default file locations in order to prevent file clashes or unintentional overwrites when updating a node from Olympia to Babylon. Beware that despite effort to reduce friction, we highly recommend to do the migration using a new separate node instead of recycling the existing olympia node.

10st Okt 2023Radix Node v1.0.4 released

Use the babylonnode CLI to update your node or install a new node from scratch – or refer to the update instructions for Docker or systemd install methods.


These instructions will show you how to upgrade nodes installed as systemd instances. The instructions apply to:

  • Full nodes

  • Validator nodes

Please read the instructions all the way through first, before applying the changes.

1. Prepare to update

First, if you haven’t already done so, ensure that you have backed up your node-keystore.ks key file. This key file contains the private key that determines your node’s unique address and (if you are running a validator node) validator ID. If anything goes wrong in the update process, if you have your key file, you can always reinstall the node from scratch and use it to recover access to your node.

Next, you may want to consider using a backup node to perform a switch to the updated node with minimal interruption (especially if running a validator node) – or to provide a quick recovery if something goes wrong during the update. See our recommendations for Maintaining Uptime for more.

2. Download the latest systemd distribution

The following instructions must be carried out as the radixdlt user.

  1. Switch to the radixdlt user:

    sudo su - radixdlt
  2. Go to https://github.com/radixdlt/babylon-node/releases and look for the entry with the Latest release marker.

  3. You should see a release asset zip file that starts with babylon-node- multiple others that start with babylon-node-rust- for different architectures. Download both files and copy them over to your node.

  4. Alternatively enter the platform you are using and the desired version into following script and execute it, to download the files using wget

    • Linux

    • MacOs

    • Windows

    export PLATFORM_NAME=arch-linux-x86_64 (1)
    export VERSION=v1.0.4
    wget https://github.com/radixdlt/babylon-node/releases/download/v1.0.4/babylon-node-v1.0.4.zip
    wget https://github.com/radixdlt/babylon-node/releases/download/v1.0.4/babylon-node-rust-${PLATFORM_NAME}-release-v1.0.4.zip
    unzip babylon-node-${VERSION}.zip
    unzip babylon-node-rust-${PLATFORM_NAME}-release-${VERSION}.zip

    This is currently not officially supported.

    This is currently not officially supported.

3. Stop the Node

Before upgrading the software, you’ll need to shut down the node.

sudo systemctl stop radixdlt-node.service

4. Save your existing setup

You’re going to replace the lib and bin directories of your existing installation to upgrade the software. Before doing that, you’re going to save the existing folders to another location.

directory structure for the systemd Radix installation
└── etc/
    └── radixdlt/
        └── node/
            ├── bin/
            └── lib/
  1. Move the lib directory to a new location.

    mv /etc/radixdlt/node/{latest-radix-release}/lib /etc/radixdlt/node/savelib
  2. Move the bin directory to a new location.

    mv /etc/radixdlt/node/{latest-radix-release}/bin /etc/radixdlt/node/savebin

5. Replace your existing setup

  1. Unzip the distribution file you downloaded in Section 2, “Download the latest systemd distribution”

    unzip radixdlt-dist-v1.0.4.zip  (1)
    1 The file name should correspond to the release version you have downloaded.
  2. Move the new lib directory from your unzipped distribution to your node directory.

    mv core-v1.0.4/lib /etc/radixdlt/node/v1.0.4/lib
  3. Move the bin directory from your unzipped distribution to your node directory.

    mv core-v1.0.4/bin /etc/radixdlt/node/v1.0.4/bin
  4. Now, exit the radixdlt user session

6. Save your existing Nginx configuration

If you still have an existing Nginx configuration from your previous installation then it’s a good idea to move it to another location:

full node installation
sudo mv babylon-nginx-fullnode-conf.zip babylon-nginx-fullnode-conf.zip.spare

7. Download the latest Nginx configuration

  1. Go to https://github.com/radixdlt/babylon-nginx/releases and look for the entry with the Latest release marker.

  2. Look for the latest release for the full node configuration or the archive configuration:

    If you’re running a full node then copy the URL for babylon-nginx-fullnode-conf.zip.

  3. Paste the URL you copied into a wget command on your server to retrieve the zip file.

    download full node package
    wget -O babylon-nginx-fullnode-conf.zip https://github.com/radixdlt/babylon-nginx/releases/download/v1.0.4/babylon-nginx-fullnode-conf.zip

8. Install the Nginx configuration

  1. Unzip the nginx configuration. (You can overwrite all the files)

    unzip fullnode
    unzip babylon-nginx-fullnode-conf.zip
  2. Copy the files to the Nginx setup directory.

    sudo cp -r conf.d/ /etc/nginx/
  3. And now copy the nginx configuration files for your node type. If you are running a full node then execute:

    sudo cp nginx-fullnode.conf /etc/nginx/nginx.conf

9. Restart Nginx and the Node

For node versions 1.1.0 onwards, node software requries Java 17. Install java 17 before restarting node
  • Run below command to install Java 17 JDK

     sudo apt install -y openjdk-17-jdk
To upgrade node to 1.1.0 version, many of the configs in defaut.config have been changed or removed. Refer this section for more details. Once the config is applied appropriately, then follow below steps to restart the node and nginx
  • Execute the following commands to restart the web server and the node

    sudo su - radixdlt
    sudo systemctl restart radixdlt-node.service
    sudo systemctl restart nginx

10. Ensure that the node has been upgraded

You can check the version of the node software by sending an information request using curl:

curl -k -u admin:nginx-password "https://localhost/system/version"

The response is a json string that carries the version number as its payload.