Validator FAQ
TIP
For general concepts, please refer to General Concepts
General Questions
How to Become an IRIShub Validator
Refer to Join The Mainnet
It is also recommended to test your validator setup on the Testnet before launch
TIP
To earn more delegation for your validator, you are advised to:
- Undergo a security audit
- Open-source some dev tools and workflow
- Setup your own website to build your own image
What are hardware requirements
The minimum hardware requirements are mentioned here: Hardware Requeirment
What are the different states a validator can be in
After a validator is created with a create-validator
transaction, they can be in three states:
bonded
: Validator is in the active set and participates in consensus. Validator is earning rewards and can be slashed for misbehaviour.unbonding
:- Validator misbehaved and is in jail, i.e. outisde of the validator set. If the jailing is due to being offline for too long, the validator can send an
unjail
transaction in order to re-enter the validator set. - Validator is out of the top 100 bonded and become a Candidate, the validator can delegate more IRIS to himself to be in top 100, then he will get bonded automatically.
- Validator misbehaved and is in jail, i.e. outisde of the validator set. If the jailing is due to being offline for too long, the validator can send an
unbonded
: Validator is not in the active set, and therefore not signing blocks. Validator cannot be slashed, and does not earn any reward. It is still possible to delegate to this validator.
What are the different types of keys
In short, there are two types of keys:
Tendermint Key
This is a unique key used to sign consensus votes.
It is generated when the node is created by
iris init
Query the associated public key prefixed with
icp
iris tendermint show-validator
Query the associated bech32 address prefixed with
ica
iris tendermint show-address
Query the associated hex address
iris status | jq .validator_info.address
It is also stored in the
config/priv_validator.json
Application key
This key is created from iris
and used to sign transactions. Application keys are associated with a public key prefixed by iap
and an address prefixed by iaa
. Both are derived from account keys generated by iris keys add
.
Note: A validator's operator key is directly tied to an application key, but uses reserved prefixes solely for this purpose: iva
and ivp
.
How to backup the validator
It is really IMPORTANT to backup your validator private key carefully, it's the only way to restore your validator. Note the validator private key is a Tendermint Key
If you are using the software sign (which is the default signing method of tendermint), your Tendermint Key is located in <iris-home>/config/priv_validator.json
. The easiest way is to backup the whole config folder.
Or you can use a hardware to manage your Tendermint Key much more safely, such as the YubiHSM2
How to migrate the validator
There are many ways to migrate your validator, the most recommended way is:
Run a Full Node on the new server
After you have caught-up, stop the Validator Node and the Full Node
Replace the Full Node config folder with the Validator's
Start the new Validator Node
What is 'self-delegation'? How can I increase my 'self-delegation'
Self-delegation is delegation from a validator to himself. This amount can be increased by sending a delegate
transaction from your validator's operator account which you used to create the validator.
Is there a minimum amount of IRIS that must be delegated to be an active (=bonded) validator
The minimum amount is 1 iris
.
Can a validator run away with their delegators' funds
By delegating to a validator, an user delegates voting power. The more voting power a validator has, the more weight they have in the consensus and governance processes. This does not mean that the validator has custody of their delegators' funds. By no means can a validator run away with its delegator's funds.
Even though delegated funds cannot be stolen by their validators, delegators are still liable if their validators misbehave.
How often will a validator be chosen to propose the next block? Does it go up with the quantity of bonded IRIS
The validator that is selected to propose the next block is called proposer. Each proposer is selected deterministically, and the frequency of being chosen is proportional to the voting power (i.e. amount of bonded IRIS) of the validator. For example, if the total bonded stake across all validators is 100 IRIS and a validator's total stake is 10, then this validator will propose ~10% of the blocks.
What is the incentive to stake
Please refer to Staking Rewards
What is the incentive to run a validator
Validators earn proportionally more revenue than their delegators because of commissions.
Validators also play a major role in governance. If a delegator does not vote, they inherit the vote from their validator. This gives validators a major responsibility in the ecosystem.
What are validators commission
Revenue received by a validator's pool is split between the validator and their delegators. The validator can apply a commission on the part of the revenue that goes to their delegators. This commission is set as a percentage. Each validator is free to set their initial commission, maximum daily commission change rate and maximum commission. The IRIS Hub enforces the parameter that each validator sets. Only the commission rate can change after the validator is created.
What is the formula to calculate the rewards
Please refer to Staking Rewards Calculation Formula
How to query my validator address
There are 2 kinds of validator addresses:
Validator operator address, which is an Application Key that you used to create the validator
To query a validator's operator address(iva...) and pubkey(ivp...):
iris keys show MyKey --bech=val
Validator node address, which is a Tendermint Key.
To query the associated address(ica...) and consensus pubkey(icp...), please refer to the Tendermint Key
Explorers
How to upload my validator's logo to theSign-up Keybase with your validator's name
Upload your logo as your Keybase account's avatar
Add a PGP key
to your Keybase account (I believe you will see this option after sign-up), and you will get a 16-digit stringEdit your validator and specify
--identity=<the_16_digit_string>
Common Problems
voting_power: 0
My validator has Your validator has become jailed or out of the top 100 bonded validators.
If you got jailed, you can get your voting power back to your validator. First, if iris
is not running, start it up again:
iris start
Wait for your full node to catch up to the latest block. Then, you can unjail your validator if you have been jailed over the DowntimeJailDuration
Lastly, check your validator again to see if your voting power is back.
iris status
You may notice that your voting power is less than it used to be. That's because you got slashed!
iris
crashes because of too many open files
My The default number of files Linux can open (per-process) is 1024
. iris
is known to open more than 1024
files. This causes the process to crash. A quick fix is to run ulimit -n 4096
(increase the number of open files allowed, only effective for the current session) and then restart the process with iris start
. If you are using systemd
or another process manager to launch iris
this may require some configuration at that level.
A sample
systemd
file to fix this issue is below:# /etc/systemd/system/iris.service [Unit] Description=IRIS Hub Node After=network.target [Service] Type=simple User=ubuntu WorkingDirectory=/home/ubuntu ExecStart=/home/ubuntu/go/bin/iris start Restart=on-failure RestartSec=3 LimitNOFILE=65535 [Install] WantedBy=multi-user.target
A sample to update the global ulimit on Ubuntu:
# Edit limits.conf vim /etc/security/limits.conf # Append the following lines at the bottom * hard nofile 65535 * soft nofile 65535 root hard nofile 65535 root soft nofile 65535 # Reboot the system reboot # Re-login & Check whether ulimit is updated to 65535 ulimit -n
My uptime is always 0% even I'm fully synced
Compare the two Consensus Pubkey
:
From Explorer, you can find the
Consensus Pubkey
which you declared for your validator in the Validator Detail page.Check the
Consensus Pubkey
which you are now using viairis tendermint show-validator --home=<iris-home>
If they are not the same, it means you are running a Full Node other than the Validator.
Tendermint Key
You'd better have backed up yourthen you can do these:
- Stop the node
- Replace the current
<iris-home>/config/priv_validator.json
with the one you backed up - Confirm the
Consensus Pubkey
is correct viairis tendermint show-validator --home=<iris-home>
- Start the node
- Check
voting_power
should now be greater than 0:iris status
What if I lost my Tendermint Key
That means you have Lost Your Validator Forever! You can only create a new one and redelegate all of your shares to the new Validator.
Community Channels
- Discord: https://discord.gg/yPsTf4cgPh