Testnet

Humans

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

How To Install Full Node Humans Friction 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 HUMANS_CHAIN_ID=humans_3000-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.1"
  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/humansdotai/humans
cd humans && git checkout tags/v0.1.0
make install

Init app

humansd init $NODENAME --chain-id $HUMANS_CHAIN_ID

Download configuration

wget -O $HOME/.humansd/config/genesis.json "https://raw.githubusercontent.com/humansdotai/testnets/master/friction/genesis-M1-P3.json"

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

SEEDS="4475f4c5939ae6705bd1eb0e4783cbdc2b0889e0@testnet-seed.konsortech.xyz:13165"
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 = \"0uheart\"/;" ~/.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

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

N/A

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 1000000uheart \
  --from $WALLET \
  --commission-max-change-rate "0.1" \
  --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=0.1uheart \
  --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> 1000000uheart

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 1000000uheart --from=$WALLET --chain-id=$HUMANS_CHAIN_ID --gas=auto

Redelegate stake from validator to another validator

humansd tx staking redelegate <srcValidatorAddress> <destValidatorAddress> 1000000uheart --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://testnet-humans-rpc.konsortech.xyz

EVM RPC

Network Name    : Humans Friction
RPC URL         : https://testnet-humans-evm.konsortech.xyz
Chain ID        : 3000
Curreny Symbol  : HEART

API

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

gRPC

testnet-humans.konsortech.xyz:40090

Peers and Seeds

Peers

946b549550e9c564193bf4c963d84b17e5415a50@testnet-humans.konsortech.xyz:13656

Seeds

4475f4c5939ae6705bd1eb0e4783cbdc2b0889e0@testnet-seed.konsortech.xyz:13165

Genesis & Address Book

Address Book

https://snapshot.konsortech.xyz/humans/addrbook.json

Genesis

https://snapshot.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/.humans --keep-addr-book

SNAP_RPC="https://testnet-humans-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

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://snapshot.konsortech.xyz/humans-testnet/ | egrep -o ">humans-snapshot.*\.tar.lz4" | tr -d ">")
curl https://snapshot.konsortech.xyz/humans-testnet/${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
Embed Iframe

Humans Friction Decentralization Maps