If you experience any issues during installation, post your questions in the https://forum.poa.network/c/xdai-chain/validators-support-private.
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.
OS: Ubuntu Linux 16.04 LTS with root or sudo-user access over ssh
CPU: minimum 2 cores
RAM: minimum 4GB
Disk: 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
Login to your node to begin.
For basic instructions, see the github repo at https://github.com/xdaichain/validator-node-dockerized
Installation instructions will vary based on OS. Follow the instructions here:
Your clock should be synchronized to prevent skipping block sealing.
Entertimedatectl status
, you should see similar output:
Local time: Tue 2020-06-30 17:16:19 UTCUniversal time: Tue 2020-06-30 17:16:19 UTCRTC time: Tue 2020-06-30 17:16:19Time zone: Etc/UTC (UTC, +0000)System clock synchronized: yessystemd-timesyncd.service active: yesRTC in local TZ: no
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
echo sudo date -s '"$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"' > fixtime.shchmod +x fixtime.shscreen -S timewatch -n 60 ./fixtime.sh
Press Ctrl+A+D
to leave the screen
$ git clone https://github.com/xdaichain/validator-node-dockerized$ cd validator-node-dockerized
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.
Copy .env.example
to .env
and configure the .env
file. Define the following settings.
ETHSTATS_ID=[validator_name]ETHSTATS_CONTACT=[contact_email]ETHSTATS_SECRET=[netstat_secret_key]EXT_IP=[external_server_ip]ACCOUNT=[mining_address]
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 (Available here - you will need access to the forum to view, please keep it private)
EXT_IP
- External IP address of the current server
ACCOUNT
- Your public mining address (40 characters including the leading 0x
)
$ docker-compose up -d
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
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).