Ethereum on ARM
Ethereum on ARM offers a custom Linux image for ARM64 devices (Raspberry Pi 5, Rock 5B, NanoPC T6, and Orange Pi 5 Plus) that comes pre-configured for running Ethereum nodes. It includes a specific package ls-lido to simplify setting up Lido CSM validators.
This guide assumes you have a supported ARM64 device with the Ethereum on ARM image already installed and running.
Prerequisites
- A supported ARM64 device with the Ethereum on ARM image installed (see above link for installation).
- Validator keys generated (see "Creating Validator Keys" below).
Running CSM on Mainnet
First, ensure the ls-lido package is installed on your node:
sudo apt-get update && sudo apt-get install ls-lido
You need to run a Full or Archive Ethereum node. This follows the standard process for Ethereum on ARM, but you must enable MEV Boost on the Beacon Chain and start a MEV Boost server to meet Lido CSM requirements.
-
Start Execution Client: Choose your preferred Execution Client and start it.
- Nethermind
- Geth
- Besu
- Reth
- Erigon
sudo systemctl start nethermindsudo systemctl start gethsudo systemctl start besusudo systemctl start rethsudo systemctl start erigon -
Start Consensus Client: Choose your preferred Consensus Client and start it.
- Lighthouse
- Prysm
- Teku
- Nimbus
sudo systemctl start lighthouse-beacon-mevsudo systemctl start prysm-beacon-mevsudo systemctl start teku-beacon-mevsudo systemctl start nimbus-beacon-mevwarningEnsure you use the service name with the
-mevsuffix (e.g.,lighthouse-beacon-mev,prysm-beacon-mev,teku-beacon-mev) to enable MEV, which is required for running CSM validators. -
Start MEV Boost:
sudo systemctl start mev-boost
Creating Validator Keys
To generate your validator keys, please refer to the Key Generation for Mainnet guide.
Importing Keys and Starting the Validator
For more details on importing keys, refer to the Ethereum on ARM Validator Client guide.
-
Import Keys: Transfer your keys to the node if generated on your desktop. Run the import command for your client.
- Lighthouse
- Prysm
- Nimbus
- Teku
lighthouse account validator import --directory=/home/ethereum/validator_keys -d /home/ethereum/.lighthouse-validator-lidovalidator accounts import --keys-dir=/home/ethereum/validator_keys --wallet-dir=/home/ethereum/.prysm-validator-mainnet-lido/prysm-wallet-v2nimbus_beacon_node deposits import /home/ethereum/validator_keys --data-dir=/home/ethereum/.nimbus-validator-lidoRun the helper script to create validator passwords:
sudo setup_validator_passwordsThis will generate a secure random password and create a
.txtfile for each keystore with correct permissions.You should now have matching files like:
keystore-m_12381_3600_0_0_0-1661710189.json
keystore-m_12381_3600_0_0_0-1661710189.txt -
Start Validator with Lido Config: Start the validator service that includes the Lido configuration (look for
lidoin the service name).- Lighthouse
- Prysm
- Teku
- Nimbus
sudo systemctl start lighthouse-validator-lidosudo systemctl start prysm-validator-lidosudo systemctl start teku-validator-lidosudo systemctl start nimbus-validator-lidowarningThe
lidoargument/suffix is essential as it applies the specific configuration required for Lido CSM.
Create and Activate the CSM Validator
For instructions on how to upload your deposit data and activate your validator, please refer to the CSM Activation guide.
Running CSM on Hoodi Testnet
You can test the setup on the Hoodi testnet as well. The process is the same, you just need to adjust the network parameter for each client using the hoodi suffix.
-
Start Clients on Testnet:
- Nethermind
- Geth
- Besu
- Reth
- Erigon
sudo systemctl start nethermind-hoodisudo systemctl start geth-hoodisudo systemctl start besu-hoodisudo systemctl start reth-hoodisudo systemctl start erigon-hoodi- Lighthouse
- Prysm
- Teku
- Nimbus
sudo systemctl start lighthouse-beacon-hoodi-mevsudo systemctl start prysm-beacon-hoodi-mevsudo systemctl start teku-beacon-hoodi-mevsudo systemctl start nimbus-beacon-hoodi-mevsudo systemctl start mev-boost-hoodi -
Generate Keys for Hoodi: Follow the testnet instructions in the Key Generation guide (selecting Hoodi network).
-
Import and Start on Testnet:
- Lighthouse
- Prysm
- Nimbus
- Teku
lighthouse account validator --network hoodi import --directory=/home/ethereum/validator_keys -d /home/ethereum/.lighthouse-validator-lido
sudo systemctl start lighthouse-validator-hoodi-lidovalidator accounts import --hoodi --keys-dir=/home/ethereum/validator_keys --wallet-dir=/home/ethereum/.prysm-validator-hoodi-lido/prysm-wallet-v2
sudo systemctl start prysm-validator-hoodi-lidonimbus_beacon_node deposits import /home/ethereum/validator_keys --data-dir=/home/ethereum/.nimbus-validator-hoodi-lido
sudo systemctl start nimbus-validator-hoodi-lidoRun the helper script to create validator passwords:
setup_validator_passwordsThis will generate a secure random password and create a
.txtfile for each keystore with correct permissions.You should now have matching files like:
keystore-m_12381_3600_0_0_0-1661710189.json
keystore-m_12381_3600_0_0_0-1661710189.txtsudo systemctl start teku-validator-hoodi-lido -
CSM Testnet Portal: https://csm.testnet.fi