Mainnet

Bitway

Installation Guide
Node CLI
Public Endpoint
State Sync
Snapshot
Custom Explorers
Decentralization Maps
Installation Guide
Installation Guide
Node CLI
Public Endpoint
State Sync
Snapshot
Custom Explorers
Decentralization Maps

How To Install Full Node Bitway 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 BITWAY_CHAIN_ID=bitway-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.21.2"
  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
rm -rf bitway
git clone https://github.com/bitwaylabs/bitway.git
cd bitway
git checkout v2.0.0
make install

Init app

bitwayd init $NODENAME --chain-id $BITWAY_CHAIN_ID

Download configuration

wget https://snapshot.konsortech.xyz/mainnet/bitway/genesis.json -O ~/.bitway/config/genesis.json
wget https://snapshot.konsortech.xyz/mainnet/bitway/addrbook.json -O ~/.bitway/config/addrbook.json

Set the minimum gas price and Peers, Filter peers/ MaxPeers

SEEDS="81b580dfee15f01e32f015c88029a8061fec223b"@mainnet-seed.konsortech.xyz:13265"
PEERS="e4a196a4dc42442d631c4eb882fda46cf66749ba@mainnet-bitway.konsortech.xyz:15656"
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" ~/.bitway/config/config.toml
sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.0006ubtw,0.000001sat\"/" ~/.bitway/config/app.toml
sed -i.bak -e "s/^seeds =.*/seeds = \"$seeds\"/" ~/.bitway/config/config.toml

Disable indexing

indexer="null"
sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" ~/.bitway/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\"/" ~/.bitway/config/app.toml && \
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" ~/.bitway/config/app.toml && \
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" ~/.bitway/config/app.toml && \
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" ~/.bitway/config/app.toml

Create service

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

[Service]
User=$USER
ExecStart=$(which bitwayd) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

Register and start service

sudo systemctl daemon-reload
sudo systemctl enable bitwayd
sudo systemctl restart bitwayd && sudo journalctl -u bitwayd -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

bitwayd keys add $WALLET

To recover your wallet using seed phrase

bitwayd keys add $WALLET --recover

Show your wallet list

bitwayd keys list

Save wallet info

Add wallet and validator address into variables

BITWAY_WALLET_ADDRESS=$(bitwayd keys show $WALLET -a)
BITWAY_VALOPER_ADDRESS=$(bitwayd keys show $WALLET --bech val -a)
echo 'export BITWAY_WALLET_ADDRESS='${BITWAY_WALLET_ADDRESS} >> $HOME/.bash_profile
echo 'export BITWAY_VALOPER_ADDRESS='${BITWAY_VALOPER_ADDRESS} >> $HOME/.bash_profile
source $HOME/.bash_profile

Create validator

check your wallet balance:

bitwayd query bank balances $BITWAY_WALLET_ADDRESS

To create your validator run command below

bitwayd tx staking create-validator \
--amount 1000000ubtw \
--from $WALLET \
--commission-rate 0.1 \
--commission-max-rate 0.2 \
--commission-max-change-rate 0.01 \
--min-self-delegation 1 \
--pubkey $(bitwayd tendermint show-validator) \
--moniker "$NODENAME" \
--identity "" \
--details "your_detail" \
--chain-id bitway-1 \
--fees 1000ubtw \
-y 
bitwayd tx staking create-validator ~/.bitway/config/validator.json \
--from wallet \
--chain-id bitway-1 \
--fees 1000ubtw

Check your validator key

[[ $(bitwayd q staking validator $BITWAY_VALOPER_ADDRESS -oj | jq -r .consensus_pubkey.key) = $(bitwayd 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

bitwayd 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 bitwayd -o cat

Start service

sudo systemctl start bitwayd

Stop service

sudo systemctl stop bitwayd

Restart service

sudo systemctl restart bitwayd

Node info

Synchronization info

bitwayd status 2>&1 | jq .SyncInfo

Validator info

bitwayd status 2>&1 | jq .ValidatorInfo

Node info

bitwayd status 2>&1 | jq .NodeInfo

Show node id

bitwayd tendermint show-node-id

Wallet operations

List of wallets

bitwayd keys list

Recover wallet

bitwayd keys add $WALLET --recover

Delete wallet

bitwayd keys delete $WALLET

Get wallet balance

bitwayd query bank balances $BITWAY_WALLET_ADDRESS

Transfer funds

bitwayd tx bank send $BITWAY_WALLET_ADDRESS <TO_BITWAY_WALLET_ADDRESS> 1000000ubtw

Voting

bitwayd tx gov vote 1 yes --from $WALLET --chain-id=$BITWAY_CHAIN_ID

Staking, Delegation and Rewards

Delegate stake

bitwayd tx staking delegate $BITWAY_VALOPER_ADDRESS 1000000ubtw --from=$WALLET --chain-id=$BITWAY_CHAIN_ID --fees 1000ubtw

Redelegate stake from validator to another validator

bitwayd tx staking redelegate <srcValidatorAddress> <destValidatorAddress> 1000000ubtw --from=$WALLET --chain-id=$BITWAY_CHAIN_ID --fees 1000ubtw

Withdraw all rewards

bitwayd tx distribution withdraw-all-rewards --from=$WALLET --chain-id=$BITWAY_CHAIN_ID --fees 1000ubtw

Withdraw rewards with commision

bitwayd tx distribution withdraw-rewards $BITWAY_VALOPER_ADDRESS --from=$WALLET --commission --chain-id=$BITWAY_CHAIN_ID

Validator management

Edit validator

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

Unjail validator

bitwayd tx slashing unjail \
  --broadcast-mode=block \
  --from=$WALLET \
  --chain-id=$BITWAY_CHAIN_ID \
  --fees 1000ubtw

Public Endpoint

RPC

https://mainnet-bitway-rpc.konsortech.xyz

API

https://mainnet-bitway-api.konsortech.xyz

gRPC

mainnet-bitway.konsortech.xyz:18090

Peers and Seeds

Peers

e4a196a4dc42442d631c4eb882fda46cf66749ba@mainnet-bitway.konsortech.xyz:15656

Seeds

81b580dfee15f01e32f015c88029a8061fec223b"@mainnet-seed.konsortech.xyz:13265

Genesis & Address Book

Address Book

https://snapshot.konsortech.xyz/mainnet/bitway/addrbook.json

Genesis

https://snapshot.konsortech.xyz/mainnet/bitway/genesis.json

State Sync

sudo systemctl stop bitwayd

cp ~/.bitway/data/priv_validator_state.json ~/.bitway/priv_validator_state.json.backup
bitwayd tendermint unsafe-reset-all --home ~/.bitway --keep-addr-book

SNAP_RPC="https://mainnet-bitway-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="e4a196a4dc42442d631c4eb882fda46cf66749ba@mainnet-bitway.konsortech.xyz:15656"
sed -i 's|^persistent_peers *=.*|persistent_peers = "'$peers'"|' ~/.bitway/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\"|" ~/.bitway/config/config.toml

mv ~/.bitway/priv_validator_state.json.backup ~/.bitway/data/priv_validator_state.json

sudo systemctl restart bitwayd
sudo journalctl -u bitwayd -f --no-hostname -o cat

Snapshot

sudo systemctl stop bitwayd
cp ~/.bitway/data/priv_validator_state.json ~/.bitway/priv_validator_state.json.backup
rm -rf ~/.bitway/data

SNAP_NAME=$(curl -s https://snapshot.konsortech.xyz/mainnet/bitway/ | egrep -o ">bitway-snapshot.*\.tar.lz4" | tr -d ">")
curl https://snapshot.konsortech.xyz/mainnet/bitway/${SNAP_NAME} | lz4 -dc - | tar -xf - -C ~/.bitway
mv ~/.bitway/priv_validator_state.json.backup  ~/.bitway/data/priv_validator_state.json

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

Bitway Mainnet Decentralization Maps