# Join The Mainnet
Requirements: install iris
# Run a Full Node
# Start node from genesis
We recommend running a full node via state sync (see the next subsection). But if you want to start from genesis, you must use irishub v1.0.1 (opens new window) to initialize your node.
# initialize node configurations iris init <moniker> --chain-id=irishub-1 # download mainnet public config.toml and genesis.json curl -o ~/.iris/config/config.toml https://raw.githubusercontent.com/irisnet/mainnet/master/config/config.toml curl -o ~/.iris/config/genesis.json https://raw.githubusercontent.com/irisnet/mainnet/master/config/genesis.json # start the node (you can also use "nohup" or "systemd" to run in the background) iris start
Next, your node will process all chain upgrades. Between each upgrade, you must use the specified version to catch up with the block. Don't worry about using the old version at the upgrade height, the node will be halted automatically.
|Proposal||Start height||Upgrade height||irishub version|
|genesis||9146456||9593205||v1.0.1 (opens new window)|
|#1 (opens new window)||9593206||v1.1.0 (opens new window), v1.1.1 (opens new window)|
|#8 (opens new window)||12393048||12534300||v1.2.0 (opens new window), v1.2.1 (opens new window)|
|#11 (opens new window)||14166918||14301916||v1.3.0 (opens new window)|
|#19 (opens new window)||17685953||v1.4.1 (opens new window)|
You may see some connection errors, it does not matter, the P2P network is trying to find available connections
Try to add some of the Community Peers (opens new window) to
persistent_peers in the config.toml
If you want to quickly start the node and join IRIS Hub without historical data, you can consider using the state_sync function.
# Quick Start via State Sync
To quickly get started, node operators can choose to sync via State Sync. State Sync works by replaying larger chunks of application state directly rather than replaying individual blocks or consensus rounds.
The newest state sync configs can be found here (opens new window). Please remember to modify state sync configs.
# Build iris binary and initialize chain iris init <moniker> --chain-id=irishub-1 # Configure State sync [statesync] enable = true rpc_servers = "http://126.96.36.199:26657,http://188.8.131.52:26657" trust_height = 17613000 trust_hash = "990f1eaf06d456bc22891327e006d520cb407f8ad3bfee1edd43df0de1e1da1c" trust_period = "168h" # 2/3 of unbonding time #Start Iris iris start --x-crisis-skip-assert-invariants
# Upgrade to Validator Node
# Create a Wallet
# create a new wallet iris keys add <key-name>
write the seed phrase in a safe place! It is the only way to recover your account if you ever forget your password.
# Confirm your node has caught-up
# if you have not installed jq # apt-get update && apt-get install -y jq # if the output is false, means your node has caught-up iris status | jq .sync_info.catching_up
# Create Validator
Only if your node has caught-up, you can run the following command to upgrade your node to be a validator.
iris tx staking create-validator \ --pubkey=$(iris tendermint show-validator) \ --moniker=<your-validator-name> \ --amount=<amount-to-be-delegated, e.g. 10000iris> \ --min-self-delegation=1 \ --commission-max-change-rate=0.1 \ --commission-max-rate=0.1 \ --commission-rate=0.1 \ --gas=100000 \ --fees=0.6iris \ --chain-id=irishub-1 \ --from=<key-name>
config directory located in your iris home (default ~/.iris/) carefully! It is the only way to recover your validator.
If there are no errors, then your node is now a validator or candidate (depending on whether your delegation amount is in the top 100)
- Validator Security
Request IRISnet mainnet tokens from the Faucet powered by Stakely.
For the usage, please refer to the guideline on the Faucet page: https://stakely.io/faucet/irisnet-iris