Testnet

Blockx

Installation Guide
CLI Command
Public Endpoint
Statesync
Explorers
Node Maps
Installation Guide
Installation Guide
CLI Command
Public Endpoint
Statesync
Explorers
Node Maps

How To Install Full Node Blockx Network Testnet

Setting up vars

Your Nodename (validator) that will shows in explorer

NODENAME=<Your_Nodename_Moniker>

Save variables to system

echo "export NODENAME=$NODENAME" >> $HOME/.bash_profile
if [ ! $WALLET ]; then
    echo "export WALLET=wallet" >> $HOME/.bash_profile
fi
echo "export BLOCKX_CHAIN_ID=blockx_50-1" >> $HOME/.bash_profile
source $HOME/.bash_profile

Update packages

sudo apt update && sudo apt upgrade -y

Install dependencies

sudo apt install curl build-essential git wget jq make gcc tmux net-tools ccze -y

Install go

if ! [ -x "$(command -v go)" ]; then
  ver="1.19.4"
  cd $HOME
  wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz"
  sudo rm -rf /usr/local/go
  sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz"
  rm "go$ver.linux-amd64.tar.gz"
  echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> ~/.bash_profile
  source ~/.bash_profile
fi

Download and build binaries

cd $HOME
curl -LO https://github.com/defi-ventures/BCX-atlantis-testnet-2-node-compiled/releases/download/assets/blockxd
chmod +x blockxd
mv blockxd $HOME/go/bin/blockxd

Config app

blockxd config chain-id $BLOCKX_CHAIN_ID
blockxd config keyring-backend test

Init app

blockxd init $NODENAME --chain-id $BLOCKX_CHAIN_ID

Download configuration

cd $HOME
curl -Ls https://raw.githubusercontent.com/konsortech/Node/main/Testnet/Blockx/genesis.json > $HOME/.blockxd/config/genesis.json
curl -Ls https://raw.githubusercontent.com/konsortech/Node/main/Testnet/Blockx/addrbook.json > $HOME/.blockxd/config/addrbook.json

Set seeds and peers

sed -i 's/seeds = \"\"/seeds = \"3bdc1c076399ee1090b1b7efa0474ce1a1cb191a@146.190.153.165:26656,49a5a62543f5fec60db42b00d9ebe192c3185e15@146.190.157.123:26656\"/g' $HOME/.blockxd/config/config.toml

Disable indexing

indexer="null"
sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.blockxd/config/config.toml

Config pruning

pruning="custom"
pruning_keep_recent="100"
pruning_keep_every="0"
pruning_interval="10"
sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.blockxd/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.blockxd/config/app.toml
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.blockxd/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.blockxd/config/app.toml

Set minimum gas price

sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"0abcx\"|" $HOME/.blockxd/config/app.toml

Create service

sudo tee /etc/systemd/system/blockxd.service > /dev/null <<EOF
[Unit]
Description=BlockX
After=network-online.target

[Service]
User=$USER
ExecStart=$(which blockxd) start --home /root/.blockxd
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

Register and start service

sudo systemctl daemon-reload
sudo systemctl enable blockxd
sudo systemctl restart blockxd && sudo journalctl -u blockxd -f -o cat

Guidence for create validator

Create wallet

To create new wallet you can use command below. Don’t forget to save the mnemonic

blockxd keys add $WALLET

To recover your wallet using seed phrase

blockxd keys add $WALLET --recover

Show your wallet list

blockxd keys list

Save wallet info

Add wallet and validator address into variables

BLOCKX_WALLET_ADDRESS=$(blockxd keys show $WALLET -a)
BLOCKX_VALOPER_ADDRESS=$(blockxd keys show $WALLET --bech val -a)
echo 'export BLOCKX_WALLET_ADDRESS='${BLOCKX_WALLET_ADDRESS} >> $HOME/.bash_profile
echo 'export BLOCKX_VALOPER_ADDRESS='${BLOCKX_VALOPER_ADDRESS} >> $HOME/.bash_profile
source $HOME/.bash_profile

Fund your wallet

In order to create validator first you need to fund your wallet with discord faucet.

Go to https://faucet.blockxnet.com/ and filled blockx address

Create validator

check your wallet balance:

blockxd query bank balances $BLOCKX_WALLET_ADDRESS

To create your validator run command below

blockxd tx staking create-validator \
  --amount 1000000abcx \
  --from $WALLET \
  --commission-max-change-rate "0.01" \
  --commission-max-rate "0.2" \
  --commission-rate "0.07" \
  --min-self-delegation "1" \
  --pubkey  $(blockxd tendermint show-validator) \
  --moniker $NODENAME \
  --chain-id $BLOCKX_CHAIN_ID\
  --gas auto \
  --fees=2000abcx 

Check your validator key

[[ $(blockxd q staking validator $BLOCKX_VALOPER_ADDRESS -oj | jq -r .consensus_pubkey.key) = $(blockxd status | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "\n\e[1m\e[32mTrue\e[0m\n" || echo -e "\n\e[1m\e[31mFalse\e[0m\n"

Get list of validators

blockxd q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " \t " + .description.moniker' | sort -gr | nl

Usefull commands

Service management

Check logs

journalctl -fu blockxd -o cat

Start service

sudo systemctl start blockxd

Stop service

sudo systemctl stop blockxd

Restart service

sudo systemctl restart blockxd

Node info

Synchronization info

blockxd status 2>&1 | jq .SyncInfo

Validator info

blockxd status 2>&1 | jq .ValidatorInfo

Node info

blockxd status 2>&1 | jq .NodeInfo

Show node id

blockxd tendermint show-node-id

Wallet operations

List of wallets

blockxd keys list

Recover wallet

blockxd keys add $WALLET --recover

Delete wallet

blockxd keys delete $WALLET

Get wallet balance

blockxd query bank balances $BLOCKX_WALLET_ADDRESS

Transfer funds

blockxd tx bank send $BLOCKX_WALLET_ADDRESS <TO_BLOCKX_WALLET_ADDRESS> 1000000abcx

Voting

blockxd tx gov vote 1 yes --from $WALLET --chain-id=$BLOCKX_CHAIN_ID

Staking, Delegation and Rewards

Delegate stake

blockxd tx staking delegate $BLOCKX_VALOPER_ADDRESS 1000000abcx --from=$WALLET --chain-id=$BLOCKX_CHAIN_ID --gas=auto

Redelegate stake from validator to another validator

blockxd tx staking redelegate <srcValidatorAddress> <destValidatorAddress> 1000000abcx --from=$WALLET --chain-id=$BLOCKX_CHAIN_ID --gas=auto

Withdraw all rewards

blockxd tx distribution withdraw-all-rewards --from=$WALLET --chain-id=$BLOCKX_CHAIN_ID --gas=auto

Withdraw rewards with commision

blockxd tx distribution withdraw-rewards $BLOCKX_VALOPER_ADDRESS --from=$WALLET --commission --chain-id=$BLOCKX_CHAIN_ID

Validator management

Edit validator

blockxd tx staking edit-validator \
  --moniker=$NODENAME \
  --identity=<your_keybase_id> \
  --website="<your_website>" \
  --details="<your_validator_description>" \
  --chain-id=$BLOCKX_CHAIN_ID \
  --from=$WALLET

Unjail validator

blockxd tx slashing unjail \
  --broadcast-mode=block \
  --from=$WALLET \
  --chain-id=$BLOCKX_CHAIN_ID \
  --gas=auto

Public Endpoint

RPC

https://testnet-blockx-rpc.konsortech.xyz

EVM RPC

Network Name    : Blockx Testnet
RPC URL         : https://testnet-blockx-evm.konsortech.xyz
Chain ID        : 50
Curreny Symbol  : BCX

API

https://testnet-blockx-api.konsortech.xyz

gRPC

testnet-blockx.konsortech.xyz:31656

Peers and Seeds

Peers

f0f63a19eb749e368cb02a541b7ef53689d8a1f9@testnet-blockx.konsortech.xyz:31656

Seeds

b8fa49c7c77a47a49dc162af7fcbd5963d367f6f@testnet-seed.konsortech.xyz:39156

State Sync

sudo systemctl stop blockxd

cp $HOME/.blockxd/data/priv_validator_state.json $HOME/.blockxd/priv_validator_state.json.backup
blockxd tendermint unsafe-reset-all --home $HOME/.blockxd --keep-addr-book

SNAP_RPC="https://testnet-blockx-rpc.konsortech.xyz:443"

LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height); \
BLOCK_HEIGHT=$((LATEST_HEIGHT - 2000)); \
TRUST_HASH=$(curl -s "$SNAP_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash)

echo $LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH

peers="f0f63a19eb749e368cb02a541b7ef53689d8a1f9@testnet-blockx.konsortech.xyz:38656"
sed -i 's|^persistent_peers *=.*|persistent_peers = "'$peers'"|' $HOME/.blockxd/config/config.toml

sed -i -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \
s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\"$SNAP_RPC,$SNAP_RPC\"| ; \
s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \
s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\"$TRUST_HASH\"|" $HOME/.blockxd/config/config.toml

mv $HOME/.blockxd/priv_validator_state.json.backup $HOME/.blockxd/data/priv_validator_state.json

sudo systemctl restart blockxd
sudo journalctl -u blockxd -f --no-hostname -o cat
Embed Iframe

Blockx Testnet Decentralization Maps