Setup Guide
Table of Contents
1) Prerequisites
Before proceeding, ensure you have the following:
Basic Knowledge: Familiarity with command-line interfaces and server management.
Access Credentials: SSH access to your chosen server with sudo privileges.
2) Choosing a Hosting Provider
Selecting a reliable hosting provider is crucial for the stability and performance of your Zenon Pillar. Consider the following factors when choosing a provider:
Reliability and Uptime: Ensure the provider offers high uptime guarantees (99.9% or higher).
Performance: Look for providers with robust CPU and RAM options to handle blockchain operations.
Scalability: Ability to upgrade resources as your node grows.
Security: Features like DDoS protection, firewalls, and regular backups.
Support: 24/7 customer support can be invaluable.
Cost: Balance between features and your budget.
Popular Hosting Providers:
DigitalOcean
Amazon Web Services (AWS)
Hetzner
Google Cloud Platform (GCP)
Microsoft Azure
Vultr
Linode
Choose a provider that best fits your requirements and budget.
3) Minimum Hardware Requirements
To ensure optimal performance and stability of your Zenon Pillar, your server should meet the following minimum hardware specifications:
CPU
≥ 4 cores (ideally 8 CPU for the initial sync)
RAM
≥ 4 GB (ideally 16 GB for the initial sync)
Storage
≥ 40 GB free space
Network
Dedicated bandwidth with speeds exceeding 100 Mbps
4) Choosing the Operating System
For optimal performance and compatibility with the Zenon controller, it is recommended to use a Linux distribution. The x86/64 znn_controller-linux release is compatible with several distros, including:
Ubuntu 22.04 LTS (Recommended)
Debian 11
CentOS 8
Fedora 36
5) Server Setup and Configuration
Accessing the Server
Obtain SSH Credentials: After setting up your server with your chosen provider, retrieve the SSH IP address, username, and password/key.
Connect via SSH:
ssh username@your_server_ipReplace
usernamewith your server's username (commonlyroot) andyour_server_ipwith your server's IP address.Switch to Root User:
sudo -iThis command grants you root privileges for the installation process.
Updating the System
Ensure your server's package lists and installed packages are up to date by running the command individually:
apt update
apt upgrade -yapt update: Updates the package index.apt upgrade -y: Upgrades all installed packages to their latest versions.
Installing Required Packages
Install unzip and other necessary utilities:
apt install -y unzip wgetunzip: Required for extracting the Zenon controller ZIP file.wget: Facilitates downloading files from the internet.
6) Installing the Zenon Controller
Download the Zenon Controller: Execute the following command to download and extract the Zenon controller:
wget -O znn_controller-linux-x86_64.zip https://github.com/zenon-network/znn_controller_dart/releases/download/v0.0.4-alpha/znn_controller-linux-x86_64.zip && \ unzip -o znn_controller-linux-x86_64.zip && \ rm znn_controller-linux-x86_64.zipVisit the official Zenon Network Github repository for the latest
znn_controller_dartrelease: https://github.com/zenon-network/znn_controller_dart/releaseswget -O: Downloads the file and saves it with the specified name.unzip -o: Extracts the ZIP file, overwriting existing files if necessary.rm: Removes the ZIP file after extraction to save space.
Verify Installation:
Ensure the
znn-controllerexecutable is present:ls -la | grep znn-controllerYou should see the
znn-controllerfile listed.
7) Configuring Automatic Restarts with Cron
For the initial sync of your Zenon Pillar, it's recommended to configure automatic restarts. This ensures that the controller restarts hourly, speeding up the sync process.
Open Crontab Editor:
crontab -eAdd Cron Job:
Press
ito enter insert mode.Navigate to the end of the file.
Add the following line to schedule a restart every hour:
0 * * * * /usr/bin/sudo /usr/sbin/service go-zenon restart
Save and Exit:
Press
Escto exit insert mode.Type
:wqand pressEnterto save and quit.
8) Deploying the Pillar
Start the Zenon Controller:
./znn-controllerDeployment Options:
Upon running the controller, you will be presented with deployment options. To deploy your pillar:
Select option
1) Deploy
Monitoring Synchronization: The controller will begin syncing to the latest block height of the Zenon network. This process may take some time (even days) depending on network conditions and server performance. To monitor the status of your sync:
Select option
2) StatusAnd compare it to the latest height in your syrius wallet, or trusted Zenon Network explorers: https://www.zenonhub.io https://explorer.zenon.org https://www.zenon.tools
9) Post-Deployment Steps
After your pillar has successfully synced to the latest height, it's crucial to remove the cron job so that the Pillar doesn't miss momentums unnecessarily:
Comment Out the Cron Job:
Prevent the automatic restart to avoid interrupting the controller's operation.
Re-open Crontab Editor:
crontab -e
Locate the Cron Job:
# 0 * * * * /usr/bin/sudo /usr/sbin/service go-zenon restart
Add a
#at the Beginning:This comments out the line, disabling the scheduled restart.
Save and Exit:
Press
Escto exit insert mode.Type
:wqand pressEnterto save and quit.
10) Useful Commands
Watch the Pillar's logs in real-time:
watch systemctl status go-zenonVerify the Sync / Height Status:
Replace the PRIVATE-IP with your Pillar's Private IP address:
curl -X GET http://PRIVATE-IP:35997 -H "content-type: application/json" -d '{"jsonrpc": "2.0", "id": 21, "method": "stats.syncInfo", "params": []}'You will receive a response:
{"jsonrpc":"2.0","id":21,"result":{"state":1,"currentHeight":1998515,"targetHeight":5113554}}When the state goes from 1 to 2, then your Pillar is fully synced.
Last updated
Was this helpful?
