How to Setup a Klever Node on Testnet

Trusted Node
7 min readApr 20, 2022

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.)

System Requirements

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

SETUP

OS

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

Prerequisites

Install docker

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.

Pull Image

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.

https://docs.klever.finance/klever-blockchain/how-to-run-a-node#network-genesis-config

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.

--

--

Trusted Node

Trusted Node is creating a validator network for proof-of-stake and next-generation blockchains.