Recommended Specification
Linux Instance
OS - Ubuntu 20.04 LTS or higher version
Specifications
Minimum
CPU 4Core
Ram 16GB
Disk SSD 1.5TB
Network: more than 5 MB/s
Suggested
CPU 8Core
Ram 32GB
Disk SSD 1.5TB 8k IOPS, 250 MB/S throughput, read latency <1ms
Network: 10 MB/s at least
Allow Inbound and Outbound
Installation Steps
Create new bkc-node directory
mkdir -p /bkc-node/mainnet
mkdir -p /bkc-node/testnet
Install Geth via binary
sudo curl -L https://bkc-storage.obs.ap-southeast-2.myhuaweicloud.com/geth/v2.1.0/geth-linux-amd64-go1-18-10 -o /usr/bin/geth
sudo chmod +x /usr/bin/geth
Check geth version
/usr/bin/geth version
The result after running commands
Geth
Version: 2.1.0-bkc-stable
Git Commit: 8ee545524b9411c306ebb62bcbfa4536264e20c2
Git Commit Date: 20230802
...
Download chain configuration and genesis file
#config.toml
sudo curl https://raw.githubusercontent.com/bitkub-chain/bkc-node/v2.1.0/mainnet/config.toml --create-dirs -o "/bkc-node/mainnet/config.toml"
#genesis.json
sudo curl https://raw.githubusercontent.com/bitkub-chain/bkc-node/v2.1.0/mainnet/genesis.json --create-dirs -o "/bkc-node/mainnet/genesis.json"
#config.toml
sudo curl https://raw.githubusercontent.com/bitkub-chain/bkc-node/v2.1.0/testnet/config.toml --create-dirs -o "/bkc-node/testnet/config.toml"
#genesis.json
sudo curl https://raw.githubusercontent.com/bitkub-chain/bkc-node/v2.1.0/testnet/genesis.json --create-dirs -o "/bkc-node/testnet/genesis.json"
Initialize a genesis file
#Mainnet
geth --datadir /bkc-node/mainnet/data init /bkc-node/mainnet/genesis.json
#Testnet
geth --datadir /bkc-node/testnet/data init /bkc-node/testnet/genesis.json
Create system service/unit file
sudo nano /etc/systemd/system/geth.service
Furthermore, copy and paste the code below
[Unit]
Description=BKC ValidatorNode
After=network.target auditd.service
Wants=network.target
[Service]
Type=simple
ExecStart=/usr/bin/geth --datadir <DIRECTORY_LOCATION> \
--config <CONFIG_FILE> --syncmode full --txlookuplimit 0
KillMode=process
KillSignal=SIGINT
Restart=on-failure
RestartSec=5s
TimeoutStopSec=60
[Install]
WantedBy=default.target
RequiredBy=swarm.service
Alias=geth.service
Important Configuration
--datadir <DIRECTORY_LOCATION>
The directory to store the chain data e.g.,
mainnet: /bkc-node/mainnet/data
testnet: /bkc-node/testnet/data
--config <CONFIG_FILE>
The location of the toml config file e.g.,
mainnet: /bkc-node/mainnet/config.toml
testnet: /bkc-node/testnet/config.toml
Enable and start the service
sudo systemctl daemon-reload
sudo systemctl enable geth
sudo systemctl start geth