Creating a Validator
Before trying to create a validator, ensure you have the following task complete:
-
Initialize your node
-
Complete our intake form
-
Receive UNO tokens
-
Start your node
-
Ensure your node has caught up to the network’s current height
Once all of these tasks are finished, you can continue with creating your validator.
How Delegations Will Work
To ensure quick update cycles of the testnet, we ask that you only have a self delegation of 1 UNO. The Union team will delegate more to you to ensure you and the other validators have a similar delegation. This will enable us to maintain the majority of the total voting power so that we can quickly conduct updates to the network.
As we get closer to a mainnet release, we will update staking and slashing parameters and ask for more realistic self delegations. For the meantime, we will ensure to testnet is configured to change quickly with minimum friction.
Creating your validator
Now that you’re ready to create your validator, you can follow the steps below:
1) Create a Validator JSON File
touch validator.json
Add the following content to the file:
{
"pubkey": <PUBKEY>,
"amount": "1000000muno",
"moniker": "<MONIKER>",
"identity": "optional identity signature (ex. UPort or Keybase)",
"website": "validator's (optional) website",
"security": "validator's (optional) security contact email",
"details": "validator's (optional) details",
"commission-rate": "0.1",
"commission-max-rate": "0.2",
"commission-max-change-rate": "0.01",
"min-self-delegation": "1"
}
Replacing:
<PUBKEY>
with the result of runninguniond comet show-validator
<MONIKER>
with your moniker- And the optional content with your preferred details
2) Create a Proof of Possession
Assuming your private validator key is in the default location:
export PRIV_KEY=$(jq -r '.priv_key.value' ~/.union/config/priv_validator_key.json)
export POSSESSION_PROOF=$(uniond prove-possession "$PRIV_KEY")
export PRIV_KEY=$(jq -r '.priv_key.value' ~/.unionvisor/home/config/priv_validator_key.json)
export POSSESSION_PROOF=$(uniond prove-possession "$PRIV_KEY")
3) Run the Create Validator Command
Then you can submit this file using the create-union-validator
sub-command:
uniond union-staking create-union-validator $VALIDATOR_JSON_PATH $POSSESSION_PROOF \
--from $KEY_NAME \
--chain-id union-testnet-8
Where VALIDATOR_JSON_PATH
is the path to your validator.json
Epoch Staking & Validator Set Updates
Union uses Epoch Staking to perform validator set updates. This means that the validator set is only updated once per epoch.
If you successfully create your validator during the middle of an epoch, your validator will join the active set once it rotates at the end of the current epoch.