Run Validator Node

Fresh setup from 0


The quickest way to learn about Bitkub Chain is to run a node and interact with the network.

In this tutorial, we will:

  • Install and run a Validator node.

Infrastructure Requirement:

1. Linux Instance

  • OS - Ubuntu 20.04 LTS or higher version

2. Specifications


CPU 4Core
Ram 16GB
Disk 512GB
Network: more than 5 MB/s


CPU 8Core
Ram 32GB
Disk SSD 512GB 8k IOPS, 250 MB/S throughput, read latency <1ms
Network: 50 MB/s at least

Allow Inbound and Outbound

  • Protocol - TCP & UDP

  • Port - 30303

  • Source IP -

Installation Steps

Create directory and Download Geth

# Create directory
$ mkdir -p /bkc-node/mainnet

# Download Geth
$ sudo curl -L -o /usr/bin/geth
$ sudo chmod +x /usr/bin/geth

Check geth version

geth version

The result after running commands

Version: 2.1.0-bkc-stable
Git Commit: 8ee545524b9411c306ebb62bcbfa4536264e20c2
Git Commit Date: 20230802

Download chain configuration and genesis file

# config.toml
$ sudo curl --create-dirs -o "/bkc-node/mainnet/config.toml"

# genesis.json
$ sudo curl --create-dirs -o "/bkc-node/mainnet/genesis.json"

Generating a validator account

# Generate account password
$ echo "<<YourPassword>>" > ./bkc-node/mainnet/data/password.sec

# Generate new account
$ ./geth account new  --datadir ./bkc-node/mainnet/data --password ./bkc-node/mainnet/data/password.sec

# Run
$ ./geth --datadir ./bkc-node/mainnet/data --config ./config.toml \
  --syncmode snap \
  --password ./bkc-node/mainnet/data/password.sec \
  --mine --unlock 0x<<YourAccountAddress>> \

Initialize a genesis file

# Mainnet
geth --datadir /bkc-node/mainnet/data init /bkc-node/mainnet/genesis.json

Create system service/unit file

sudo nano /etc/systemd/system/geth.service

Furthermore, copy and paste the code below

Description=BKC ValidatorNode auditd.service

ExecStart=/usr/bin/geth --datadir <DIRECTORY_LOCATION> \
    --config <CONFIG_FILE> --syncmode snap \
    --unlock <ADDRESS> --mine --allow-insecure-unlock --password <PASSWORD_FILE> 


Important Configuration for PoS --mine

Enable mining


The directory to store the chain data e.g., mainnet: /bkc-node/mainnet/data

--unlock <YourAccountAddress>

an Address that would be unlocked and associated with this node.

--password <YourPasswordFilePath>

The location of the file contains the unlock account password

--config <CONFIG_FILE>

The location of the toml config file e.g.,

mainnet: /bkc-node/mainnet/config.toml

Enable and start the service

sudo systemctl daemon-reload
sudo systemctl enable geth
sudo systemctl start geth

Hint: You can choose whether to be a validator of Solo Node or Pool Node depending on the amount of Bitkub Coin (KUB) you have. Your reward will be based on the amount of KUB staked on the Bitkub Chain Network.

Next Step: Validator Staking

After you have successfully installed your node configuration on your system. Proceed to the validator staking.

Last updated