Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
The wallet data is stored inside a KeyStore
AES-256-GCM
for symmetric encryption
Argon2.IDkey
as Key Derivation Function
time: 1
memory: 64 * 1024
threads: 4
key_length: 32
An encrypted KeyStore
is referred to as KeyVault
.
Ed25519
is a deterministic signature scheme using curve25519
Ed25519
which is compatible with BIP44
key parameter: ed25519 seed
hardened offset: 0x80000000
Alphanet (Network of Momentum Phase 0) uses coin_type
value 73404
bech32
human readable part: z
data
user account prefix byte: 0
embedded contract prefix byte: 1
core: first 19
bytes of sha3(pubKey)
address: bech32(hrp, data)
The Zenon Node znnd
has the following default data paths:
Linux: ~/.znn
MacOS: ~/Library/znn
Please note that the path can be different due to the hardened runtime policy
Windows: C:\Users\yourusername\AppData\Roaming\znn
You can change the default DataPath
using znnd --data "value"
The Zenon Node has the following folder structure:
The Zenon Alphanet (Phase 0) binaries are available for Linux, macOS and Windows x86_64 CPU architecture operating systems.
Ubuntu 20.04 LTS
was used for this tutorial.
Download znnd
, znn-cli
and znn-controller
from their respective GitHub repos. Please note that znn-controller
is only available for Linux at the moment.
Import the Zenon Testnet PGP key from hkps.pool.sks-keyservers.net
If you don't have gpg
installed, please use sudo apt install gnupg
Verify the signature. The same command can be used on macOS:
If you are on a Linux machine, use the znn-controller
option 1) Deploy
:
Otherwise use:
Inspect the config.json
file using your favorite text editor.
Navigate to ~/.znn/config.json
.
Check if the http
, websocket
entries are enabled (true
). By default, all Endpoints
are public.
The default HTTPPort
is 35997
and WSPort
is 35998
.
You can also disable the RPC communication via znn-cli
:
If you have pending funds you should see messages like these:
In order to receive the ZNN you need to issue the command receive
with the corresponding hash:
If you don't have Plasma, you'll need to generate it via PoW, please wait.
Similarly, you'll receive the QSR by issuing the command receive
with the corresponding hash:
You can use the stop command from znn-cli
if znnd
is located at the same working directory:
If you deployed via znn-controller
please use option 4 (Stop service)
Otherwise use:
Follow these instructions to deploy a Pillar or Sentinel.
There are 3 types of nodes: Pillar, Sentinel, Full Node.
For the Pillar deployment process one will need access to both a local and a remote machine. The local machine is represented by the controller wallet, where you create the Pillar Slot and register the Pillar on the network. The remote machine is usually represented by a VPS with some minimum recommended specs and a public IP that is actively participating in the consensus protocol.
You will need to generate 3 distinct addresses for the Pillar creation tutorial:
pillarAddress
= address from which the Pillar is registered that contains the necessary funds (15,000 ZNN that will be locked and can be recovered after you disassemble the Pillar and 150,000 QSR + additional 10,000 QSR for every new Pillar Slot in the network that will be burned and cannot be recovered)
pillarRewardsAddress
= address used to collect the Pillar rewards
producerAddress
= address used to produce the momentums that is stored on the remote machine; must be generated from a different seed than your local wallet keyStore for security purposes
The Sentinel deployment process is similar to the Pillar deployment process.
The latest version of the s y r i u s
wallet is recommended to be used as controller wallet. Advanced users can use the znn-cli
instead.
These commands should be issued from your remote machine (e.g. VPS). If you won't use a VPS provider, you will need an additional setup including enabling port forwarding. This tutorial is intended for a VPS with some minimum recommended specs and a public IP.
CPU >= 4 cores
RAM >= 4 GB
Storage >= 40 GB free space
>100Mbps network dedicated bandwidth
Linux distros
e.g. Ubuntu 20.04 LTS/Debian 11
Recommended NTP configuration
*
Recommended Watchdog service
*
(*) Included if the setup is performed using the znn-controller
znn-controller
See zenon-network / go-zenon for the latest releases.
znn-controller
as rootEpochDurationInSeconds
: 24 60 60 (1 day)
MomentumTime
: 10 seconds
PillarStakeAmount
: 15000 ZNN
PillarQsrStakeBaseAmount
: 150000 QSR
PillarQsrStakeIncreaseAmount
: 10000 QSR
PillarEpochLockTime
: 83 epochs
PillarEpochRevokeTime
: 7 epochs
PillarNameLengthMax
: 40 characters
SentinelZnnRegisterAmount
: 5000 ZNN
SentinelQsrDepositAmount
: 50000 QSR
SentinelEpochLockTime
: 27 epochs
SentinelEpochRevokeTime
: 3 epochs
StakeTimeUnit
: 30 epochs
StakeTimeMin
: 30 epochs
StakeTimeMax
: 360 epochs
StakeMinAmount
: 1 ZNN
FuseMinAmount
: 10 QSR
FuseExpiration
: 10 hours
TokenIssueAmount
: 1 ZNN (burned)
TokenNameLengthMax
: 40 characters
TokenSymbolLengthMax
: 10 characters
TokenDomainLengthMax
: 128 characters
TokenMaxSupplyBig
: 2^255 - 1
TokenMaxDecimals
: 18
SwapAssetDecayEpochsOffset
: 90
SwapAssetDecayTickEpochs
: 30
SwapAssetDecayTickValuePercentage
: 10
By setting up a Zenon Pillar, you play a pivotal role in enhancing the decentralization, security, and overall robustness of the Zenon ecosystem.
This setup guide is for operators looking to setup the Orchestrator binary on the same server as their Pillar. If you're looking to setup on a remote server (not on the Pillar), then please follow the following: Setup Guide (Remote).
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.
BNB and Ethereum Nodes: Access to a BNB and Ethereum node provider like Alchemy to obtain WebSocket (WSS) endpoints.
Producer Passphrase: The passphrase for your Producer Key File, retrievable via the znn-controller.
QSR Tokens: At least 120 QSR tokens fused to the Pillar Producer Address.
To facilitate communication and health checks, ensure the following ports are open on your server’s firewall:
1. Port 55055 (TCP): Open for gossip communication between nodes.
2. Port 55000 (TCP): Open for API health checks.
Steps to Open Ports:
Assuming you’re using ufw (Uncomplicated Firewall) on Ubuntu:
Note: If you’re using a different firewall management tool, adjust the commands accordingly.
To interact with the Binance Smart Chain and Ethereum network, you need access to a Binance Smart Chain and Ethereum node. Alchemy provides reliable node services.
Steps to Obtain the WSS Endpoint
Sign Up/Login to Alchemy:
Visit Alchemy and create an account or log in.
Create a New App:
Navigate to the dashboard and create a new app.
Select the desired network (e.g., Mainnet, Ropsten).
Retrieve the WSS Endpoint:
Once the app is created, go to the app’s dashboard.
Locate the WebSocket endpoint URL.
Example Endpoint:
Obtain SSH Credentials: After setting up your server with your chosen provider, retrieve the SSH IP address, username, and password/key.
Connect via SSH:
Replace username
with your server's username (commonly root
) and your_server_ip
with your server's IP address.
Switch to Root User:
This command grants you root privileges for the installation process.
Ensure your server's package lists and installed packages are up to date by running the command individually:
apt update
: Updates the package index.
apt upgrade -y
: Upgrades all installed packages to their latest versions.
Install unzip
and other necessary utilities:
unzip
: Required for extracting the Zenon controller ZIP file.
wget
: Facilitates downloading files from the internet.
This section covers downloading the Orchestrator binary, setting up the configuration file, and preparing the orchestrator for deployment.
First, download the latest Orchestrator binary. Ensure you're using the most recent release by checking the OrchestratorGitHub Releases.
Download Command:
Note: Replace the URL with the latest release if a newer version is available.
Unzip the downloaded file:
Move the Binary and Create the Configuration Directory
Copy the Binary to /usr/local/bin/
:
Run the Orchestrator Binary to Initialize:
Expected Outcome: The process will fail initially but will create a working directory at /root/.orchestrator/
.
Edit the config.json
file to suit your environment:
Configuration Steps:
Update WebSocket URLs:
BNB: Replace with your Alchemy BNB WSS endpoint.
Ethereum: Replace with your Alchemy Ethereum WSS endpoint.
Provide Producer Key File Passphrase:
Retrieve by running the znn-controller
and selecting the 2) Status
option.
Maintain Unique EvmAddress
:
Do not change or remove the EvmAddress
once created.
Add Bootstrap Address:
Sample config.json
Structure:
Assuming you are running the Orchestrator on the pillar, copy the producer file to the Orchestrator's data path:
Note: Ensure the path to the producer file is correct. Adjust the command if your producer file is located elsewhere.
To ensure that the Orchestrator runs continuously and starts on boot, set it up as a systemd service.
Open a new service file for the Orchestrator:
Copy and paste the following content into the service file:
Reload systemd to recognize the new service:
Enable the service to start on boot:
Start the Orchestrator service:
Check if the Orchestrator service is running correctly:
Expected Output:
Note: The Active: active (running)
status indicates that the service is running correctly.
To fully deploy your Orchestrator with the Zenon Network, ensure that you have fused at least 120 QSR tokens to the Pillar Producer Address.
Access Your Pillar Producer Address:
Use your Syrius wallet or another compatible wallet to access your producer address.
Fuse QSR Tokens:
Follow the wallet's instructions to fuse QSR tokens.
Ensure you have at least 120 QSR fused to meet the network's requirements.
Welcome to our official guide for setting up a Zenon Network Pillar. This comprehensive manual will walk you through selecting the right hosting provider, configuring your server, installing necessary dependencies, and deploying the Zenon controller. Whether you're a seasoned developer or new to blockchain infrastructure, this guide will ensure a smooth and secure setup process.
If you're looking to migrate your Pillar to a new hosting provider.
It's recommend leaving your existing Pillar online during the migration if it's still producing momentums. The migration is seemless, the only difference between the Setup Guide and this Migration Guide, is that you will copy your new Pillar's producer address and update it in your syrius wallet for the Pillar's reward address. Details are provided in Step 9) Update Producer Address.
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.
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.
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
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
Obtain SSH Credentials: After setting up your server with your chosen provider, retrieve the SSH IP address, username, and password/key.
Connect via SSH:
Replace username
with your server's username (commonly root
) and your_server_ip
with your server's IP address.
Switch to Root User:
This command grants you root privileges for the installation process.
Ensure your server's package lists and installed packages are up to date by running the command individually:
apt update
: Updates the package index.
apt upgrade -y
: Upgrades all installed packages to their latest versions.
Install unzip
and other necessary utilities:
unzip
: Required for extracting the Zenon controller ZIP file.
wget
: Facilitates downloading files from the internet.
Download the Zenon Controller: Execute the following command to download and extract the Zenon controller:
Visit the official Zenon Network Github repository for the latest znn_controller_dart
release:
https://github.com/zenon-network/znn_controller_dart/releases
wget -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-controller
executable is present:
You should see the znn-controller
file listed.
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:
Add Cron Job:
Press i
to enter insert mode.
Navigate to the end of the file.
Add the following line to schedule a restart every hour:
Save and Exit:
Press Esc
to exit insert mode.
Type :wq
and press Enter
to save and quit.
Once your Pillar catches up to the latest height, disable the automatic restart cron by commenting out the line: # 0 * * * * /usr/bin/sudo /usr/sbin/service go-zenon restart
Start the Zenon Controller:
Deployment 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) Status
And 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
Once and ONLY once your new Pillar has synced up to the latest height, should you proceed with this step of the migration. If you update your producer address prior to a full sync, you will miss rewards as your Pillar will not be participating in the network until it's fully caught up. Therefore if your new Pillar reached the latest height:
Open Your syrius Desktop Wallet
Select the address of the Pillar you're migrating.
Click on Pillars in the navigation bar.
For the Pillar producer address field, paste the new Pillar's Producer Address, and press Next and Update until it saves the new address. Steps to get your new Pillar's Address are written below.
Start the Zenon Controller:
Deployment Options:
Upon running the controller, you will be presented with deployment options. To deploy your pillar:
Select option 2) Status
Copy Producer Address Use this new Pillar Producer Address to update in the syrius wallet.
After your pillar has successfully synced to the latest height and you've updated your Pillar's Producer Address in your syrius wallet, 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:
Locate the Cron Job:
Add a #
at the Beginning:
This comments out the line, disabling the scheduled restart.
Save and Exit:
Press Esc
to exit insert mode.
Type :wq
and press Enter
to save and quit.
Shut down old Pillar on old Hosting Provider: Once the above steps have been completed, you can shut down your server which hosted your old Pillar. It is recommended that you delete the server only after you've successfully collected your Pillar rewards in the syrius wallet (using the new Pillar's Producer Address). You can wait until the next reward distribution for this (the next day, depending at which hour of the day you've migrated).
Replace the PRIVATE-IP
with your Pillar's Private IP address:
You will receive a response:
When the state goes from 1
to 2
, then your Pillar is fully synced.
Keeping your Zenon Network Pillar up-to-date is essential for maintaining optimal performance, security, and access to the latest features.
Before proceeding with the update, ensure you have the following:
Access Credentials: SSH access to your server with sudo privileges.
Basic Knowledge: Familiarity with command-line interfaces and server management.
Backup: It's recommended to back up your current configuration and controller files before performing the update.
znnd
ServiceAccess Your Server via SSH:
Open your terminal and connect to your server using SSH:
Replace username
with your server's username (commonly root
) and your_server_ip
with your server's IP address.
Stop the znnd
Service:
Run the znn-controller
executable and select the option to Stop Service
the znnd
service.
Interactive Prompt:
Action:
Enter 4
and press Enter
to stop the running the znnd
service.
Note: Ensure the service has completely stopped before proceeding to the next step. You can enter 2
and press Enter
to verify the Status of the znnd
service.
znn-controller
Identify the Latest Release URL:
Download the Latest Controller:
Replace YOUR_LATEST_URL
with the actual URL of the latest znn-controller
release.
Example:
znn-controller
FileExtract the Downloaded ZIP File:
-o
Flag: Overwrites existing files without prompting.
Remove the ZIP File:
Run the Updated znn-controller
:
Deployment Options:
Upon execution, you will be presented with deployment options:
Select Deploy Option:
Action: Enter 1
and press Enter
to deploy the updated controller.
Continue Using Existing Configuration:
Prompt:
Action: Enter Y
and press Enter
to confirm.
Check the Status of the Controller:
Run the znn-controller
and select the status option to verify that the update was successful.
Interactive Prompt:
Action: Enter 2
and press Enter
to view the current status.
By setting up a Zenon Pillar, you play a pivotal role in enhancing the decentralization, security, and overall robustness of the Zenon ecosystem.
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.
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.
To ensure optimal performance and stability of your Zenon Pillar, your server should meet the following minimum hardware specifications:
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
Obtain SSH Credentials: After setting up your server with your chosen provider, retrieve the SSH IP address, username, and password/key.
Connect via SSH:
Replace username
with your server's username (commonly root
) and your_server_ip
with your server's IP address.
Switch to Root User:
This command grants you root privileges for the installation process.
Ensure your server's package lists and installed packages are up to date by running the command individually:
apt update
: Updates the package index.
apt upgrade -y
: Upgrades all installed packages to their latest versions.
Install unzip
and other necessary utilities:
unzip
: Required for extracting the Zenon controller ZIP file.
wget
: Facilitates downloading files from the internet.
Download the Zenon Controller: Execute the following command to download and extract the Zenon controller:
wget -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-controller
executable is present:
You should see the znn-controller
file listed.
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:
Add Cron Job:
Press i
to enter insert mode.
Navigate to the end of the file.
Add the following line to schedule a restart every hour:
Save and Exit:
Press Esc
to exit insert mode.
Type :wq
and press Enter
to save and quit.
Once your Pillar catches up to the latest height, disable the automatic restart cron by commenting out the line: # 0 * * * * /usr/bin/sudo /usr/sbin/service go-zenon restart
Start the Zenon Controller:
Deployment 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:
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:
Locate the Cron Job:
Add a #
at the Beginning:
This comments out the line, disabling the scheduled restart.
Save and Exit:
Press Esc
to exit insert mode.
Type :wq
and press Enter
to save and quit.
Replace the PRIVATE-IP
with your Pillar's Private IP address:
You will receive a response:
When the state goes from 1
to 2
, then your Pillar is fully synced.
Click on the ⚙️ in the navigation bar.
Click on +Update Pillar
Visit the to find the latest version of the znn-controller
. Copy the download URL for the x86/64 Linux release.
Visit the official Zenon Network Github repository for the latest znn_controller_dart
release:
Select option 2) Status
And compare it to the latest height in your syrius wallet, or trusted Zenon Network explorers:
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