Validator Setup

📶Running a Validator

Set environment

export MONIKER="YOUR_NODE_NAME_HERE"
export WALLET="YOUR_WALLET_NAME_HERE"
export DETAILS="YOUR_NODE_INFORMATION_HERE"
export WEBSITE="YOUR_WEBSITE_HERE"
export DISPLAY_PIC="YOUR_KEYBASE_IMAGE_PGP"
export CONTACT="YOUR_CONTACT"

WEBSITE, DETAILS, DISPLAY_PIC and CONTACT are optional

for DISPLAY_PIC please refer to this : Harmony Guide

Write env to .profile

echo 'export MONIKER=${MONIKER}' >> ~/.profile
echo 'export WALLET=${WALLET}' >> ~/.profile
echo 'export DETAILS=${DETAILS}' >> ~/.profile
echo 'export WEBSITE=${WEBSITE}' >> ~/.profile
echo 'export DISPLAY_PIC=${DISPLAY_PIC}' >> ~/.profile
echo 'export CONTACT=${CONTACT}' >> ~/.profile

source ~/.profile

This step is optional, but we recommend you to do it for convenience

Get Testnet EMPE

You can obtain testnet tokens to fund your address from official EMPE faucet:

https://faucet-testnet.empe.io/#/

You can verify your balance with this command:

symphonyd query bank balances $(symphonyd keys show $WALLET -a)

Create Validator

Obtain your validator public key by running the following command:

symphonyd tendermint show-validator

The output will be similar to this (with a different key):

{"@type":"/cosmos.crypto.ed25519.PubKey","key":"lR1d7YBVK5jYijOfWVKRFoWCsS4dg3kagT7LB9GnG8I="}

You can create your validator by using command below :

symphonyd tx staking create-validator \
  --amount=100000uempe \
  --pubkey=$(symphonyd tendermint show-validator) \
  --moniker=${MONIKER} \
  --identity=${DISPLAY_PIC} \
  --website=${WEBSITE} \
  --security-contact=${CONTACT} \
  --details=${DETAILS} \
  --chain-id=empe-testnet-3 \
  --commission-rate="0.05" \
  --commission-max-rate="0.20" \
  --commission-max-change-rate="0.01" \
  --gas="auto" \
  --min-self-delegation="10000" \
  --fees=800note \
  --from=${WALLET}

When specifying commission parameters, the commission-max-change-rate is used to measure % point change over the commission-rate. E.g. 1% to 2% is a 100% rate increase, but only 1 percentage point.

Unjail Validator

When a validator is "jailed" for downtime, you must submit an Unjail transaction from the operator account in order to be able to get block proposer rewards again (depends on the zone fee distribution).

emped tx slashing unjail \
--from=${WALLET} \
--chain-id=empe-testnet-3 \
--fees=800note

Halting Your Validator

When attempting to perform routine maintenance or planning for an upcoming coordinated upgrade, it can be useful to have your validator systematically and gracefully halt. You can achieve this by either setting the halt-height to the height at which you want your node to shutdown or by passing the --halt-height flag to symphonyd. The node will shutdown with a zero exit code at that given height after committing the block.

Get last block height

curl -sX GET "https://symphony-testnet-api.cryptonode.id/cosmos/base/tendermint/v1beta1/blocks/latest" -H  "accept: application/json" | jq '.block.last_commit.height'

Halt Validator

symphonyd start --halt-height HALT_HEIGHT

replace HALT_HEIGHT with number shown from result of Get last block height and add some (like 100 or 500)

Last updated