Validators perform tasks that keep a blockchain functioning and they are the backbone of any blockchain. Without validators there is not blockchain. So how can validators contribute to a healthy KleverChain ?
Klever developers has made the setup of the KleverChain as easy as possible with very good documentation. In Klever all products are made with in mind that it needs to be simple and easy to undersatnd the product. It is build for all kind of people with different knowledge of crypto and blockchains. The setup of KleverChain node is made that simple to understand so everyone that wants to support the KleverChain can setup his node.
You can setup your node as an observer, or as an validator. This way you can always contribute with the minimum of KLV. Every support in KleverChain is 1 step extra to a healthy and stable network.
But how do you setup your KleverChain node ?
Let me explain this with below instructions. Those instructions are also in the documents of KleverChain that can be found here https://docs.klever.finance/ but in this article with a bot of explanation in human language.
After you have setup your server and docker you can start with setup the validator node. This setup is made very simple by Klever Developers, so you just need to follow all steps and then you will be a KleverChain validator. How awesome is that.
Login on your Ubuntu or Debian server by a terminal command
First you create a wallet folder to create after that a wallet address
mkdir wallet
Then you gonna create a wallet address
sudo docker run -it --rm --user "$(id -u):$(id -g)" \
-v $(pwd)/wallet:/opt/klever-blockchain \
--entrypoint=/usr/local/bin/operator kleverapp/klever-go-testnet:latest "create-wallet"
Then you will see a screen as below were it shows your wallet address of the validator node
Now you have created the wallet address you are ready to setup and install the node. Follow below steps for a successful setup
Create data folders
mkdir -p $(pwd)/node/config $(pwd)/node/db $(pwd)/node/logs
Download and install the latest configuration files of KleverChain
curl -k https://backup.testnet.klever.finance/config.testnet.100008.tar.gz \
| tar -xz -C ./node
Create your BLS KEY as validator
sudo docker run -it --rm -v $(pwd)/node/config:/opt/klever-blockchain \
--user "$(id -u):$(id -g)" \
--entrypoint='' kleverapp/klever-go-testnet:latest keygenerator
Download and extract data backup
curl -k https://backup.testnet.klever.finance/kleverchain.latest.tar.gz \
| tar -xz -C ./node
Copy the BLS KEY to the config folder
cp ~/wallet/validatorKey.pem node/config/
Now you have done the following steps already
- Setup a VPS server (Ubuntu or Debian)
- Created a wallet address
- Installed the node software
- Created a BLS KEY to become a validator
Before we gonna start the node in the terminal it is important that when you don’t use a Screen Session, that your node will be shutdown when you close the terminal. So to prevent this we will start a Screen Session before we move on
screen -S node
Run the node in the screen session
sudo docker run -it — rm \
— user “$(id -u):$(id -g)” \
— name klever-node \
-v $(pwd)/node/config:/opt/klever-blockchain/config/node \
-v $(pwd)/node/db:/opt/klever-blockchain/db \
-v $(pwd)/node/logs:/opt/klever-blockchain/logs \
— network=host \
— entrypoint=/usr/local/bin/validator \
kleverapp/klever-go-testnet:latest \
‘ — log-save’ ‘ — rest-api-interface=0.0.0.0:8080’
When the node is fully synced then you will see below screen
This terminal screen session you can leave open and now you can open a new terminal window like you did with the first step.
Open a second terminal window, login on the server with your credentials. After you have logged in we will start with the setup as node validator.
First you need to fill the wallet with 1.65M TKLV (testnet token) or KLV (mainnet token), depending were you want to test first. We advise to test first on the testnet to get to know the steps and workflow.
For testnet validator purposes, the faucet to register and self-stake will be sent after having registered to the address provided in the application. Once they review your application, 1.65M TKLV (on testnet) will be sent to the address provided. The remaining stake will be provided by the Klever team once the validator node is up and in sync.
Register your node as validator
sudo docker run -it --rm --user "$(id -u):$(id -g)" \
-v $(pwd)/wallet:/opt/klever-blockchain \
--network=host \
--entrypoint=/usr/local/bin/operator \
kleverapp/klever-go-testnet:latest \
--key-file=./walletKey.pem \
--node=https://node.testnet.klever.finance \
validator create \
[OWNER_ADDR] \
--bls=[BLS-KEY] \
--rewards=[REWARDS-ADDRESS] \
--name=[NODE-NAME] \
--logo="[LOGO-LINK-ADDRESS]" \
--commission=[COMMISSION] \
--maxDelegation=[MAX-DELEGATION] \
--uris="github=github.com/klever-io"
The fields […..] are fully replaced by the correct values that are needed. You have those values received by setup the wallet. See the example below.
sudo docker run -it --rm --user "$(id -u):$(id -g)" \
-v $(pwd)/wallet:/opt/klever-blockchain \
--network=host \
--entrypoint=/usr/local/bin/operator \
kleverapp/klever-go-testnet:latest \
--key-file=./walletKey.pem \
--node=https://node.testnet.klever.finance \
validator create \
klv18r40pzdjg6z6wazzhnhculpddd52jztzk2te8p9n7h3juu37vdasnujpqj \
--bls=1405ea2b67c1134d94a0094ec2dee6da7a5b079e5299433fd56bd07f322dd6e59ebaf2f2a63280d521cc076f79b7b80aaa1245e0ee8544e4bd036c834f41ed5d1b41b0acd08564c2b17e58fd6f5dc51ec956d1d42460883e716c446ed4323a92 \
--rewards=klv1q29hnwd9crpztxdshzeew3eg397chp77pscq84x0rv4kcrhaeaaqyfeufu \
--name=KLEVER-NODE-NL \
--logo="https://www.klevernode.nl/wp-content/uploads/2022/02/validators_block.png" \
--commission=5 \
--maxDelegation=12000000 \
--uris="github=github.com/klever-io"
To freeze the minimum of 1.5M TKLV
sudo docker run -it --rm --user "$(id -u):$(id -g)" \
-v $(pwd)/wallet:/opt/klever-blockchain \
--network=host \
--entrypoint=/usr/local/bin/operator \
kleverapp/klever-go-testnet:latest \
--key-file=./walletKey.pem \
--node=https://node.testnet.klever.finance account freeze 15000000
Delegate the frozen 1.5M TKLV to the node
sudo docker run -it --rm --user "$(id -u):$(id -g)" \
-v $(pwd)/wallet:/opt/klever-blockchain \
--network=host \
--entrypoint=/usr/local/bin/operator \
kleverapp/klever-go-testnet:latest \
--key-file=./walletKey.pem \
--node=https://node.testnet.klever.finance \
account delegate \
[DELEGATE TO ADDRESS] \
--bucketID=[BUCKET-ID]
The fields […..] are fully replaced by the correct values that are needed. You have those values received by freezing the 1.5M TKLV. The BUCKET_ID you can find in the freeze transaction hash. Then it should look like below example:
sudo docker run -it --rm --user "$(id -u):$(id -g)" \
-v $(pwd)/wallet:/opt/klever-blockchain \
--network=host \
--entrypoint=/usr/local/bin/operator \
kleverapp/klever-go-testnet:latest \
--key-file=./walletKey.pem \
--node=https://node.testnet.klever.finance \
account delegate \
klv18r40pzdjg6z6wazzhnhculpddd52jztzk2te8p9n7h3juu37vdasnujpqj \
--bucketID=e05e3e885be8182ea25df3bd3a4f7edf2b67092c4d45eebb7fa63d3700c6e789
Now you have fully setup the node as a validator. To use all these new configs you need to restart your node. As you remember we have the other terminal screen still open with the Screen Session Node. In that screen terminal you gonna stop the node by pressing CTRL - C
Then you will see that the node is stopped and you will see the command line again. Then you can start the node again by using this same code as before or by pressing ARROW UP
to receive the last used command that should be the same.
sudo docker run -it — rm \
— user “$(id -u):$(id -g)” \
— name klever-node \
-v $(pwd)/node/config:/opt/klever-blockchain/config/node \
-v $(pwd)/node/db:/opt/klever-blockchain/db \
-v $(pwd)/node/logs:/opt/klever-blockchain/logs \
— network=host \
— entrypoint=/usr/local/bin/validator \
kleverapp/klever-go-testnet:latest \
‘ — log-save’ ‘ — rest-api-interface=0.0.0.0:8080’
As all is succeeded again you will see below screen. Important to understand that your are now an Observer with the 1.5M TKLV staked. To become a full Node Validator you will need a minimum of 8.5M TKLV delegated to your node what gives a result of 10M TKLV delegated to your node. This way you will be Validator – Eligible.
You will become Validator – Elected when the system has randomly chosen your node as a block validator.