Step 5: Installing consensus client
Pick a consensus client
To strengthen Ethereum's resilience against potential attacks or consensus bugs, it's best practice to run a minority client in order to increase client diversity. Find the latest distribution of consensus clients here: https://clientdiversity.org
🛡️ Recommendation 🛡️: Lodestar
Reminder: Ensure you are logged in and execute all steps in this guide as non-root user, ethereum ,
created during Step 2: Configuring Node.
Your choice of Lighthouse, Nimbus, Teku, Prysm or Lodestar.
Lighthouse is an Eth client with a heavy focus on speed and security. The team behind it, Sigma Prime, is an information security and software engineering firm who have funded Lighthouse along with the Ethereum Foundation, Consensys, and private individuals. Lighthouse is built in Rust and offered under an Apache 2.0 License.
⚙️ 4.1. Install rust dependency
Enter '1' to proceed with the default install.
Update your environment variables.
Install rust dependencies.
💡 4.2. Build Lighthouse from source
Improve some Lighthouse benchmarks by around 20% at the expense of increased compile time? Use maxperf
profile.
To compile with maxperf, replace the above make
command with
PROFILE=maxperf make
In case of compilation errors, run the following sequence.
This build process may take a few minutes.
Verify lighthouse was installed properly by checking the version number.
🎩 4.3. Import validator key
When you import your keys into Lighthouse, your validator signing key(s) are stored in the $HOME/.lighthouse/mainnet/validators
folder.
Run the following command to import your validator keys from the eth2deposit-cli tool directory.
Enter your keystore password to import accounts.
Verify the accounts were imported successfully.
WARNING: Do not import your validator keys into multiple validator clients and run them at the same time, or you might get slashed. If moving validators to a new setup or different validator client, ensure deletion of the previous validator keys before continuing.
🔥 4.4. Configure port forwarding and/or firewall
Specific to your networking setup or cloud provider settings, ensure your validator's firewall ports are open and reachable.
Lighthouse consensus client requires port 9000 for tcp and udp
Execution client requires port 30303 for tcp and udp
⛓️ 4.5. Start the beacon chain
Create a systemd unit file to define yourbeacon-chain.service
configuration.
Paste the following configuration into the file.
Checkpoint Sync: allows consensus layer to start within minutes instead of days.
Refer to https://eth-clients.github.io/checkpoint-sync-endpoints/ and feel free to pick one of the random
state
providers from the list, instead of the above endpointhttps://beaconstate.info
Do not trust any single checkpoint provider. Verify the state root and block root against multiple checkpoints to ensure you're on the correct chain.
To exit and save, press Ctrl
+ X
, then Y
, thenEnter
.
Update file permissions.
Run the following to enable auto-start at boot time and then start your beacon node service.
Nice work. Your beacon chain is now managed by the reliability and robustness of systemd.
🧬 4.6. Start the validator
Create a systemd unit file to define your validator.service
configuration.
Paste the following configuration into the file.
Replace
0x_CHANGE_THIS_TO_MY_ETH_FEE_RECIPIENT_ADDRESS
with your own Ethereum address that you control. Tips are sent to this address and are immediately spendable, unlike the validator's attestation and block proposal rewards.
To exit and save, press Ctrl
+ X
, then Y
, thenEnter
.
Update file permissions.
Run the following to enable auto-start at boot time and then start your validator.
Nice work. Your validator is now managed by the reliability and robustness of systemd.
🛠️ Helpful Consensus Client systemd commands
🗄 Viewing and filtering logs
🔎 View the status of the beacon chain
🔄 Restarting the beacon chain
🛑 Stopping the beacon chain
⏭️ Next Steps
Sync Timeline: Syncing the consensus client is instantaneous with checkpoint sync but the execution client can take up to 1 week. On high-end machines with gigabit internet, expect your node to be fully syncing to take less than a day.
Patience required: If you're checking the logs and see any warnings or errors, please be patient as these will normally resolve once both your execution and consensus clients are fully synced to the Ethereum network.
How do I know I'm fully synced?
Check your execution client's logs and compare the block number against the most recent block on etherscan.io
Check EL logs:
journalctl -fu eth1
Check your consensus client's logs and compare the slot number against the most recent slot on beaconcha.in
Check CL logs:
journalctl -fu beacon-chain
Activation Queue: Once your EL+CL is synced, validator up and running, you just wait for activation. This process can take 24+ hours. Only 900 new validators can join per day. Check the queue length: https://wenmerge.com
Activated: When you're activated, your validator will begin creating and voting on blocks while earning staking rewards.
Quick monitoring: Use https://beaconcha.in/ to create alerts and track your validator's performance.
🎉 Congrats! You've finished the primary steps of setting up your validator. You're now an Ethereum staker!
👍 Recommended Steps
Subscribe to your Execution Client and Consensus Client's Github repository to be notified of new releases. Hit the Notifications button.
Join the community on Discord and Reddit to discuss all things staking related.
Familiarize yourself with Part II - Maintenance section, as you'll need to keep your staking node running at its best.
Up your staking understanding with the EthStaker Knowledge Base
🏁 Optional Steps
Setup MEV-boost for extra staking rewards!
Familiarize yourself with Part III - Tips section, as you dive deeper into staking.
☎️ Need extra live support?
Find Ethstaker frens on the Ethstaker Discord and coincashew Discord.
Use reddit: r/Ethstaker, or DMs, or r/coincashew
💟 Like these guides?
Audience-funded guide: If you found this helpful, please consider supporting it directly. 🙏
Support us on Gitcoin Grants: We build this guide exclusively by community support!
Feedback or pull-requests: https://github.com/coincashew/coincashew
Last Words
I stand upon the shoulders of giants and as such, invite you to stand upon mine. Use my work with or without attribution; I make no claim of "intellectual property." My ideas are the result of countless millenia of evolution - they belong to humanity.
Last updated