Mainnet

Haqq

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 haqqd 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 HAQQ_CHAIN_ID=haqq_11235-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.20.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/haqq-network/haqq.git
cd haqq
git checkout v1.8.5
make install

Config app

haqqd config chain-id $HAQQ_CHAIN_ID

Init app

haqqd init $NODENAME --chain-id $HAQQ_CHAIN_ID

Download configuration

cd $HOME
curl -o ~/.haqqd/config/genesis.json https://snapshot.konsortech.xyz/mainnet/haqq/genesis.json
curl -o ~/.haqqd/config/addrbook.toml https://snapshot.konsortech.xyz/mainnet/haqq/addrbook.json

Set seeds and peers

SEEDS="c839460bb2eac533e7e402f03065728df98f4e01@mainnet-seed.konsortech.xyz:11165"
PEERS="28498a11b7e3bdf7e63fb6c57b07cfcbe89d6a20@mainnet-haqq.konsortech.xyz:15656"
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.haqqd/config/config.toml

Disable indexing

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

Set minimum gas price

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

Create service

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

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

[Install]
WantedBy=multi-user.target
EOF

Register and start service

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

echo "export WALLET=wallet" >> $HOME/.bash_profile
source $HOME/.bash_profile

haqqd keys add $WALLET

To recover your wallet using seed phrase

haqqd keys add $WALLET --recover

Show your wallet list

haqqd keys list

Save wallet info

Add wallet and validator address into variables

HAQQ_WALLET_ADDRESS=$(haqqd keys show $WALLET -a)
HAQQ_VALOPER_ADDRESS=$(haqqd keys show $WALLET --bech val -a)
echo 'export HAQQ_WALLET_ADDRESS='${HAQQ_WALLET_ADDRESS} >> $HOME/.bash_profile
echo 'export HAQQ_VALOPER_ADDRESS='${HAQQ_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.

N/A

Create validator

check your wallet balance:

haqqd query bank balances $HAQQ_WALLET_ADDRESS

To create your validator run command below

haqqd tx staking create-validator \
  --amount 100000aISLM \
  --from $WALLET \
  --commission-max-change-rate "0.01" \
  --commission-max-rate "0.2" \
  --commission-rate "0.07" \
  --min-self-delegation "1" \
  --pubkey  $(haqqd tendermint show-validator) \
  --moniker $NODENAME \
  --chain-id $HAQQ_CHAIN_ID

Check your validator key

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

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

Start service

sudo systemctl start haqqd

Stop service

sudo systemctl stop haqqd

Restart service

sudo systemctl restart haqqd

Node info

Synchronization info

haqqd status 2>&1 | jq .SyncInfo

Validator info

haqqd status 2>&1 | jq .ValidatorInfo

Node info

haqqd status 2>&1 | jq .NodeInfo

Show node id

haqqd tendermint show-node-id

Wallet operations

List of wallets

haqqd keys list

Recover wallet

haqqd keys add $WALLET --recover

Delete wallet

haqqd keys delete $WALLET

Get wallet balance

haqqd query bank balances $HAQQ_WALLET_ADDRESS

Transfer funds

haqqd tx bank send $HAQQ_WALLET_ADDRESS <TO_HAQQ_WALLET_ADDRESS> 100000aISLM

Voting

haqqd tx gov vote 1 yes --from $WALLET --chain-id=$HAQQ_CHAIN_ID

Staking, Delegation and Rewards

Delegate stake

haqqd tx staking delegate $HAQQ_VALOPER_ADDRESS 100000aISLM --from=$WALLET --chain-id=$HAQQ_CHAIN_ID --gas=auto

Redelegate stake from validator to another validator

haqqd tx staking redelegate <srcValidatorAddress> <destValidatorAddress> 100000aISLM --from=$WALLET --chain-id=$HAQQ_CHAIN_ID --gas=auto

Withdraw all rewards

haqqd tx distribution withdraw-all-rewards --from=$WALLET --chain-id=$HAQQ_CHAIN_ID --gas=auto

Withdraw rewards with commision

haqqd tx distribution withdraw-rewards $HAQQ_VALOPER_ADDRESS --from=$WALLET --commission --chain-id=$HAQQ_CHAIN_ID

Validator management

Edit validator

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

Unjail validator

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

Public Endpoint

RPC

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

API

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

gRPC

mainnet-haqq.konsortech.xyz:15090

JSON RPC (EVM)

https://mainnet-haqq-evm.konsortech.xyz

Peers

28498a11b7e3bdf7e63fb6c57b07cfcbe89d6a2@mainnet-haqq.konsortech.xyz:15656

Seed

c839460bb2eac533e7e402f03065728df98f4e01@mainnet-seed.konsortech.xyz:11165

Addrbook

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

Genesis File

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

State Sync

sudo systemctl stop haqqd

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

SNAP_RPC="https://mainnet-haqq-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="28498a11b7e3bdf7e63fb6c57b07cfcbe89d6a20@mainnet-haqq.konsortech.xyz:15656"
sed -i 's|^persistent_peers *=.*|persistent_peers = "'$peers'"|' $HOME/.haqqd/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/.haqqd/config/config.toml

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

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

Snapshot

sudo systemctl stop haqqd
cp $HOME/.haqqd/data/priv_validator_state.json $HOME/.haqqd/priv_validator_state.json.backup
rm -rf $HOME/.haqqd/data

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

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

Haqq Mainnet Decentralization Maps