Switching Consensus 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
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.
Make sure to stop all processes of the blockchain node.
Afterward, you can check if your node stopped correctly.
Create a new Working Directory
Move out of your current node's working directory.
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.
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.
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.
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
# 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.