How to Setup a Klever Node on Testnet
As a proof-of-stake and next-generation blockchains validator network, Trusted Node looks forward to becoming a validator of the Klever Blockchain. Klever Finance is a trusted permissioned blockchain network for the emerging decentralized economy, providing a safer, faster and smarter cryptocurrency experience for all users globally to enter and thrive.
We are very glad to participate in their Klever Blockchain Validators Program and contribute efforts to secure the ecosystem. This program consists of four phases, and aims to let validators learn, prepare and earn points in order to prepare for the mainnet launch.
Setting up a Klever Node on Testnet is the key task for Phase One of the Validators Program. The below summarizes the process we went through:
(Note: This article was written on 20 Apr 2022 and the summary here may not be up-to-date. For latest setup information please refer to https://docs.klever.finance/klever-blockchain/how-to-run-a-node.)
To run a node on Klever testnet, the minimum setup are:
- A CPU with 4 cores.
- A RAM with 8GB.
- An SSD with 200 GB
- An internet connection speed of at least 100 Mbps.
- Linux or MacOS
We chose Ubuntu 20.04 for the operating system and host on AWS. You can create one using any cloud provider such as DigitalOcean, Vultr. You can refer to the guide by DigitalOcean https://www.digitalocean.com/community/tutorials/how-to-set-up-an-ubuntu-20-04-server-on-a-digitalocean-droplet
In order to run Klever blockchain, we need to install docker.
The docker can be installed following the instruction on https://docs.docker.com/engine/install/ or use the install script from get.docker.com.
As simple as the following.
First we need to pull the latest klever release using the following command.
Create wallet account
Create a the wallet folder at somewhere you like
Then create a wallet.
You should have the following output. If so, you are successful.
The string following wallet created address = which starts with klv is your Klever wallet address. Make sure you mark it down
Check wallet account and certificate address
You can check the wallet and certificate address by the following commands
It should output the following.
Check account balance
You can also check your wallet balance by
You should only have 0 KLV but this is normal.
Once the wallet is created, we can proceed to run the Klever blockchain
Create directories for storing data
You can choose anywhere you like. We prefer storing data in /data for our easier control across different nodes and chains.
- config — host the genesis files, configuration files and the validator key pair
- db — store the chain data
- logs — store the logs files
Network genesis config
Download the latest config file and extract into your config directory. Noted that the genesis file may change from time to time, please refer to the latest information on the Klever docs.
Generate the validator BLS key
This is the wallet for the validator. The key will be store in the /opt/klever-blockchain. In our case it is refer to /data/.klever/node/config
Make sure to backup the key in /data/.klever/node/config/validatorKey.pem. You will need it when you promote your node to become a validator.
Download snapshot for faster sync up
We can speed up the synchronization process by downloading the latest backup files.
Once you finish the above steps, you are good to go and start the node.
Start the node
There are two ways to run the node in docker, an overlay with more information provided and a background way which only provides logs.
Run as overlay in foreground
If you choose to run this way, make sure you use tmux or screen to host your session. Otherwise it will terminate once you leave the session.
You will have a graphical output like the following screenshot. If the status is “synchronized”, you are in sync to the chain
Run in background
If everything goes fine, you can run the node in the background. Make sure you have some monitoring tools to monitor the node status.
You can do it by adding “ — use-log-view”
To view the logs, you can do it by
Once it is done and your node is in sync, you are ready to promote the node to become a validator.
BECOME A VALIDATOR
To become a validator, you need to promote your node to validator, freeze some KLV for staking, and delegate the frozen KLVs to your validator node.
Promote node to validator
To become the validator on testnet, you will need to request some testing KLV by filling in the form. https://klever.finance/klever-blockchain-validators-program/
The KLV token will be granted to you later when they receive your request. You can check your account balance on the explorer https://testnet.kleverscan.org/
Make sure your node is in sync. Otherwise your node may be jailed.
To do it, you can run the following command.
- BLS_KEY — supply your validator PUBLIC key
- COMMISSION — the commission rate in percentage. E.g., 5 will yield 5%
- MAX_DELEGATION — how much the validator can delegate. We use 12000000
- LOGO — your validator image, supply it with an URL.
- OWNER_ADDR — your wallet address
- REWARD_ADDR — any wallet address, can be as same as the OWNER_ADDR
- NAME — the validator name you would like to show on the explorer
Once you execute the command, you should receive the transaction hash like the following.
You can view the status by using the following command.
Check the “status” field in the response.
If there are any errors, try to seek help on discord, modify your parameters and try again.
Freeze KLV for staking
For testnet, you will receive about 1,600,000 KLV to become the masternode. If there are 10,000,000 KLV staked, it will be eligible for consensus.
You can freeze the KLV by running the following command
You will get the transaction hash like the previous one. The transaction will contain the Bucket ID you need for the next step. You can get it by the tx-by-id command
Once you get the Bucket ID, you can delegate the KLV to your node.
Delegate frozen KLV to node
Now we can delegate the frozen KLV to the node with this command
- DELEGATE_ADDRESS — the wallet address
- BUCKET_ID — the bucketId retrieved earlier from the previous step
That’s all! You can review your validator at https://testnet.kleverscan.org/validators.