This repository will help you setup a zencash node with a single bash script.
The script will install Docker on a fresh Ubuntu VM and provision the following containers:
acme.sh will run as a docker container and auto-renew your SSL certificates when required.
You will need a server with at least 4GB ram (2GB memory w/ 2GB swap is genearlly OK) to run a ZenCash secure node. DigitalOcean and OVH have been popular providers amongst the community.
The script is designed to run on Ubuntu 16.04
You will also need a domain name that is pointing to your server (eg. zennode.example.com) acme.sh will be used to provision and maintain a valid SSL certificate for your domain.
Invoking the script is best done on a fresh installation, however executing install script again should not cause any issues.
Note: Check the ansible installer if you plan on installing multiple nodes
curl -O https://raw.githubusercontent.com/WhenLamboMoon/docker-zen-node/master/install.sh
chmod +x install.sh
./install.sh <stakeaddr> <email> <fqdn> <region>
Example:
./install.sh ztjcr2DSYhMZZ3WFFeoK2hDxhmK4VP3QcgK [email protected] zennode.example.com sea
The script will install the required dependencies and deploy the three containers on your host.
The script should execute successfully when you see the output similar to this:
## Generating shield address for node...
ztSpgr2Yat7zSMiLNHtyDKGajzSesxabQsRwJnqtomDJU9wd6LzZppnQJyYiNE8sJDEy5MyTiMrSjf3bWcMKgtF9xcEY4eA
This will be the shield address you need to send 1 ZEN in order for your start accepting challenges. It is recommended you send this in 4 transactions of 0.25 ZEN. As of now, this can only be done using the swing wallet or CLI.
After you send your 1 ZEN, you may check your node private balance:
docker exec zen-node gosu user zen-cli z_gettotalbalance
The securenodetracker will only report a successful status after you've sent your ZEN to the shield address. You may check by viewing the secnodetracker logs:
docker logs zen-secnodetracker
It should return something like this:
Secure node config found OK - linking...
CPU Intel Core Processor (Haswell, no TSX) cores=1 speed=2394
Tracker app version: 0.1.0
MemTotal: 3.86GB MemFree: 1.61GB MemAvailable: 3.47GB SwapTotal: 4.10GB SwapFree: 4.10GB
2017-12-01 07:29:58 GMT -- Connected to server ts1.na. Initializing...
2017-12-01 07:30:08 GMT -- Zend: Loading block index...
2017-12-01 07:30:18 GMT -- Zend: Verifying blocks...
Secure Node t_address (not for stake)=XXXX
Balance for challenge transactions is 1
Using the following address for challenges
xxxx
Finally, check the securenode tracker website to see if your node has been registered:
Please Note: It may take a few hours for your server to fully update to the latest block. Your node will not come online until this has been fully updated.
You may check the latest block status with the following command:
docker exec zen-node gosu user zen-cli getinfo
If you are creating multiple nodes, you may seed the initial blockchain from one of your running nodes with the following command:
rsync -avh --progress /mnt/zen/config/blocks /mnt/zen/config/chainstate /mnt/zen/config/database yournewnode:/mnt/zen/config/
This will save you the 1-2 hours wait for a new node to download the full chain.
If you need to execute commands with zen-cli you will need to append the following:
docker exec zen-node gosu user zen-cli
This is because zend is run as a non-root user using gosu. Removing gosu user will return
you an error due to missing config files.
If you run into any issues feel free to open an issue. Please include output from the following commands when opening your issue:
docker logs zen-secnodetracker
docker logs zen-node
If your zen-node becomes corrupted due to lack of disk space you may see an error similar to this:
2017-12-10 21:22:46 Corruption: checksum mismatch
2017-12-10 21:22:46 : Error opening block database.
Please restart with -reindex to recover.
2017-12-10 21:22:46 Aborted block database rebuild. Exiting.
2017-12-10 21:22:46 scheduler thread interrupt
2017-12-10 21:22:46 Shutdown: In progress...
2017-12-10 21:22:46 StopRPC: waiting for async rpc workers to stop
2017-12-10 21:22:46 StopNode()
2017-12-10 21:22:46 Shutdown: done
To resolve this you will need to reindex your zen-node. To do this you will need to run the following commands:
systemctl stop zen-node
docker run --rm --net=host -p 9033:9033 -p 18231:18231 -v /mnt/zen:/mnt/zen --name zen-node whenlambomoon/zend:latest zend -reindex
Once it finishes reindexing you can exit and restart the zen-node normally:
docker stop zen-node
systemctl restart zen-node
Donations are appreciated:
ETH 0x7905fD9cB226305fc805d1E13ff9E784e1dEf9F4
ZEN zngmrvJRWx9mqHgyY6e17dbkTYvbJwSRp83
Content type
Image
Digest
Size
264.6 MB
Last updated
over 8 years ago
docker pull xavren/zen-node-tracker