# 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!](https://gitcoin.co/grants/1653/eth2-staking-guides-by-coincashew)🙏
{% endhint %}

## :fast\_forward: Quick steps guide

{% hint style="info" %}
The following steps align with our [mainnet guide](/coins/overview-eth/guide-or-how-to-setup-a-validator-on-eth2-mainnet.md). You may need to adjust file names and directory locations where appropriate. The core concepts remain the same.
{% endhint %}

### :rocket: Execution client Checklist

| Concern                                       | Solution                                                                                                                                                                                                                                                                                                            |
| --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Execution client in sync                      | <p>Ensure your node's block number matches the tip block of a <a href="http://etherscan.io">public block explorer</a>. Find your eth1's block # with command <code>journalctl -fu eth1</code></p><p><strong><code>Example log output:</code></strong><code>INFO \[12-06</code></p>                                  |
| Ports open                                    | <p>Confirm ports are reachable with an external port checker such as</p><p><a href="https://www.yougetsignal.com/tools/open-ports/"><https://www.yougetsignal.com/tools/open-ports/></a></p><p>Find <a href="/pages/Tb57gqyH5WWgWgjhdeME#bricks-mandatory-configure-your-firewall">Port # information here</a>.</p> |
| Check execution client logs for errors        | Use the command `journalctl -fu eth1`                                                                                                                                                                                                                                                                               |
| Understand how to stop/start Execution client | <p><code>sudo systemctl stop eth1</code></p><p><code>sudo systemctl start eth1</code></p>                                                                                                                                                                                                                           |
| Understand how to update my Execution client  | Refer to this [quick guide.](broken://pages/SdmF7ynVCJUmp79QZ8RF)                                                                                                                                                                                                                                                   |
| Reduce bandwidth usage                        | Refer to [the mainnet guide.](/coins/overview-eth/guide-or-how-to-setup-a-validator-on-eth2-mainnet/part-iii-tips/reducing-network-bandwidth-usage.md)                                                                                                                                                              |
| Execution client node redundancy              | Refer to [the mainnet guide.](/coins/overview-eth/guide-or-how-to-setup-a-validator-on-eth2-mainnet/part-iii-tips/improving-validator-attestation-effectiveness.md#strategy-2-eth1-redundancy)                                                                                                                      |

### :dna: Consensus client Checklist

| Concern                                             | Solution                                                                                                                                                                                                                                                                                                                                                                                       |
| --------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Installed latest stable release                     | Refer to [how to update consensus client.](broken://pages/tFUblbPEXCBTovedPHmD)                                                                                                                                                                                                                                                                                                                |
| Beacon chain client can connect to Execution client | <p>Check for a response with the command:<code>curl -H "Content-Type: application/json" -X POST --data '{"jsonrpc":"2.0","method":"web3\_clientVersion","params":\[],"id":67}' <http://localhost:8545></code></p><p>You should receive a response similar to:</p><p><code>{"jsonrpc":"2.0","id":67,"result":"Geth/v1.9.24-stable-cc05b050/linux-amd64/go1.15.5"}</code></p>                    |
| Beacon chain is sync'd to mainnet                   | Ensure your block number matches the slot# of a [public block explorer](https://beaconcha.in). 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                                          | <p>Confirm ports are reachable with an external port checker such as</p><p><a href="https://www.yougetsignal.com/tools/open-ports/"><https://www.yougetsignal.com/tools/open-ports/></a> or <a href="https://canyouseeme.org"><https://canyouseeme.org/></a> .</p><p><a href="/pages/Tb57gqyH5WWgWgjhdeME#bricks-mandatory-configure-your-firewall">Click here for Port # information</a>.</p> |
| Understand how to stop/start beacon-chain           | <p><code>sudo systemctl stop beacon-chain</code></p><p><code>sudo systemctl start beacon-chain</code></p>                                                                                                                                                                                                                                                                                      |
| Understand how to update my beacon chain            | Refer to this [quick guide.](broken://pages/tFUblbPEXCBTovedPHmD)                                                                                                                                                                                                                                                                                                                              |
| Join Discord                                        | Refer to [the mainnet guide](/coins/overview-eth/guide-or-how-to-setup-a-validator-on-eth2-mainnet/joining-the-community-on-discord-and-reddit.md)                                                                                                                                                                                                                                             |

### :key2: Consensus Validator Client Checklist

| Concern                                          | Solution                                                                                                                                                                                              |
| ------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Verify keystores are properly imported           | Refer to the mainnet guide's section on [importing keys.](broken://pages/RQOlbyXkE2Wd5vYz4hJE#4-configure-a-eth2-beacon-chain-node-and-validator)                                                     |
| Check validator logs for errors                  | Use the command `journalctl -fu validator`                                                                                                                                                            |
| Verify attestations are working                  | Check your validators pubkey against a [public block explorer.](https://beaconscan.com)                                                                                                               |
| Setup a graffiti flag / [POAP](https://poap.fun) | Refer to [the mainnet guide.](broken://pages/oL7Tsah2M8aqWW2JyJ9b)                                                                                                                                    |
| Verified my mnemonic phrase can be restored.     | Refer to [the mainnet guide.](/coins/overview-eth/guide-or-how-to-setup-a-validator-on-eth2-mainnet/part-iii-tips/verifying-your-mnemonic-phrase.md)                                                  |
| Understand how to add more validators            | Refer to this [quick guide.](/coins/overview-eth/guide-or-how-to-setup-a-validator-on-eth2-mainnet/part-iii-tips/adding-a-new-validator-to-an-existing-setup.md)                                      |
| Understand how to update my consensus client     | Refer to this [quick guide.](broken://pages/tFUblbPEXCBTovedPHmD)                                                                                                                                     |
| Know how to stop/start validator                 | <p><code>sudo systemctl stop validator</code></p><p><code>sudo systemctl start validator</code></p>                                                                                                   |
| Beacon-node redundancy                           | Refer to [the mainnet guide.](/coins/overview-eth/guide-or-how-to-setup-a-validator-on-eth2-mainnet/part-iii-tips/improving-validator-attestation-effectiveness.md#strategy-4-beacon-node-redundancy) |

### :bricks: Validator Node Security Checklist

| Concern                                          | Solution                                                                                                                                        |
| ------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| Secure the root account                          | Refer to the [best security practices document.](broken://pages/Tb57gqyH5WWgWgjhdeME#create-a-non-root-user-with-sudo-privileges)               |
| Connect with SSH Keys Only                       | Refer to the [best security practices document.](broken://pages/Tb57gqyH5WWgWgjhdeME#disable-ssh-password-authentication-and-use-ssh-keys-only) |
| Harden SSH on a random port                      | Refer to the [best security practices document.](broken://pages/Tb57gqyH5WWgWgjhdeME#disable-ssh-password-authentication-and-use-ssh-keys-only) |
| Setup 2-FA for SSH (Optional)                    | Refer to the [best security practices document.](broken://pages/Tb57gqyH5WWgWgjhdeME#setup-two-factor-authentication-for-ssh-optional)          |
| Secure the Shared Memory                         | Refer to the [best security practices document.](broken://pages/Tb57gqyH5WWgWgjhdeME#secure-shared-memory)                                      |
| Setup a firewall                                 | Refer to the [best security practices document.](broken://pages/Tb57gqyH5WWgWgjhdeME#configure-your-firewall)                                   |
| Setup port forwarding on my router               | Refer to the [best security practices document.](broken://pages/Tb57gqyH5WWgWgjhdeME#configure-your-firewall)                                   |
| Setup intrusion-prevention monitoring            | Refer to the [best security practices document.](broken://pages/Tb57gqyH5WWgWgjhdeME#install-fail-2-ban)                                        |
| Whitelisted my local machine in the ufw firewall | Refer to the [best security practices document.](broken://pages/Tb57gqyH5WWgWgjhdeME#configure-your-firewall)                                   |
| Whitelisted my local machine in Fail2ban         | Refer to the [best security practices document.](broken://pages/Tb57gqyH5WWgWgjhdeME#install-fail-2-ban)                                        |
| Verify the listening ports                       | Refer to the [best security practices document.](broken://pages/Tb57gqyH5WWgWgjhdeME#verify-listening-ports)                                    |

### :vertical\_traffic\_light: Validator Node Maintenance and Best Practices Checklist

| Concern                                                  | Solution                                                                                                                                                                                                                                                                    |
| -------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Enabled automatic OS patching                            | Refer to the [best security practices document.](broken://pages/Tb57gqyH5WWgWgjhdeME#update-your-system)                                                                                                                                                                    |
| Setup chrony or other NTP time sync service              | Refer to [the mainnet guide.](broken://pages/PZZU4JYd2O7V7qzandVI)                                                                                                                                                                                                          |
| Setup Prometheus and Grafana Monitoring/Alerts/Dashboard | Refer to [the mainnet guide.](/coins/overview-eth/guide-or-how-to-setup-a-validator-on-eth2-mainnet/part-i-installation/monitoring-your-validator-with-grafana-and-prometheus.md)                                                                                           |
| 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.](/coins/overview-eth/guide-or-how-to-setup-a-validator-on-eth2-mainnet/part-iii-tips/switching-migrating-consensus-client.md)                                                                                                                  |
| Understand how to voluntary exit                         | Refer to the [mainnet guide.](/coins/overview-eth/guide-or-how-to-setup-a-validator-on-eth2-mainnet/part-iii-tips/voluntary-exiting-a-validator.md)                                                                                                                         |
| Used all available LVM disk space                        | Refer to the [mainnet guide.](/coins/overview-eth/archived-guides/guide-or-how-to-setup-a-validator-on-eth2-mainnet/part-iii-tips/using-all-available-lvm-disk-space.md)                                                                                                    |
| Understand important directory locations                 | Refer to the [mainnet guide.](/coins/overview-eth/guide-or-how-to-setup-a-validator-on-eth2-mainnet/part-iii-tips/important-directory-locations.md)                                                                                                                         |

## :robot: Start staking by building a validator <a href="#start-staking-by-building-a-validator" id="start-staking-by-building-a-validator"></a>

### Visit here for our [Mainnet guide](https://www.coincashew.com/coins/overview-eth/guide-or-how-to-setup-a-validator-on-eth2-mainnet)

{% 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](https://cointr.ee/coincashew) addresses. 🙏

Any feedback and all pull requests much appreciated. 🌛
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.coincashew.com/coins/overview-eth/archived-guides/guide-or-how-to-setup-a-validator-on-eth2-mainnet/part-ii-maintenance/checklist-confirming-healthy-functional-eth-staking-node.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
