Checklist | Confirming a healthy functional ETH staking node

Scenario: How do I figure out and confirm that everything is working properly (eth 1 node in sync, eth 2 beacon chain in sync, eth 2 beacon node able to communicate with eth 1 node, etc etc.

🎊 Support us on Gitcoin Grants: We improve this guide with your support!🙏

Quick steps guide

The following steps align with our mainnet guide. You may need to adjust file names and directory locations where appropriate. The core concepts remain the same.

🚀 Execution client Checklist

ConcernSolution

Execution client in sync

Ensure your node's block number matches the tip block of a public block explorer. Find your eth1's block # with command journalctl -fu eth1

Example log output:INFO [12-06

Ports open

Confirm ports are reachable with an external port checker such as

https://www.yougetsignal.com/tools/open-ports/

Find Port # information here.

Check execution client logs for errors

Use the command journalctl -fu eth1

Understand how to stop/start Execution client

sudo systemctl stop eth1

sudo systemctl start eth1

Understand how to update my Execution client

Refer to this quick guide.

Reduce bandwidth usage

Execution client node redundancy

🧬 Consensus client Checklist

ConcernSolution

Installed latest stable release

Refer to how to update consensus client.

Beacon chain client can connect to Execution client

Check for a response with the command:curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":67}' http://localhost:8545

You should receive a response similar to:

{"jsonrpc":"2.0","id":67,"result":"Geth/v1.9.24-stable-cc05b050/linux-amd64/go1.15.5"}

Beacon chain is sync'd to mainnet

Ensure your block number matches the slot# of a public block explorer. Find your consensus client's beacon chain slot # with in logs with command journalctl -fu beacon-chain

Check beacon chain logs for errors

Use the command journalctl -fu beacon-chain

Ports open

Confirm ports are reachable with an external port checker such as

https://www.yougetsignal.com/tools/open-ports/ or https://canyouseeme.org/ .

Click here for Port # information.

Understand how to stop/start beacon-chain

sudo systemctl stop beacon-chain

sudo systemctl start beacon-chain

Understand how to update my beacon chain

Refer to this quick guide.

Join Discord

🗝️ Consensus Validator Client Checklist

ConcernSolution

Verify keystores are properly imported

Refer to the mainnet guide's section on importing keys.

Check validator logs for errors

Use the command journalctl -fu validator

Verify attestations are working

Check your validators pubkey against a public block explorer.

Setup a graffiti flag / POAP

Refer to the mainnet guide.

Verified my mnemonic phrase can be restored.

Understand how to add more validators

Refer to this quick guide.

Understand how to update my consensus client

Refer to this quick guide.

Know how to stop/start validator

sudo systemctl stop validator

sudo systemctl start validator

Beacon-node redundancy

🧱 Validator Node Security Checklist

ConcernSolution

Secure the root account

Refer to the best security practices document.

Connect with SSH Keys Only

Refer to the best security practices document.

Harden SSH on a random port

Refer to the best security practices document.

Setup 2-FA for SSH (Optional)

Refer to the best security practices document.

Secure the Shared Memory

Refer to the best security practices document.

Setup a firewall

Refer to the best security practices document.

Setup port forwarding on my router

Refer to the best security practices document.

Setup intrusion-prevention monitoring

Refer to the best security practices document.

Whitelisted my local machine in the ufw firewall

Refer to the best security practices document.

Whitelisted my local machine in Fail2ban

Refer to the best security practices document.

Verify the listening ports

Refer to the best security practices document.

🚦 Validator Node Maintenance and Best Practices Checklist

ConcernSolution

Enabled automatic OS patching

Refer to the best security practices document.

Setup chrony or other NTP time sync service

Refer to the mainnet guide.

Setup Prometheus and Grafana Monitoring/Alerts/Dashboard

Understand how to handle a power outage

In case of power outage, you want your validator machine to restart as soon as power is available. In the BIOS settings, change the Restore on AC / Power Loss or After Power Loss setting to always on. Better yet, install an Uninterruptable Power Supply (UPS).

Understand how to migrate consensus clients

Refer to the mainnet guide.

Understand how to voluntary exit

Refer to the mainnet guide.

Used all available LVM disk space

Refer to the mainnet guide.

Understand important directory locations

Refer to the mainnet guide.

🤖 Start staking by building a validator

Visit here for our Mainnet guide

Congrats on completing the guide. ✨

Did you find our guide useful? Send us a signal with a tip and we'll keep updating it.

It really energizes us to keep creating the best crypto guides.

Use cointr.ee to find our donation addresses. 🙏

Any feedback and all pull requests much appreciated. 🌛