installation


description: Setting up your validator node has never been so easy. Get your validator running in minutes by following step by step instructions.

Installation

Cronos POS Chain
Cronos POS Chain

Network name: Cronos POS Chain | Chain ID: crypto-org-chain-mainnet-1 | Latest version: v4.2.9 | Custom Port: 266

Setup validator name

Replace YOUR_MONIKER_GOES_HERE with your validator name

MONIKER="YOUR_MONIKER_GOES_HERE"

Install dependencies

Update system and install build tools

sudo apt -q update
sudo apt -qy install curl git jq zst build-essential
sudo apt -qy upgrade

Install Go

sudo rm -rf /usr/local/go
curl -Ls https://go.dev/dl/go1.19.8.linux-amd64.tar.gz | sudo tar -xzf - -C /usr/local
eval $(echo 'export PATH=$PATH:/usr/local/go/bin' | sudo tee /etc/profile.d/golang.sh)
eval $(echo 'export PATH=$PATH:$HOME/go/bin' | tee -a $HOME/.profile)

Download and build binaries

# Clone project repository
cd $HOME
rm -rf cryptoorgchain
git clone https://github.com/crypto-org-chain/chain-main cryptoorgchain
cd cryptoorgchain
git checkout v4.2.9

# Build binaries
make install

# Prepare binaries for Cosmovisor
mkdir -p $HOME/.chain-maind/cosmovisor/genesis/bin
mv ~/go/bin/chain-maind $HOME/.chain-maind/cosmovisor/genesis/bin/
rm -rf build

Install Cosmovisor and create a service

# Download and install Cosmovisor
go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@v1.4.0

# Create service
sudo tee /etc/systemd/system/chain-maind.service > /dev/null << EOF
[Unit]
Description=osmosis node service
After=network-online.target

[Service]
User=$USER
ExecStart=$(which cosmovisor) run start
WorkingDirectory=$HOME/.chain-maind
Restart=always
RestartSec=5
LimitNOFILE=65535
Environment="DAEMON_HOME=$HOME/.chain-maind"
Environment="DAEMON_NAME=chain-maind"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"
Environment="UNSAFE_SKIP_BACKUP=true"
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:$HOME/.chain-maind/cosmovisor/current/bin"

[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable chain-maind

Initialize the node

# Set node configuration
chain-maind config chain-id crypto-org-chain-mainnet-1
chain-maind config node tcp://localhost:26657

# Initialize the node
chain-maind init $MONIKER --chain-id crypto-org-chain-mainnet-1

# Download genesis and addrbook
curl -Ls https://github.com/crypto-org-chain/mainnet/raw/main/crypto-org-chain-mainnet-1/genesis.json > $HOME/.chain-maind/config/genesis.json
curl -Ls https://snapshots.lavenderfive.com/addrbooks/cryptoorgchain/addrbook.json > $HOME/.chain-maind/config/addrbook.json

# Add seeds
seeds="87c3adb7d8f649c51eebe0d3335d8f9e28c362f2@seed-0.crypto.org:26656,e1d7ff02b78044795371beb1cd5fb803f9389256@seed-1.crypto.org:26656,2c55809558a4e491e9995962e10c026eb9014655@seed-2.crypto.org:26656,8542cd7e6bf9d260fef543bc49e59be5a3fa9074@seed.publicnode.com:26656,ade4d8bc8cbe014af6ebdf3cb7b1e9ad36f412c0@seeds.polkachu.com:20256"
sed -i -e "s|^seeds *=.*|seeds = \"$seeds\"|" $HOME/.chain-maind/config/config.toml

# Set minimum gas price
sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"0basecro\"|" $HOME/.chain-maind/config/app.toml

# Set pruning
sed -i \
  -e 's|^pruning *=.*|pruning = "custom"|' \
  -e 's|^pruning-keep-recent *=.*|pruning-keep-recent = "100"|' \
  -e 's|^pruning-keep-every *=.*|pruning-keep-every = "0"|' \
  -e 's|^pruning-interval *=.*|pruning-interval = "19"|' \
  $HOME/.chain-maind/config/app.toml

# Set custom ports
sed -i -e "s%^proxy_app = \"tcp://127.0.0.1:26658\"%proxy_app = \"tcp://127.0.0.1:26658\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:26657\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:26660\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:26656\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":26666\"%" $HOME/.chain-maind/config/config.toml
sed -i -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:26617\"%; s%^address = \":8080\"%address = \":26680\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:26690\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:26691\"%; s%:8545%:26645%; s%:8546%:26646%; s%:6065%:26665%" $HOME/.chain-maind/config/app.toml

Start service and check the logs

sudo systemctl start chain-maind && sudo journalctl -u chain-maind -f --no-hostname -o cat

Sync

To catch up quickly, you can either use a snapshot or state sync

Last updated