Validator Nodes
This is a short guide on how to setup a Validator Node for Venidium EVM Mainnet.
A validator runs a node that verifies transactions and finalizes blocks on the Venidium Blockchain. Each validator candidate must provide the minimum Venidium collateral (500,000 XVM) into their pool and setup a functional node to participate. They start as pending candidates, and have the chance to become validator candidates each week when a new validator candidates set is chosen. The amount of maximum active validator nodes in the network is set to 19. If there are more than 19 validator candidates, at the beginning of each epoch 19 are randomly chosen by the contracts from the amount of valid validator candidates.
Minimum System Requirements
CPU: 2 cores RAM: 4GB Disk: 100GB SSD Stable Internet Connection
Recommended System Requirements
CPU: 4 cores RAM: 6GB Disk: 250GB SSD Stable Internet Connection
Getting the required files
Clone this repository or download the repository as a zip file and extract it
In the extracted files, you should see a nodes
directory.
Linux
Install Docker and Docker Compose
(choose your platform from the list i.e. Ubuntu)
In example, for Ubuntu, the setup steps would look like this:
the commands shown bellow should be typed in your terminal window
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
Set up your node configuration
On your terminal window type
cd
and make sure to leave a space after the command (donβt press enter yet)Drag-n-drop the
nodes
folder on the terminal window and press enterType
../generate-key.sh
to generate a new private key and copy itEdit
compose.yml
innodes/validator1
directory and replace0000000000000000000000000000000000000000000000000000000000000000
on line21
with the newly generated key that you have copied
It is very important to NOT USE this private key as an account!
DO NOT import this private key to any wallet.
DO NOT make any transactions using this private key.
Operate the node
Open a terminal window, type
cd
and make sure that you leave a space after the command (don't press enter yet)Drag-n-drop the
nodes
folder on the terminal window and press enter
To start the node type ./run_all.sh
in the terminal and press enter.
To monitor your node type ./nodes/validator1/monitor-node.sh
in the terminal and press enter. You can check for any errors and see if your node is syncing.
To stop the node type ./stop_all.sh
in the terminal and press enter.
macOS
Install Docker Desktop for Mac: Install Docker Desktop on Mac | Docker Documentation
For the following instructions to work you will need to have Docker Desktop running.
Set up your node configuration
Open the
generate-key.sh
file to generate a new private key and copy itEdit
compose.yml
innodes/validator1
directory and replace0000000000000000000000000000000000000000000000000000000000000000
on line21
with the newly generated key that you have copied
It is very important to NOT USE this private key as an account!
DO NOT import this private key to any wallet.
DO NOT make any transactions using this private key.
Operate the node
To start the node open the run_all.sh
file which is inside the nodes
folder.
To monitor your node open the monitor-node.sh
file in the nodes/validator1
directory. You can check for any errors and see if your node is syncing.
To stop the node open the stop_all.sh
file which is inside the nodes
folder.
Validator Rewards & Penalties
After the Testnet we decided to add an incentive function for Validators. The responsibility of a Validator Node is high, especially when huge amounts are delegated to the Validator. In case of malfunction/shutdown of an active Candidate Validator Node all staked Coins in that Validator Node get punished for disrupting the Network. The punishment is a locking function for 90 days of all staked coins on that Candidate Validator Pool.
This occurs only if your validator node does not produce blocks within the last part of the epoch, indicated as a red area in staking.venidium.io or the last 4332 blocks before the end of the current epoch.
The rewards for validators and delegators are equally split depending on the staked amount. In case that a Validator has staked and a delegator stakes in that same pool but more than 80% of the total pool amount, the rewards become capped at 80% for the delegators while the Validator receives at minimum 20% of the rewards. POSDAO model had a few options and they show this model with a 30% minimum reward, but we believed 20% fit just better (we increased the minimum amount for delegators by 10%, we might adjust this in the future).
Examples
Example 1:
1 Validator = 500k Staked = Validator receives total value of rewards himself.
Example 2:
1 Validator = 500k Staked 1 Delegator = 500k Staked = Validator and Delegator receive rewards equally. (The delegator staked amount is less than 80% of the total pool staked amount.)
Example 3:
1 Validator = 500k Staked 1 Delegator = 3m Staked = Since the amount staked by delegators is more than 80% of the pool, the validator receives the minimum of 20% of the total rewards, the delegator receives the rest.
Example 4:
1 Validator = 500k Staked 1 Delegator A = 800k Staked 1 Delegator B = 2m Staked 1 Delegator C = 1m Staked = Since the amount staked by delegators is more than 80% of the pool, the validator receives 20% of the rewards and the other 80% is split between the Delegators based on their staked amount.
This increases the rewards for Validators and should theoretically incentivize enough to recoup the costs of the Node and reliabilities in the long term. Also this way Users are recommended to not use overcrowded Pools but to use those where their stake would not cross the 80% amount.
Last updated