11.4 Revert Client Versions
The LUKSO CLI allows to downgrade clients to an earlier version below the latest supported one. This might solve potential stability, database, or configuration issues that happen after an upgrade or maintenance. However, keep in mind that older versions must feature support for the latest network fork to keep up with the current chain head and stake funds.
The following steps are performed on your 📟 node server.
1. Stop Node Operation​
Depending on your setup method, there are different ways to stop your node before applying updates.
- LUKSO CLI
- Service Automation
cd <lukso-working-directory>
lukso stop
Exchange <lukso-working-directory>
with the path of the node folder.
sudo systemctl stop lukso-validator
Force Client Shutdown
- Geth
- Erigon
- Nethermind
- Besu
- Teku
- Nimbus-Eth2
- Lighthouse
- Prysm
sudo pkill geth
sudo pkill erigon
sudo pkill nethermind
sudo pkill besu
sudo pkill teku
sudo pkill nimbus_beacon_node
sudo pkill nimbus_validator_client
sudo pkill lighthouse
The Lighthouse client uses a single binary for both the consensus and validator processes.
sudo pkill prysm
sudo pkill validator
2. Install Custom Version​
Custom client versions can be installed using the regular installation command with additional flags. The terminal interface will give you the option to choose your execution and consensus client and will download the specified version from the flags. Multiple flags can be attached to install a custom consensus and execution client version simultaneously.
# Overwrite default Geth Version
lukso install --geth-tag 1.12.2 --geth-commit-hash bed84606
# Overwrite default Erigon Version
lukso install --erigon-tag 2.52.1
# Overwrite default Besu Version
lukso install --besu-tag 24.5.1
# Overwrite default Nethermind Version
lukso install --nethermind-tag v1.22.0 --nethermind-commit-hash ae444a4
# Overwrite default Prysm Version
lukso install --prysm-tag v4.0.8
# Overwrite default Lighthouse Version
lukso install --lighthouse-tag v4.1.0
# Overwrite default Teku Version
lukso install --teku-tag v23.10.0
# Overwrite default Nimbus-Eth2 Version
lukso install --nimbus2-tag v24.2.1 --nimbus2-commit-hash 7fe43fc
The Geth, Nethermind, and Nimbus-Eth2 clients require an additional commit hash to the release tag, both attached as flags.
Each release tag has different version formatting. Ensure you are using the correct format as shown in above examples.
Version numbers and commit hashes can be derived from the client repositories:
3. Restart the Node​
Depending on your setup method, there are different ways to start your node after custom versions have been installed.
- LUKSO CLI Node
- LUKSO CLI Validator
- Service Automation
cd <lukso-working-directory>
lukso start --checkpoint-sync
Exchange <lukso-working-directory>
with the path of the node folder
cd <lukso-working-directory>
lukso start --validator --transaction-fee-recipient "<your-fee-recipient-address>" --checkpoint-sync
The following properties need to be exchanged:
<lukso-working-directory>
with the path of the node folder<your-fee-recipient-address>
with the wallet address receiving staking profits
For improved security, the service automation is started from a separate user with restricted rights. New permissions must be assigned to all data and software folders affected by the previous updates before the node should be restarted.
sudo chown -R lukso-validator-worker:lukso-validator-worker /home/<user-name>/<lukso-working-directory>
sudo chown lukso-validator-worker:lukso-validator-worker /usr/local/bin/lukso
sudo chmod -R 750 /home/<user-name>/<lukso-working-directory>
sudo chmod 755 /home/<user-name>/<lukso-working-directory>
sudo chmod 400 /home/<user-name>/<lukso-working-directory>/static/<your-generic-password-file>
sudo chmod 500 /home/<user-name>/<lukso-working-directory>/static/lukso_startup.sh
The following properties need to be exchanged:
<user-name>
with the user name used to login to your node<lukso-working-directory>
with the path of the node folder<your-generic-password-file>
with the full name of the password file to start the validator
Full Command Descriptions
Setting | Description |
---|---|
sudo chown -R <user>:<user> <directory> | Recursively assign user ownership to all directory contents. |
sudo chown <user>:<user> <directory> | Assign ownership to a single folder or file. |
sudo chmod -R 750 <directory> | Set executable and readable permissions for a user and group. |
sudo chmod 755 <directory> | Set readable permissions for everyone, typically for general files. |
sudo chmod 400 <directory>/<file> | Read-only access for owner, typically for secret information. |
sudo chmod 500 <directory>/<file> | Executable-only by owner, typically for service scripts. |
Once the original rights have been restored, the service can be started.
sudo systemctl start lukso-validator
If the service does not start up, check the service status before and reapply the necessary permissions.
sudo systemctl status lukso-validator
After the clients were started, verify that their services are still up.
sudo lukso status
If you are still running into issues, scan for problems or update your clients and their specific network configurations.