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.
  • 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 YubiHSM2open in new window

How to migrate the validator

There are many ways to migrate your validator, the most recommended way is:

  1. Run a Full Node on the new server

  2. After you have caught-up, stop the Validator Node and the Full Node

  3. Replace the Full Node config folder with the Validator's

  4. 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

How to upload my validator's logo to the Explorers

  1. Sign-up Keybaseopen in new window with your validator's name

  2. Upload your logo as your Keybase account's avatar

  3. 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 string

  4. Edit your validator and specify --identity=<the_16_digit_string>

Common Problems

My validator has voting_power: 0

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!

My iris crashes because of too many open files

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 Exploreropen in new window, 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 via iris tendermint show-validator --home=<iris-home>

If they are not the same, it means you are running a Full Node other than the Validator.

You'd better have backed up your Tendermint Key

then 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 via iris 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