Skip to content

Latest commit

 

History

History
112 lines (86 loc) · 18.6 KB

checklist-or-how-to-confirm-a-healthy-functional-eth2-validator.md

File metadata and controls

112 lines (86 loc) · 18.6 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 | How to confirm a healthy functional ETH staking validator

{% hint style="info" %} :confetti_ball: 2021-09 Gitcoin Grant Round 11: We improve this guide with your support!

Help fund us and earn a POAP NFT. Appreciate your support!🙏 {% endhint %}

{% embed url="https://gitcoin.co/grants/1653/eth2-staking-guides-by-coincashew" %}

⏩ 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 validator 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 and here for our Testnet 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. 🌛

Hang out and chat with fellow stakers on Discord @

https://discord.gg/w8Bx8W2HPW 😃 {% endhint %}

🎊 2020-12 Update: Thanks to all Gitcoin contributors, where you can contribute via quadratic funding and make a big impact. Funding complete! Thank you!🙏