Mainnet
Humans AI
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 Humans 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 HUMANS_CHAIN_ID=humans_1089-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.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
git clone https://github.com/humansdotai/humans
cd humans && git checkout tags/v1.0.0
make install
Init app
humansd init $NODENAME --chain-id $HUMANS_CHAIN_ID
Download configuration
wget https://raw.githubusercontent.com/humansdotai/mainnets/main/mainnet/1/genesis_1089-1.json -O $HOME/.humansd/config/genesis.json
Set the minimum gas price and Peers, Filter peers/ MaxPeers
SEEDS="6408a62a32415dcf1c863cef7fcae987bad23b7c@mainnet-seed.konsortech.xyz:40165"
PEERS=""
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.humansd/config/config.toml
sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0aheart\"/;" ~/.humansd/config/app.toml
sed -i -e "s/^filter_peers *=.*/filter_peers = \"true\"/" $HOME/.humansd/config/config.toml
external_address=$(wget -qO- eth0.me)
sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:26656\"/" $HOME/.humansd/config/config.toml
sed -i.bak -e "s/^seeds =.*/seeds = \"$seeds\"/" $HOME/.humansd/config/config.toml
sed -i 's/max_num_inbound_peers =.*/max_num_inbound_peers = 100/g' $HOME/.humansd/config/config.toml
sed -i 's/max_num_outbound_peers =.*/max_num_outbound_peers = 100/g' $HOME/.humansd/config/config.toml
Disable indexing
indexer="null"
sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.humansd/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\"/" ~/.humansd/config/app.toml && \
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" ~/.humansd/config/app.toml && \
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" ~/.humansd/config/app.toml && \
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" ~/.humansd/config/app.toml
Create service
sudo tee /etc/systemd/system/humansd.service > /dev/null <<EOF
[Unit]
Description=humans
After=network-online.target
[Service]
User=$USER
ExecStart=$(which humansd) 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 humansd
sudo systemctl restart humansd && sudo journalctl -u humansd -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
humansd keys add $WALLET
To recover your wallet using seed phrase
humansd keys add $WALLET --recover
Show your wallet list
humansd keys list
Save wallet info
Add wallet and validator address into variables
HUMANS_WALLET_ADDRESS=$(humansd keys show $WALLET -a)
HUMANS_VALOPER_ADDRESS=$(humansd keys show $WALLET --bech val -a)
echo 'export HUMANS_WALLET_ADDRESS='${HUMANS_WALLET_ADDRESS} >> $HOME/.bash_profile
echo 'export HUMANS_VALOPER_ADDRESS='${HUMANS_VALOPER_ADDRESS} >> $HOME/.bash_profile
source $HOME/.bash_profile
Fund your wallet
Buy on Kucoin
Create validator
check your wallet balance:
humansd query bank balances $HUMANS_WALLET_ADDRESS
To create your validator run command below
humansd tx staking create-validator \
--amount 1000000aheart \
--from $WALLET \
--commission-max-change-rate "0.01" \
--commission-max-rate "0.2" \
--commission-rate "0.1" \
--min-self-delegation "1" \
--pubkey $(humansd tendermint show-validator) \
--moniker $NODENAME \
--chain-id $HUMANS_CHAIN_ID
--gas-prices=20000000000aheart \
--gas-adjustment=1.5 \
--gas=auto \
Check your validator key
[[ $(humansd q staking validator $HUMANS_VALOPER_ADDRESS -oj | jq -r .consensus_pubkey.key) = $(humansd 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
humansd 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 humansd -o cat
Start service
sudo systemctl start humansd
Stop service
sudo systemctl stop humansd
Restart service
sudo systemctl restart humansd
Node info
Synchronization info
humansd status 2>&1 | jq .SyncInfo
Validator info
humansd status 2>&1 | jq .ValidatorInfo
Node info
humansd status 2>&1 | jq .NodeInfo
Show node id
humansd tendermint show-node-id
Wallet operations
List of wallets
humansd keys list
Recover wallet
humansd keys add $WALLET --recover
Delete wallet
humansd keys delete $WALLET
Get wallet balance
humansd query bank balances $HUMANS_WALLET_ADDRESS
Transfer funds
humansd tx bank send $HUMANS_WALLET_ADDRESS <TO_HUMANS_WALLET_ADDRESS> 1000000aheart
Voting
humansd tx gov vote 1 yes --from $WALLET --chain-id=$HUMANS_CHAIN_ID
Staking, Delegation and Rewards
Delegate stake
humansd tx staking delegate $HUMANS_VALOPER_ADDRESS 1000000aheart --from=$WALLET --chain-id=$HUMANS_CHAIN_ID --gas=auto
Redelegate stake from validator to another validator
humansd tx staking redelegate <srcValidatorAddress> <destValidatorAddress> 1000000aheart --from=$WALLET --chain-id=$HUMANS_CHAIN_ID --gas=auto
Withdraw all rewards
humansd tx distribution withdraw-all-rewards --from=$WALLET --chain-id=$HUMANS_CHAIN_ID --gas=auto
Withdraw rewards with commision
humansd tx distribution withdraw-rewards $HUMANS_VALOPER_ADDRESS --from=$WALLET --commission --chain-id=$HUMANS_CHAIN_ID
Validator management
Edit validator
humansd tx staking edit-validator \
--moniker=$NODENAME \
--identity=<your_keybase_id> \
--website="<your_website>" \
--details="<your_validator_description>" \
--chain-id=$HUMANS_CHAIN_ID \
--from=$WALLET
Unjail validator
humansd tx slashing unjail \
--broadcast-mode=block \
--from=$WALLET \
--chain-id=$HUMANS_CHAIN_ID \
--gas=auto
Public Endpoint
RPC
https://mainnet-humans-rpc.konsortech.xyz
EVM RPC
Network Name : Humans Mainnet
RPC URL : https://mainnet-humans-evm.konsortech.xyz
Chain ID : 1089
Curreny Symbol : HEART
API
https://mainnet-humans-api.konsortech.xyz
gRPC
mainnet-humans.konsortech.xyz:40090
Peers and Seeds
Peers
2f8a0bf63e23606dc85bdd11afbf34e68a9f3b74@mainnet-humans.konsortech.xyz:40656
Seeds
6408a62a32415dcf1c863cef7fcae987bad23b7c@mainnet-seed.konsortech.xyz:40165
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 humansd
cp $HOME/.humansd/data/priv_validator_state.json $HOME/.humansd/priv_validator_state.json.backup
humansd tendermint unsafe-reset-all --home $HOME/.humansd --keep-addr-book
SNAP_RPC="https://mainnet-humans-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="2f8a0bf63e23606dc85bdd11afbf34e68a9f3b74@mainnet-humans.konsortech.xyz:40656"
sed -i 's|^persistent_peers *=.*|persistent_peers = "'$peers'"|' $HOME/.humansd/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/.humansd/config/config.toml
mv $HOME/.humansd/priv_validator_state.json.backup $HOME/.humansd/data/priv_validator_state.json
sudo systemctl restart humansd
sudo journalctl -u humansd -f --no-hostname -o cat
Snapshot
sudo systemctl stop humansd
cp $HOME/.humansd/data/priv_validator_state.json $HOME/.humansd/priv_validator_state.json.backup
rm -rf $HOME/.humansd/data
SNAP_NAME=$(curl -s https://snapshot3.konsortech.xyz/humans/ | egrep -o ">humans-snapshot.*\.tar.lz4" | tr -d ">")
curl https://snapshot3.konsortech.xyz/humans/${SNAP_NAME} | lz4 -dc - | tar -xf - -C $HOME/.humansd
mv $HOME/.humansd/priv_validator_state.json.backup $HOME/.humansd/data/priv_validator_state.json
sudo systemctl restart humansd && journalctl -u humansd -f --no-hostname -o cat
Custom Explorer
https://mainnet-explorer.konsortech.xyz/humans