Install
Chain ID | Latest Version Tag | Wasm |
---|---|---|
Setup validator name
MONIKER="YOUR_MONIKER_GOES_HERE"
Install dependencies
Update system and install build tools
sudo apt -q updatesudo apt -qy install curl git jq lz4 build-essentialsudo apt -qy upgrade
Install file2ban
# set and copy the config that will have higher prioritysudo apt install fail2ban -y && \sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local && \sudo nano /etc/fail2ban/jail.local
# uncomment and add your IP: ignoreip = 127.0.0.1.1/8 ::1 [ip]sudo systemctl restart fail2ban
# check statussudo systemctl status fail2ban
# check which jails are active (by default only sshd)sudo fail2ban-client status
# check sshd statisticssudo fail2ban-client status sshd
# look at the logssudo tail /var/log/fail2ban.log
# stop work and remove from autoloading\#sudo systemctl stop fail2ban && sudo systemctl disable fail2ban
Install GO
cd $HOMEver="1.22.5"sudo rm -rf /usr/local/gocurl -Ls https://go.dev/dl/go$ver.linux-amd64.tar.gz | sudo tar -xzf - -C /usr/localeval $(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
Download the latest binary file from the page
If necessary
# Unpack the tar.gz file:
tar -xvf _project_bin__linux_amd64.tar.gz
# Prepare binaries for Cosmovisor
mkdir -p $HOME/._project_name_/cosmovisor/genesis/binmv _project_bin_ $HOME/._project_name_/cosmovisor/genesis/bin/
# Create application symlinks
sudo ln -s $HOME/._project_name_/cosmovisor/genesis $HOME/._project_name_/cosmovisor/current -fsudo ln -s $HOME/._project_name_/cosmovisor/current/bin/_project_bin_ /usr/local/bin/_project_bin_ -f
Install Cosmovisor and create a service
# Download and install Cosmovisor
go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@v1.5.0
# Create servicesudo tee /etc/systemd/system/_project_name_.service > /dev/null << EOF[Unit]Description=_project_name_ node serviceAfter=network-online.target
[Service]User=$USERWorkingDirectory=$HOME/._project_name_/ExecStart=$(which cosmovisor) run startRestart=on-failureRestartSec=10LimitNOFILE=65535Environment="DAEMON_HOME=$HOME/._project_name_"Environment="DAEMON_NAME=_project_bin_"Environment="UNSAFE_SKIP_BACKUP=true"Environment="DAEMON_RESTART_AFTER_UPGRADE=true"Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:$HOME/._project_name_/cosmovisor/current/bin"
[Install]WantedBy=multi-user.targetEOF
sudo systemctl daemon-reload && sudo systemctl enable _project_name_.service
Initialize the node
# Set node configuration
_project_bin_ config chain-id _chain_id__project_bin_ config keyring-backend file_project_bin_ config node tcp://localhost:26657
# Initialize the node
_project_bin_ init $MONIKER --chain-id _chain_id_
# Download genesis and addrbook
curl -Ls _url_genesis_ > $HOME/._project_name_/config/genesis.jsoncurl -Ls _url_adrbook_ > $HOME/._project_name_/config/addrbook.json
# Add peers
sed -i 's/persistent_peers = ""/persistent_peers = "99ff20ec0c3623d2d725924b8fd0f1c4e1b22e15@195.201.59.173:26656,ef2ad74a4f2e5e2a106f8b3df468984b267e2c02@5.9.73.170:29056,89e2e7faf2c445418ebabff1cd1f71ce38a1b629@75.119.156.36:10556,a753ff99004f7860b546fd4b101f9e03e9ab0295@95.216.40.250:26656,5406f64d38f433cca31c2f6e96d5619fa92be5b5@168.119.179.250:26656,a9cf0ffdef421d1f4f4a3e1573800f4ee6529773@136.243.13.36:29056,b1d49ca31ff0d147042639c54b7c4136b75bb318@136.35.205.142:43656,f1e730c741c7edb89e4610e2f24993c5ca2e028b@88.99.254.62:22656,70d4b9e7a0546eb26c08ad023a95a600edb4a9f3@14.161.28.247:26656,692099b20acde5520084ecea12ddd9a36d4ca54d@178.18.251.146:12656,a2ebe6e1488feef2f908ed3560a4c27f577dc703@65.109.197.53:26656,080d9cc12e08fb64dd0f4528d0da4a84d5d9428e@37.27.83.234:26656,32e1e19f472d8838fc231b1ccd4a0c1200bd35bd@193.34.212.80:11156,2987c6802f3a227f2e423ec4548ae4f1a96cba9e@116.203.94.181:26656,91fb8e75a4b92589211d47d5a9ce934d32733043@116.202.48.104:26656,86304b6073c5a4a88d3c62325308af3cfa73d411@176.9.79.251:26656,ab1c6934152a960eda25b6451a3c20dbfaa13782@168.119.212.95:26656,9c4eabd4692b9fc1a5dd70f33bbae40570040849@82.112.234.121:26656,6adf0992076017f53d35068f36db3408fad3470d@185.192.97.28:18656,8620b66504caf84eee6491976924ce126cce1a93@37.114.34.24:51156,fb0a0beeb42902053b526e0f2dd572305d89a26c@65.109.84.22:26656,6d6608664f35833a30bf93adaf0cf81dc040e5bd@135.181.79.242:11156,d8dedcd1b8c541141e9c57a23db35bea44a05129@37.27.129.24:23656,4ff7d588d4c5d59a7208d4c0457cc3c26e6713cd@78.46.19.116:29056,07464fe7d40a64c374fca289ed8ac2e54ecf3f03@158.220.127.45:28656,e058f20874c7ddf7d8dc8a6200ff6c7ee66098ba@65.109.93.124:29056,33433ff73a832c82803ea6d2c897777f49c08d0f@194.163.129.129:28656,78f766310a83b6670023169b93f01d140566db79@65.109.83.40:29056,165a4eadc2b16c59dd51b323203ea868bf1619dc@185.197.195.37:20656,c734692d45d8c7c95a20588553da2018e0cc0141@195.179.226.30:26656,5c2a752c9b1952dbed075c56c600c3a79b58c395@195.3.220.54:27576,20ca5fc4882e6f975ad02d106da8af9c4a5ac6de@65.108.75.179:28656,aa91fcbcd6ab89c803da341edb195f6172eb9316@46.17.250.43:26656,fda62aaaed2bc6ae56577f03cdfe00101aee9b00@195.26.243.208:19656"/' config.toml
# Set minimum gas price
sed -i -e "s|^minimum-gas-prices _=._|minimum-gas-prices = \"_min_gas__utoken_\"|" $HOME/._project_name_/config/app.toml
# Set pruning
sed -i \-e 's|^pruning _=._|pruning = "custom"|' \-e 's|^pruning-keep-recent _=._|pruning-keep-recent = "1000"|' \-e 's|^pruning-keep-every _=._|pruning-keep-every = "0"|' \-e 's|^pruning-interval _=._|pruning-interval = "10"|' \$HOME/._project_name_/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:14258\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:14257\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:14260\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:14256\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":14266\"%" $HOME/._project_name_/config/config.tomlsed -i -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:14217\"%; s%^address = \":8080\"%address = \":14280\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:14290\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:14291\"%; s%:8545%:14245%; s%:8546%:14246%; s%:6065%:14265%" $HOME/._project_name_/config/app.toml
sed -i 's/max_num_inbound_peers =.*/max_num_inbound_peers = 50/g' $HOME/._project_name_/config/config.tomlsed -i 's/max_num_outbound_peers =.*/max_num_outbound_peers = 50/g' $HOME/._project_name_/config/config.toml
Start service and check the logs
sudo systemctl start _project_name_.service && sudo journalctl -u _project_name_.service -f --no-hostname -o cat