# Join mainnet


Requirements: install plugchaind or download the corresponding version of the binary file releases (opens new window)

You need to install plugchaind first, or download the corresponding version of the binary file releases (opens new window)

# run a full node

# Using the genesis file


Your node must be initialized with Plug Chain v1.1.0 (opens new window)

  1. Initialize the node
plugchaind init <moniker> --chain-id=plugchain_520-1
  1. Download the genesis.json, app.toml, config.toml public on the mainnet:
curl -o ~/.plugchain/config/genesis.json https://raw.githubusercontent.com/oracleNetworkProtocol/mainnet/main/version/v1/genesis.json
curl -o ~/.plugchain/config/app.toml https://raw.githubusercontent.com/oracleNetworkProtocol/mainnet/main/version/v1/app.toml
curl -o ~/.plugchain/config/config.toml https://raw.githubusercontent.com/oracleNetworkProtocol/mainnet/main/version/v1/config.toml
  1. Before starting, if you want to modify the service port, seed information, peering point, sentinel mode, etc., you can modify the file yourself, and then synchronize the block.

# Sync block

Sync mainnet block data

# One snapshot synchronization

Depending on the snapshot height, lock the plugchaind binary version to use

Block height Database plugchaind version Download address Desc
7171838 goleveldb (default) v1.7 (opens new window) mainnet-7171838-20221208-goleveldb.zip (opens new window) (107.915GB)crop data
  1. Download snapshot data

  2. Data override ~/.plugchain/data/ directory

  3. Use the corresponding plugchaind version to start plugchaind start

# 2 Gradual upgrade synchronization

start node service

# Start the node (you can also use nohup or systemd to run in the background)

plugchaind start

Next, your node will perform all chain upgrade procedures. Between each upgrade, you must sync blocks with a specific version. Don't worry about using an older version at an upgrade height, the node will stop automatically.

Proposal Gov Height Upgrade Height plugchaind Version
v1.0 (opens new window) 3000000 v1.1.0 (opens new window)
v1.2.1 (opens new window) 3349542 3576853 v1.2.1 (opens new window)
v1.5.0 (opens new window) 3935641 4152263 v1.5.0 (opens new window)
v1.7 (opens new window) 5420512 5633000 v1.7.0 (opens new window)


You may see some connection errors, that's okay, the P2P network is trying to find an available connection

# Upgrade to validator node

# Create wallet

You can [create a new wallet](../cli-client/keys.md#create a key) or [import an existing wallet](../cli-client/keys.md#recover the key with the mnemonic phrase key), then transfer some plugs from the exchange or anywhere into the wallet you just created:

# Create a new wallet
plugchaind keys add <key-name>


Back up your mnemonic phrases in a safe place! If you forget your password, this is the only way to recover your account.

# Confirm node synchronization status

# You can install jq with this command
# apt-get update && apt-get install -y jq

# If the output is false, your node has finished syncing
plugchaind status 2>&1 | jq -r '.SyncInfo.catching_up'

# Create validator

You can run the following command to promote your node to a validator only if the node has finished syncing:

plugchaind tx staking create-validator --from mywallet \
--amount 1000000uplugcn \
--pubkey $(plugchaind tendermint show-validator) \
--moniker="my validator" \
--commission-rate="0.10" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1000000" \
--fees 20uplugcn --chain-id plugchain_520-1



Be sure to back up the config directory in your home (~/.plugchain/ by default) directory! This is the only way to recover validators if your server disk is damaged or if you are migrating your server.

If the above command gives no errors, your node is already a validator or candidate (depending on whether your Voting Power is in the top 50)