Join Mainnet

On this page

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.

Chain ID
Description
Site
Version
Status

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

← Installation

Interacting with ICTech(CLI) →

Last updated