OpenEthereum / Parity Node Setup
We recommend running the Nethermind Client. However, OE does still work. You will need to run v3.3.0 which contains the London hard fork transition.
If you experience any issues during installation, post your questions in the https://forum.poa.network/c/xdai-chain/validators-support-private.

Process

To become a new validator, you will run a node using a mining address and connect to it with a separate staking address. See the Become a Candidate instructions before setting up your node.

Validator Node Specs

OpenEthereum can be supported by a variety of cloud-based providers. If you are already with a provider, we recommend launching a new, clean instance.

Minimum specifications:

  • OS: Ubuntu Linux 16.04 LTS with root or sudo-user access over ssh
  • CPU: minimum 2 cores
  • RAM: minimum 4GB
  • Disk: 50gb SSD
    • Open network ports: SSH port (default 22 TCP), 30303 UDP. For security purposes, close other ports
  • Check that you have git installed git --version
    • if not, install it following instructions here

Node setup

Login to your node to begin. If needed, update to v3.3.0
For basic instructions, see the github repo at https://github.com/xdaichain/validator-node-dockerized

1) Install Docker Engine & Docker Compose

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

2) Sync Clock

Your clock should be 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 https://github.com/xdaichain/validator-node-dockerized
2
$ cd validator-node-dockerized
Copied!

4) Save Mining Address JSON Keystore file and Password

Generate an external (0x) address and name your JSON keystore file as key and save it in the validator-node-dockerized directory. Save the keystore password to a password file.
You can use the eth-keygen-json tool made by Peppersec.com to generate and save.
Example:
1
npm i eth-keygen-json -g
2
Please enter the password to encrypt your new ethereum key [input is hidden]
3
Address: 0xADDRESS
4
Creating folder with your private key and json keystore.
Copied!
Alternate generation methods:
  • Generate a key with the following OpenEthereum's CLI command:
1
openethereum account new --keys-path <path_to_save_json_keystore>
Copied!

4) Update .env File

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
EXT_IP=[external_server_ip]
5
ACCOUNT=[mining_address]
Copied!
  • ETHSTATS_ID - The displayed name of your validator in Netstat
  • 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)
  • EXT_IP - External IP address of the current server
  • ACCOUNT - Your public mining address (40 characters including the leading 0x)

5) Start the Node & Netstat Service

1
$ docker-compose up -d
Copied!
Once docker containers are created, the node will sync with the chain (this may take a while).
To restart, cd into the validator-node-dockerized directory and use docker-compose stop then docker-compose start

6) Check NetStats

Open https://dai-netstat.poa.network and check that your node appears on the list and has > 0 peers. Wait until it synchronizes with the rest of the blockchain (block number and block hash should match the rest of the network).

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 24d ago