To run a validator, you'll need:
i) a validator key (cold) that allows you to control your validator parameters ii) a separate oracle subaccount key (hot) that signs oracle vote transactions if you are using a remote signing service
-
On your validator node, get it's public key and note it down:
carbond tendermint show-validator
-
On the machine(s) that you wish to install your keys, download and install the appropriate release.
-
Create your validator operator key and password:
# Note that this can be on any machine that has `carbond`, so the key can be kept secure, separate from the validator machine. carbond keys add val --keyring-backend file -i
-
Your validator address is:
carbond keys show val -a --keyring-backend file
-
You will need some Carbon tokens ($SWTH) to start your validator. You can get testnet tokens from the faucet.
-
After receiving tokens, promote your node to a validator by running:
carbond tx staking create-validator --amount 100000000000swth --commission-max-change-rate "0.025" --commission-max-rate "0.20" --commission-rate "0.05" --details "Some details about your validator" --from val --pubkey='PublicKeyFromStep1' --moniker "NameForYourValidator" --min-self-delegation "1" --fees 100000000swth --gas 300000 --chain-id <chain_id> --keyring-backend file # add --node="https://tm-api.carbon.network:443" if using a separate machine
Validators that run their nodes via a remote signing service require an oracle subaccount.
-
On any node, create the oracle key:
# Secure the key with the same password you used during node setup! carbond keys add oracle --keyring-backend file -i
! Your oracle subservice needs access to your oracle wallet (hot wallet). Ensure that it is installed on the same node that is running the oracle subservice, and that the service has the right password for decrypting the wallet.
-
Send some Carbon tokens ($SWTH) to your oracle wallet (mainnet), or get them from the faucet (testnet).
# From validator or other wallet with funds carbond tx bank send [from_key_or_address] [to_address] [amount]
-
After receiving tokens, initiate linking your oracle account as a subaccount of your validator by running this from a node that has access to your validator operator wallet.
carbond tx subaccount create-sub-account <oracle_address> --from val --fees 100000000swth --gas 300000 --chain-id <chain_id> --keyring-backend file -y
-
Accept the link from a node that has access to the oracle account (i.e. oracle subservice node).
carbond tx subaccount activate-sub-account <val_address> --from oracle --fees 100000000swth --gas 300000 --chain-id <chain_id> --keyring-backend file -y
By running the oracle as a subaccount, your validator operator key can be secured without exposing it on a hot machine.
The steps for creating a liquidator are exactly the same as an oracle (replace oracle
with liquidator
). Liquidator incentives / penalties are not enabled yet, so validators can choose to run this subservice on an altruistic basis. Just one validator / operator needs to run the liquidator for liquidations to execute correctly.