Join Mainnet
On this page
Install ICTech
This document outlines the steps to join an existing testnet
Mainnet #
The table below gives an overview of all Mainnet Chain IDs. Note that, the displayed version might differ when an active Software Upgrade proposal exists on chain.
ICPlaza_13141619-2
ICPlaza Mainnet 2
/
v0.1
Live
ICPlaza_13141619-1
ICPlaza Mainnet 1
/
v0.1
Stale
IMPORTANT: If you join mainnet as a validator make sure you follow all the security recommendations!
Install ICTech #
Follow the installation document to install ICTech the binaryICTech.
Make sure you have the right version of ICTech installed.
Save Chain ID #
We recommend saving the mainnet chain-id
into your ICTech’s client.toml
. This will make it so you do not have to manually pass in the chain-id
flag for every CLI command.
See the Official Chain IDs for reference.
ICPlazad config chain-id ICPlaza_13141619-2
Initialize Node #
We need to initialize the node to create all the necessary validator and node configuration files:
ICPlazad init <your_custom_moniker> --chain-id ICPlaza_13141619-2
Monikers can contain only ASCII characters. Using Unicode characters will render your node unreachable.
By default, the init
command creates your ~/.ICPlazad
(i.e $HOME
) directory with subfolders config/
and data/
. In the config
directory, the most important files for configuration are app.toml
and config.toml
.
Genesis & Seeds #
Copy the Genesis File #
Download the genesis.json
file from the archive
and copy it over to the config
directory: ~/.ICPlazad/config/genesis.json
. This is a genesis file with the chain-id and genesis accounts balances.
wget https://archive.ICPlaza.org/mainnet/genesis.json
mv genesis.json ~/.ICPlazad/config/
Then verify the correctness of the genesis configuration file:
ICPlazad validate-genesis
Add Seed Nodes #
Your node needs to know how to find peers . You’ll need to add healthy seed nodes to $HOME/.ICPlazad/config/config.toml
. The mainnet
repo contains links to some seed nodes.
Edit the file located in ~/.ICPlazad/config/config.toml
and the seeds
to the following:
#######################################################
### P2P Configuration Options ###
#######################################################
[p2p]
# ...
# Comma separated list of seed nodes to connect to
seeds = "<node-id>@<ip>:<p2p port>"
You can use the following code to get seeds from the repo and add it to your config:
SEEDS=`curl -sL https://raw.githubusercontent.com/tharsis/mainnet/main/ICPlaza_9001-2/seeds.txt | awk '{print $1}' | paste -s -d, -`
sed -i.bak -e "s/^seeds =.*/seeds = \"$SEEDS\"/" ~/.ICPlazad/config/config.toml
For more information on seeds and peers, you can the Tendermint P2P documentation.
Add Persistent Peers #
We can set the persistent_peers field in ~/.ICPlazad/config/config.toml
to specify peers that your node will maintain persistent connections with. You can retrieve them from the list of available peers on the mainnet
repo.
A list of available persistent peers is also available in the #find-peers
channel in the ICPlaza Discord. You can get a random 10 entries from the peers.txt
file in the PEERS
variable by running the following command:
PEERS=`curl -sL https://raw.githubusercontent.com/tharsis/mainnet/main/ICPlaza_9001-2/peers.txt | sort -R | head -n 10 | awk '{print $1}' | paste -s -d, -`
Use sed
to include them into the configuration. You can also add them manually:
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" ~/.ICPlazad/config/config.toml
Run a Mainnet Validator #
For more details on how to run your validator, follow the validator [these] instructions.
ICPlazad tx staking create-validator \
--amount=1000000000000aICPlaza \
--pubkey=$(ICPlazad tendermint show-validator) \
--moniker="ICPlazaWhale" \
--chain-id=<chain_id> \
--commission-rate="0.05" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1000000" \
--gas="auto" \
--gas-prices="0.025aICPlaza" \
--from=<key_name>
🚨 DANGER: Never create your validator keys using a test
keying backend. Doing so might result in a loss of funds by making your funds remotely accessible via the eth_sendTransaction
JSON-RPC endpoint.
Ref: Security Advisory: Insecurely configured geth can make funds remotely accessible
Start mainnet #
The final step is to start the nodes. Once enough voting power (+2/3) from the genesis validators is up-and-running, the node will start producing blocks.
ICPlazad start
Share your Peer #
You can share your peer to posting it in the #find-peers
channel in the [ICPlaza Discord].
To get your Node ID use
ICPlazad tendermint show-node-id
State Syncing a Node #
If you want to join the network using State Sync (quick, but not applicable for archive nodes), check our [State Sync] page
Last updated