Nethermind Node Setup
Instructions for setting up a Nethermind Client Node
Before getting started as a new validator, please follow the Become a Candidate steps to fund and setup your staking address. You will need this as well as information from the validator-candidates Discord channel to complete the setup.
If you are migrating from a current OpenEthereum/Parity Node:
  1. 1.
    We recommend preparing through step 4 below (update .env file) on a clean instance, but DO NOT launch ( do not proceed to step 5 docker-compose up -d) until you have stopped your current instance.
  2. 2.
    Once your new node is prepared, stop your current OE/Parity instance
    1. 1.
      If using docker, stop with docker-compose down
    2. 2.
      If using an ansible deploment playbook, uninstall withsudo pip uninstall --yes ansible or follow these instructions https://howtoinstall.co/en/ubuntu/xenial/ansible?action=remove
  3. 3.
    Once you have confirmed your previous node is stopped, proceed with step 5 below and launch the new instance. Initial sync should take about 15 minutes.
If you need to update to Nethermind Latest Version (ie for London Hardfork)
  1. 1.
    Set docker image as image: nethermind/nethermind:latest
  2. 2.
    docker pull nethermind/nethermind:latest
    docker-compose down
    docker-compose up -d

Validator Node Specs

Nethermind can be supported by a variety of cloud-based providers. Instructions are available here for UpCloud, which can be generalized to other providers. If you are already with a provider, we recommend launching a new, clean instance.

Minimum specifications

  • OS: Ubuntu, Windows & MacOs. See supported platforms
  • CPU: minimum 2 cores
  • RAM: minimum 4GB
  • Disk: 50gb SSD
  • Open network ports: SSH port (default 22 TCP), 30303 UDP/TCP. For security purposes, close other ports.
  • Check that you have git installed git --version
    • if not, install it following instructions here
See the Nethermind Docs for additional information

Node setup

Login to your node to begin.
For basic docker instructions, see the github repo at https://github.com/xdaichain/validator-node-dockerized/tree/nethermind#readme

1) Install Docker Engine & Docker Compose

Installation instructions will vary based on OS. Follow the instructions here:

2) Sync Clock

Your clock should by synchronized to prevent skipping block sealing.
Entertimedatectl status , you should see similar output:
1
Local time: Tue 2020-06-30 17:16:19 UTC
2
Universal time: Tue 2020-06-30 17:16:19 UTC
3
RTC time: Tue 2020-06-30 17:16:19
4
Time zone: Etc/UTC (UTC, +0000)
5
System clock synchronized: yes
6
systemd-timesyncd.service active: yes
7
RTC in local TZ: no
Copied!
If System clock synchronized displays yes you are ready to go, proceed to step 3.
If not, you can either:
  • synchronize clock with NTP servers (allow UDP port 123 for both incoming and outgoing traffic) or
  • use the following script to sync with google.com:
Create fixtime.sh script and run it with watch -n 60 command in a screen
1
echo sudo date -s '"$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"' > fixtime.sh
2
chmod +x fixtime.sh
3
screen -S time
4
watch -n 60 ./fixtime.sh
Copied!
Press Ctrl+A+D to leave the screen

3) Clone the Repo

1
$ git clone -b nethermind https://github.com/xdaichain/validator-node-dockerized
2
$ cd validator-node-dockerized
Copied!

4) Update .env File

You will need your private mining key to proceed (see step 3 here to retrieve a key string using MetaMask)
Copy .env.example to .env and configure the .env file. Define the following settings.
1
ETHSTATS_ID=[validator_name]
2
ETHSTATS_CONTACT=[contact_email]
3
ETHSTATS_SECRET=[netstat_secret_key]
4
KEY=[your_private_key_for_mining_address]
5
SEQAPIKEY=[seq_api_key]
Copied!
  • ETHSTATS_ID - The displayed name of your validator in Netstats
  • ETHSTATS_CONTACT - Validator's contact (e.g., e-mail)
  • ETHSTATS_SECRET - Secret key to connect to Netstat (Receive from admin of validator-candidates channel in Discord)
  • KEY - Your mining address private key (64 characters long without leading 0x)
  • SEQAPIKEY - An API key for Seq log collector (Receive from admin of validator-candidates channel in Discord)

5) Start the Node

1
$ docker-compose up -d
Copied!
Once docker containers are created, the node will sync with the chain (may take a while).

6) Check Logs

To check the logs and verify operations (look for the Sealed block log).
1
docker-compose logs -f nethermind
Copied!

7) Setup Monitoring

This simple script can help you monitor your node and alert you if your node is down.
Once your node is synced with the chain it will be ready for use. Assuming you have completed the other steps to Become a Candidate your node will be eligible to be a validator in the next staking epoch. If there are more than 19 active candidates, the validator set is chosen based on amount of STAKE (provided by the validator and delegators) as well as a random number.
Last modified 22d ago