Skip to content

Latest commit

 

History

History
102 lines (81 loc) · 16 KB

checklist-confirming-healthy-functional-eth-staking-node.md

File metadata and controls

102 lines (81 loc) · 16 KB
description
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.

Checklist | Confirming a healthy functional ETH staking node

{% hint style="info" %} :confetti_ball: Support us on Gitcoin Grants: We improve this guide with your support!🙏 {% endhint %}

⏩ Quick steps guide

{% hint style="info" %} 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. {% endhint %}

🚀 Execution client Checklist

Concern Solution
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 Refer to the mainnet guide.
Execution client node redundancy Refer to the mainnet guide.

🧬 Consensus client Checklist

Concern Solution
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 Refer to the mainnet guide

:key2: Consensus Validator Client Checklist

Concern Solution
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. Refer to the mainnet guide.
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 Refer to the mainnet guide.

🧱 Validator Node Security Checklist

Concern Solution
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

Concern Solution
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 Refer to the mainnet guide.
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

{% hint style="success" %} 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. 🌛 {% endhint %}