Skip to main content

Update the Node

Updating your node and blockchain clients is of utmost importance. It is not just about having access to the latest features of the LUKSO CLI, but an essential aspect of maintaining your node's security, performance, and reliability, directly affecting the network.

Check your LUKSO CLI Version

Breaking Changes

Since the mainnet launch occurred, the LUKSO CLI had breaking changes from version 0.6 to 0.7.

Please check your current LUKSO CLI version to determine your update process.

$ lukso version

This guide will lead you through updating to LUKSO CLI Version 0.8

Update the LUKSO CLI

Updating your node is similar to the installing process, while keeping your previous keystore data. If you already have the latest LUKSO CLI version and network configs, you can also just update your blockchain clients.

Stop your Node

caution

If you configured custom services on top of the LUKSO CLI, please use your service commands to stop your node.

tip

The name of the directory myLUKSOnode/ can be changed in the examples below.

Move into your node's working directory.

$ cd myLUKSOnode

Make sure to stop all processes of the blockchain node.

$ lukso stop

Afterward, you can check if your node stopped correctly.

$ lukso status

If you have problems stopping the processes, please use the pkill command to force their shutdowns.

# Stop the Geth client
$ sudo pkill geth

# Stop the Erigon client
$ sudo pkill erigon

# Stop the Prysm client
$ sudo pkill prysm

# Stop the Prysm Validator client
$ sudo pkill validator

# Stop the Lighthouse and Lighthouse Validator clients
$ sudo pkill lighthouse

Create a new Working Directory

Move out of your current node's working directory.

$ cd ..

Next, create a new working directory for your updated node. Your old folder will act as a backup for your configuration and keystore files.

$ mkdir myNewLUKSOnode && cd myNewLUKSOnode

Update the LUKSO CLI

Re-install the LUKSO CLI to your system. You will be asked to overwrite the current version.

$ curl https://install.lukso.network | sh

Make sure to check the downloaded version again, ensuring that the update was successful.

$ lukso version

Initialize the new Working Directory

Next, you can initialize your new working folder. The command will download the latest network configurations and genesis files to synchronize with the LUKSO blockchain.

$ lukso init

Install the Latest Clients

After the initialization is successful, we must install the updated blockchain clients.

$ lukso install

Copy the Validator Keys

In case you are running a validator, you are able to copy your keystore files to the new folder. The keystore data in your old folder will act as a backup.

Make sure to adjust the commands using the actual name of the previous folder instead of the placeholder.

caution

Only copy over your keystore data if you want to use the same consensus client as before the update. Otherwise, you would have to import your validator keys from scratch.

# Copy Mainnet Node Data
$ cp -r ../myOldLUKSOnode/mainnet-keystore .

# Copy Testnet Node Data
$ cp -r ../myOldLUKSOnode/testnet-keystore .

Restart your Node

You can start your node as regular. Please adjust your flags or the recipient address in case you are running a validator.

info

In case you did any modifications to your configuration files, such as:

  • configuring a Dynamic DNS
  • connecting the blockchain explorer page
  • adding a node name or graffiti
  • adjusting your peer count

Please add them once again and make sure that these are in the correct format before starting your node.

caution

Wait 10 minutes after stopping your node so the network does not accuse you of slashing while using updated configurations.

Start up your node using checkpoint synchronization to reduce your downtime while synchronizing with the network significantly. Fast synchronization speeds are essential if you run a validator node to avoid losing stake.

Your node will begin syncing from a recently finalized consensus checkpoint instead of genesis. It will then download the rest of the blockchain data while your consensus is already running. After the synchronization is finalized, you will end up with the equal blockchain data.

You can use the flag on every startup. However, it shows the most significant effect when synchronizing from scratch or after an extended downtime.

info

If you are setting up a node for the testnet, add the --testnet flag to the start command.

# Starting the Mainnet Node
$ lukso start --checkpoint-sync

# Starting the Mainnet Validator
$ lukso start --validator --transaction-fee-recipient "0x1234" --checkpoint-sync
info

After your node has finalized the synchronization with the network, you can remove the old working directory from your system.

Update the Blockchain Clients

If you already use the latest LUKSO CLI version and network configuration but want to check for new blockchain client versions, you can update them separately.

Stop your Node

caution

If you configured custom services on top of the LUKSO CLI, please use your service commands to stop your node.

Move into your node's working directory.

$ cd myLUKSOnode

Stop all processes of the blockchain node.

$ lukso stop

Afterward, you can check if your node stopped correctly.

$ lukso status

Download new Clients

Then continue to check and update your configured blockchain clients.

$ lukso update

Restart your Node

You can start your node as regular. If you run a validator, please adjust your flags or the recipient address.

Start up your node using checkpoint synchronization to reduce your downtime while synchronizing with the network significantly. Fast synchronization speeds are essential if you run a validator node to avoid losing stake.

Your node will begin syncing from a recently finalized consensus checkpoint instead of genesis. It will then download the rest of the blockchain data while your consensus is already running. After the synchronization is finalized, you will end up with the equal blockchain data.

You can use the flag on every startup. However, it shows the most significant effect when synchronizing from scratch or after an extended downtime.

info

If you are setting up a node for the testnet, add the --testnet flag to the start command.

# Starting the Mainnet Node
$ lukso start --checkpoint-sync

# Starting the Mainnet Validator
$ lukso start --validator --transaction-fee-recipient "0x1234" --checkpoint-sync