Switch Between Clients
Having a variety of clients in a blockchain network and improving our client diversity is critically important.
Client diversity refers to utilizing different software clients in a blockchain network developed by various teams and in other programming languages.
- Security and Resilience: Client diversity increases the robustness of the network. If there's a bug in one client, it doesn't bring down the entire network because other clients can continue to operate. This decentralization and redundancy is a fundamental aspect of blockchain security and resilience.
- Decentralization and Governance: Client diversity promotes decentralization in the development and governance of the Ethereum network. It prevents any team or entity from having too much influence over the network's growth.
Most validator nodes on the LUKSO mainnet are running with Geth and Prysm. Node operators are responsible to ensure they split their client usage evenly to the extent of officially supported clients and validators.
Switching from Prysm to Lighthouse or Teku​
As a validator, you need to import your validator deposit key files (keystore-xxx-[timestamp].json
) that you have generated using the LUKSO Wagyu or LUKSO CLI Keygen tools. Ensure you safely copy them to your node before switching to a new consensus client.
Stop your Node​
If you are currently running the Prysm consensus client, stop the clients before making any adjustments.
If you configured custom services on top of the LUKSO CLI, please use your service commands to stop your node.
In the examples below, the name myLUKSOnode
has to be changed to your node directory's name.
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
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 previous configuration and keystore files.
mkdir myNewLUKSOnode && cd myNewLUKSOnode
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 new blockchain clients.
To balance the network, it is recommended to use Erigon as execution and Lighthouse or Teku as consensus clients.
lukso install
Importing Validator Keys​
After the installation has been successful, you can continue importing your validator keys into the new validator wallet that will be used within the new consensus client. You will be asked to set a new wallet password to store the imported deposit keys safely. Further, you will have to input your password for the deposit keys, so that they can be encrypted and added to the wallet.
lukso validator import --validator-keys "./path/to/your/keys/folder"
Checking Validator Keys​
After importing one or multiple folders, you can check your imported keys.
lukso validator list
If the imported deposit keys match the ones in the original folder, you can delete them from your node machine.
Start your new Node​
You can start your node as regular. If you run your node as a validator, please adjust your flags or the recipient address.
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 again and ensure these are in the correct format before starting your node.
You can follow the extended node guide or list of further reads for more information.
Wait 10 minutes after stopping your node so the network does not accuse you of slashing while using updated configurations.
If you are starting your node in a fresh working directory or after being offline for a while, make sure to add checkpoint synchronization to significantly speed up the synchronization during the startup.
If you are setting up a node for the testnet, add the --testnet
flag to the start command.
# Starting the Mainnet Node
lukso start
# Starting the Mainnet Validator
lukso start --validator --transaction-fee-recipient "0x1234..."
After your node finalizes the synchronization with the network, you can remove the validator key folder and the old working directory.