Testnet
Hedgeblock
Installation Guide
Validator CLI
Public Endpoint
Statesync
Snapshot
Explorers
Node Maps
Installation Guide
Installation Guide
Validator CLI
Public Endpoint
Statesync
Snapshot
Explorers
Node Maps
How To Install Full Node Hedge 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 HEDGE_CHAIN_ID=berberis-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.5"
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
wget -O hedged https://github.com/hedgeblock/testnets/releases/download/v0.1.0/hedged_linux_amd64_v0.1.0
chmod +x hedged
mv hedged /root/go/bin
Config app
hedged config chain-id $HEDGE_CHAIN_ID
Init app
hedged init $NODENAME --chain-id $HEDGE_CHAIN_ID
hedged config chain-id $HEDGE_CHAIN_ID
Download configuration
cd $HOME
curl -s https://snapshot3.konsortech.xyz/hedge/genesis.json > $HOME/.hedge/config/genesis.json
curl -s https://snapshot3.konsortech.xyz/hedge/addrbook.json > $HOME/.hedge/config/addrbook.json
Set seeds and peers
seeds="c849fce4317af1a7710c55c586cbd1c18a557d2f@testnet-seed.konsortech.xyz:15165"
peers="b5d5226ac957b8b384644e0aa2736be4b40f806c@testnet-hedge.konsortech.xyz:14656"
sed -i -e 's|^seeds *=.*|seeds = "'$seeds'"|; s|^persistent_peers *=.*|persistent_peers = "'$peers'"|' $HOME/.hedge/config/config.toml
Disable indexing
indexer="null"
sed -i -e "s/^indexer *=.*/indexer = \"$indexer\"/" $HOME/.hedge/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/.hedge/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.hedge/config/app.toml
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.hedge/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.hedge/config/app.toml
Set minimum gas price
sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"0.0025uhedge\"|" $HOME/.hedge/config/app.toml
Create service
sudo tee /etc/systemd/system/hedged.service > /dev/null <<EOF
[Unit]
Description=Hedge Node
After=network-online.target
[Service]
User=$USER
ExecStart=$(which hedged) start --home $HOME/.hedge
Restart=on-failure
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
Register and start service
sudo systemctl daemon-reload
sudo systemctl enable hedged
sudo systemctl restart hedged && sudo journalctl -u hedged -f -o cat
Guidance for Validator
Create wallet
To create new wallet you can use command below. Don’t forget to save the mnemonic
hedged keys add $WALLET
To recover your wallet using seed phrase
hedged keys add $WALLET --recover
Show your wallet list
hedged keys list
Save wallet info
Add wallet and validator address into variables
HEDGE_WALLET_ADDRESS=$(hedged keys show $WALLET -a)
HEDGE_VALOPER_ADDRESS=$(hedged keys show $WALLET --bech val -a)
echo 'export HEDGE_WALLET_ADDRESS='${HEDGE_WALLET_ADDRESS} >> $HOME/.bash_profile
echo 'export HEDGE_VALOPER_ADDRESS='${HEDGE_VALOPER_ADDRESS} >> $HOME/.bash_profile
source $HOME/.bash_profile
Create validator
check your wallet balance:
hedged query bank balances $HEDGE_WALLET_ADDRESS
To create your validator run command below
hedged tx staking create-validator \
--amount 1000000000uhedge \
--from $WALLET \
--commission-max-change-rate "0.01" \
--commission-max-rate "0.2" \
--commission-rate "0.07" \
--min-self-delegation "1" \
--pubkey $(hedged tendermint show-validator) \
--moniker $NODENAME \
--chain-id $HEDGE_CHAIN_ID \
--gas=auto \
--gas-adjustment=1.5 \
--gas-prices="0.025uhedge"
Check your validator key
[[ $(hedged q staking validator $HEDGE_VALOPER_ADDRESS -oj | jq -r .consensus_pubkey.key) = $(hedged 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
hedged 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 hedged -o cat
Start service
sudo systemctl start hedged
Stop service
sudo systemctl stop hedged
Restart service
sudo systemctl restart hedged
Node info
Synchronization info
hedged status 2>&1 | jq .SyncInfo
Validator info
hedged status 2>&1 | jq .ValidatorInfo
Node info
hedged status 2>&1 | jq .NodeInfo
Show node id
hedged tendermint show-node-id
Wallet operations
List of wallets
hedged keys list
Recover wallet
hedged keys add $WALLET --recover
Delete wallet
hedged keys delete $WALLET
Get wallet balance
hedged query bank balances $HEDGE_WALLET_ADDRESS
Transfer funds
hedged tx bank send $HEDGE_WALLET_ADDRESS <TO_HEDGE_WALLET_ADDRESS> 1000000uhedge
Voting
hedged tx gov vote 1 yes --from $WALLET --chain-id=$HEDGE_CHAIN_ID
Staking, Delegation and Rewards
Delegate stake
hedged tx staking delegate $HEDGE_VALOPER_ADDRESS 1000000uhedge --from=$WALLET --chain-id=$HEDGE_CHAIN_ID --gas=”auto" --gas-prices=”0.025uhedge” --gas-adjustment=”1.5″
Redelegate stake from validator to another validator
hedged tx staking redelegate <srcValidatorAddress> <destValidatorAddress> 1000000uhedge --from=$WALLET --chain-id=$HEDGE_CHAIN_ID --gas=”auto" --gas-prices=”0.025uhedge” --gas-adjustment=”1.5″
Withdraw all rewards
hedged tx distribution withdraw-all-rewards --from=$WALLET --chain-id=$HEDGE_CHAIN_ID --gas=”auto" --gas-prices=”0.025uhedge” --gas-adjustment=”1.5″
Withdraw rewards with commision
hedged tx distribution withdraw-rewards $HEDGE_VALOPER_ADDRESS --from=$WALLET --commission --chain-id=$HEDGE_CHAIN_ID --gas=”auto" --gas-prices=”0.025uhedge” --gas-adjustment=”1.5″
Validator management
Edit validator
hedged tx staking edit-validator \
--moniker=$NODENAME \
--identity=<your_keybase_id> \
--website="<your_website>" \
--details="<your_validator_description>" \
--chain-id=$HEDGE_CHAIN_ID \
--from=$WALLET \
--gas=”auto" \
--gas-prices=”0.025uhedge” \
--gas-adjustment=”1.5″
Unjail validator
hedged tx slashing unjail \
--broadcast-mode=block \
--from=$WALLET \
--chain-id=$HEDGE_CHAIN_ID \
--gas=”auto" \
--gas-prices=”0.025uhedge” \
--gas-adjustment=”1.5″
Custom Explorers
https://testnet-explorer.konsortech.xyz/hedge
Public Endpoint
RPC
https://testnet-hedge-rpc.konsortech.xyz
API
https://testnet-hedge-api.konsortech.xyz
gRPC
testnet-hedge.konsortech.xyz:14090
Peers and Seeds
Peers
b5d5226ac957b8b384644e0aa2736be4b40f806c@testnet-hedge.konsortech.xyz:14656
Seeds
c849fce4317af1a7710c55c586cbd1c18a557d2f@testnet-seed.konsortech.xyz:15165
Genesis & Address Book
Address Book
https://snapshot3.konsortech.xyz/neutaro/addrbook.json
Genesis
https://snapshot3.konsortech.xyz/neutaro/genesis.json
State Sync
sudo systemctl stop hedged
cp $HOME/.hedge/data/priv_validator_state.json $HOME/.hedge/priv_validator_state.json.backup
hedged tendermint unsafe-reset-all --home $HOME/.hedge --keep-addr-book
SNAP_RPC="https://testnet-hedge-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="b5d5226ac957b8b384644e0aa2736be4b40f806c@testnet-hedge.konsortech.xyz:14656"
sed -i 's|^persistent_peers *=.*|persistent_peers = "'$peers'"|' $HOME/.hedge/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/.hedge/config/config.toml
mv $HOME/.hedge/priv_validator_state.json.backup $HOME/.hedge/data/priv_validator_state.json
sudo systemctl restart hedged
sudo journalctl -u hedged -f --no-hostname -o cat
Snapshot
sudo systemctl stop hedged
cp $HOME/.hedge/data/priv_validator_state.json $HOME/.hedge/priv_validator_state.json.backup
rm -rf $HOME/.hedge/data
SNAP_NAME=$(curl -s https://snapshot3.konsortech.xyz/hedge/ | egrep -o ">hedge-snapshot.*\.tar.lz4" | tr -d ">")
curl https://snapshot3.konsortech.xyz/hedge/${SNAP_NAME} | lz4 -dc - | tar -xf - -C $HOME/.hedge
mv $HOME/.hedge/priv_validator_state.json.backup $HOME/.hedge/data/priv_validator_state.json
sudo systemctl restart hedged && journalctl -u hedged -f --no-hostname -o cat