Mainnet
Blockx
Installation Guide
CLI Command
Public Endpoint
Statesync
Snapshot
Explorer
Node Maps
Installation Guide
Installation Guide
CLI Command
Public Endpoint
Statesync
Snapshot
Explorer
Node Maps
How To Install Full Node Blockx Network Mainnet
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_100-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
git clone https://github.com/BlockXLabs/BlockX-Genesis-Mainnet1.git
cd BlockX-Genesis-Mainnet1
make install
Config app
blockxd config chain-id $BLOCKX_CHAIN_ID
Init app
blockxd init $NODENAME --chain-id $BLOCKX_CHAIN_ID
Download configuration
cd $HOME
curl -Ls https://snapshot.konsortech.xyz/blockx/genesis.json > $HOME/.blockxd/config/genesis.json
curl -Ls https://snapshot.konsortech.xyz/blockx/addrbook.json > $HOME/.blockxd/config/addrbook.json
Set seeds and peers
sed -i 's/seeds = \"\"/seeds = \"91c24aac8da5df96435b2af2984a6a5b5b00b54e@mainnet-seed.konsortech.xyz:39156\"/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
CLI command
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
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://mainnet-blockx-rpc.konsortech.xyz
EVM RPC
Network Name : Blockx mainnet
RPC URL : https://mainnet-blockx-evm.konsortech.xyz
Chain ID : 100
Curreny Symbol : BCX
API
https://mainnet-blockx-api.konsortech.xyz
gRPC
mainnet-blockx.konsortech.xyz:39656
Peers and Seeds
Peers
bc152258668e673a3b63f964fa75afdd478078c7@mainnet-blockx.konsortech.xyz:39656
Seeds
91c24aac8da5df96435b2af2984a6a5b5b00b54e@mainnet-seed.konsortech.xyz:39156
Genesis & Address Book
Address Book
https://snapshot3.konsortech.xyz/humans/addrbook.json
Genesis
https://snapshot3.konsortech.xyz/humans/genesis.json
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://mainnet-blockx-rpc.konsortech.xyz:443"
LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height); \
BLOCK_HEIGHT=$((LATEST_HEIGHT - 1000)); \
TRUST_HASH=$(curl -s "$SNAP_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash)
echo $LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH
peers="bc152258668e673a3b63f964fa75afdd478078c7@mainnet-blockx.konsortech.xyz:39656"
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
Snapshot
sudo systemctl stop blockxd
cp $HOME/.blockxd/data/priv_validator_state.json $HOME/.blockxd/priv_validator_state.json.backup
rm -rf $HOME/.blockxd/data
SNAP_NAME=$(curl -s https://snapshot.konsortech.xyz/blockx/ | egrep -o ">blockx-snapshot.*\.tar.lz4" | tr -d ">")
curl https://snapshot.konsortech.xyz/blockx/${SNAP_NAME} | lz4 -dc - | tar -xf - -C $HOME/.blockxd
mv $HOME/.blockxd/priv_validator_state.json.backup $HOME/.blockxd/data/priv_validator_state.json
sudo systemctl restart blockxd && journalctl -u blockxd -f --no-hostname -o cat
Cosmos Explorer
https://mainnet-explorer.konsortech.xyz/blockx
EVM Explorer
https://explorer-blockx.konsortech.xyz/