Skip to main content

General Tooltips

The following file features small help snippets in case there are any issues with the LUKSO CLI

Node Update

How to update your server, clients, and configs.

1. Update Software Packages

# Update Package List
sudo apt update

# List Upgradable Packages
sudo apt list --upgradable

# Put Grafana Updates on Hold
sudo apt-mark hold grafana

# Stop Node with Automation
sudo systemctl stop lukso-validator

# Stop Node without Automation
# cd <lukso-working directory>
# lukso stop

# Apply all software updates
sudo apt upgrade
# Choose to keep local SSH <OK>
# Update outdated libraries <OK>

# Kernel packages not updated automatically <OK>
# Running packages not updated automatically <OK>

# Reboot the System to update remaining packages
sudo reboot

You will be logged out of the machine and have to log back in using SSH

2. Update the LUKSO CLI and Clients

# Get latest LUKSO CLI
sudo curl https://install.lukso.network | sh

# Move into the node directory
cd <lukso-working-directory>

# Ensure all client processes are stopped
sudo pkill geth
sudo pkill prysm
sudo pkill validator
# sudo pkill teku
# sudo pkill lighthouse
# sudo pkill erigon

# Check your current client versions
geth --version
prysm --version
# lighthouse --version
# teku --version
# erigon --version

# Update your clients
sudo lukso update

# Update the network configurations
sudo lukso update configs

# Check your new client versions
geth --version
prysm --version
# lighthouse --version
# teku --version
# erigon --version

Optional: Update Client Configs

If you update your network configs using lukso init or lukso update configs, none of your own configurations are overwritten:

sudo lukso init
sudo lukso update configs
  • If you do lukso update configs, only the files within the /configs/<network>/shared folders will be updated.
  • If you do lukso init, only missing /configs/ files will be added

However, LUKSO recently introduced some optional changes to the client configurations. If you want, you can update them accordingly. However, this is not mandatory.

Changes introduced since network launch in May 2023. Last checked on 1st March 2024

Prysm Changes

cd <lukso-working-directory>/configs/<network>
vim prysm/prysm.yaml
p2p-host-ip: '0.0.0.0'                      --> removed on https://github.com/lukso-network/network-configs/pull/112/files
min-sync-peers: 1 --> updated on https://github.com/lukso-network/network-configs/pull/131/files
minimum-peers-per-subnet: 1 --> updated on https://github.com/lukso-network/network-configs/pull/131/files
block-batch-limit: 512 --> removed on https://github.com/lukso-network/network-configs/pull/131/files
block-batch-limit-burst-factor: 10 --> removed on https://github.com/lukso-network/network-configs/pull/131/files
contract-deployment-block: 0 --> added on https://github.com/lukso-network/network-configs/pull/117/files

Erigon Changes

cd <lukso-working-directory>/configs/<network>
vim erigon/erigon.toml
"externalcl" = true                         --> removed on https://github.com/lukso-network/network-configs/pull/115/files

"snapshots" = false --> added on https://github.com/lukso-network/network-configs/pull/115/files
"prune" = "htc" --> added on https://github.com/lukso-network/network-configs/pull/115/files
"private.api.addr" = "127.0.0.1:9098" --> added on https://github.com/lukso-network/network-configs/pull/118/files

"db.size.limit" = "8TB" --> added on https://github.com/lukso-network/network-configs/pull/129/files

Teku Changes

cd <lukso-working-directory>/configs/<network>
vim teku/config.yaml
MIN_EPOCHS_FOR_BLOCK_REQUESTS: 33024        --> added on https://github.com/lukso-network/network-configs/pull/128/files

Lighthouse Changes

cd <lukso-working-directory>/configs/<network>
vim lighthouse/lighthouse.toml
http-address = "0.0.0.0"                    --> removed on https://github.com/lukso-network/network-configs/pull/116/files

metrics-address = "0.0.0.0" --> removed on https://github.com/lukso-network/network-configs/pull/116/files
metrics-allow-origin = "*" --> removed on https://github.com/lukso-network/network-configs/pull/116/files

metrics = true --> added on https://github.com/lukso-network/network-configs/pull/116/files
metrics-port=5057 --> added onhttps://github.com/lukso-network/network-configs/pull/116/files

Optional: Remove Genesis Flags

In case you were a genesis validator using an automation script on your node, make sure to remove the following lines from your startup script:

cd <lukso-working-directory>/static/
sudo vim ./lukso_startup.sh
        --genesis-json ./configs/mainnet/shared/genesis_42.json \
--genesis-ssz ./configs/mainnet/shared/genesis_42.ssz \

3. Restart the Node

After all updates have been applied to configuration files and clients, you can restart your node.

## If you have automation, re-apply all rights to the service
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>/<your-node-folder>
sudo chmod 755 /home/<user-name>/<your-node-folder>
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

# Restart the Node Service with Automation
sudo systemctl start lukso-validator

# Restart Node Service without Automation
# cd <lukso-working-directory>
# lukso start --validator --transaction-fee-recipient "<your-fee-recipient-address>" --checkpoint-sync

# Check if all clients are working
sudo lukso status

Scan for Warnings and Errors

The logging commands of the LUKSO CLI can also be used to search the logging files for warnings or errors.

Administrative rights are only needed if you are using secure service automation

# Fetch all execution warnings
sudo lukso logs execution | grep "warning"
# Fetch all validator warnings
sudo lukso logs validator | grep "warning"
# Fetch all consensus warnings
sudo lukso logs consensus | grep "warning"

# Fetch all execution errors
sudo lukso logs execution | grep "error"
# Fetch all validator errors
sudo lukso logs validator | grep "error"
# Fetch all consensus errors
sudo lukso logs consensus | grep "error"

After executing the command, the terminal is waiting for an input to show the log file. You will have to press the ENTER key in order to see the related logs you searched for.

Downgrade or Change Client Versions

The client version can be changed manually, in case there are some issues with the data folder.

Custom client versions can be installed using the lukso install command by providing specific flags. The command will still function as usual, giving you the option to choose your execution and consensus client; however, it continues to download the version that was defined by the flags. You can also add multiple flags to download a consensus and execution version simultaneously.

For Geth, you also have to provide the correct commit hash.

# Manually overwrite Geth Version
lukso install --geth-tag v1.12
# https://github.com/ethereum/go-ethereum/releases
lukso install --geth-tag 1.12.2 --geth-commit-hash bed84606

# Manually overwrite Prysm Version
# https://github.com/prysmaticlabs/prysm/releases
lukso install --prysm-tag v4.0.8

# Manually overwrite Lighthouse Version
# https://github.com/sigp/lighthouse/releases
lukso install --lighthouse-tag v4.1.0

# Manually overwrite Erigon Version
# https://github.com/ledgerwatch/erigon/releases
lukso install ---erigon-tag 2.52.1

# Manually overwrite Teku Version
# https://github.com/ConsenSys/teku/releases
lukso install ---teku-tag v23.10.0

Reset Blockchain State

When updating execution client versions, you might run into errors with the existing state. To resolve issues, remove the data folder containing the blockchain database.

# Move into the node directory
cd <lukso-working-directory>

# Remove blockchain data
rm -rf <network>-data

# Remove old logs
rm -rf <network>-logs

# Re-init the folder
sudo lukso init

Restart Monitoring

Monitoring system services are restarting during boot time, however, it might happen that you have to manually restart or trigger them.

# System & Hardware Metrics
sudo systemctl restart node_exporter

# LYX Price Metrics
sudo systemctl restart json_exporter

# Ping Metrics
sudo systemctl restart blackbox_exporter

# Node Client Metrics
sudo systemctl restart prometheus

# Grafana Dashboard
sudo systemctl restart grafana-server