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 = "151acb0de556f4a059f9bd40d46190ee91f06422@10.20.37.79:26656,05106550b6e738d8ce50cb857520124bbcce318f@10.20.7.209:26656,73084f252a919e1b0525c49e39f927257b3d9ca1@213.199.42.54:13956,e5f0c47baa29c7c7806af5444beb60423d9cc56d@10.20.7.123:26656,36a232cf6a3fb166750f003e3abd5249e86aeed8@15.235.115.154:16700,62d50a790922e159a46da1f34161e2296288636a@10.20.0.57:26656,c8fbd5f8576bb4cc07831bacb93d1f20cf48e542@10.20.0.57:60556,1c20a54ad76a157f843c671590a15601e0595286@10.20.5.196:26656,e7af24b15365bff9537e2776c2a5fdf01b933dc5@10.20.5.117:26656,bd6ab7355865f312d2da8d1e26f6c528cb7d46c8@10.20.6.173:26656,4c2cbd3e7811abc963dc1381f9121192d20356df@10.20.6.55:26656,174d69a5f50a53cdffed0a58dbdec8a6e15e6353@10.20.4.77:26656,8d8324141897243927359345bb4b1bb78a1e1df1@65.109.56.235:26656,8c1792870c96d21d6f049adb0ac4414d838970d4@10.20.0.56:26656,70c9639808b1e5d0c3f256e67d31da6dfc93fd61@10.20.0.60:55356,1e0c061b926c8a01238e3eb3e79236c210703b68@103.97.111.74:26656,50e4fcd54f462cb5f004f79639585957548c6cb1@10.20.0.58:13956,89d6003fa2e8f30cc57a4c73ee19b5450205297c@10.20.33.211:26656,d1f31c6968712b2da1079cf0387153560d2f1cf7@10.20.0.58:19856,ec46eb43c8ec8656c59a4a95d903500f74ab31eb@95.216.145.214:26656,9c65c5b0e340cff69a09b3c631a1ed942d4e8675@10.20.0.56:26656,697a97ed395eebae7a0545d94429b4f86adc1f90@10.20.0.60:30657,e60265ed137e0880ae1335e1aaffa7f360c3b2f4@156.67.111.234:19856,05c36c3e579d3fc5b0efaa44f5a197f7a96c09ce@65.109.104.118:56656,17de11d7867323b42e88191cd04cc46497c8d528@10.20.0.58:26656,4098f0862f6d454f28a912e6987277889e8d23c1@10.20.0.58:19856,f8ddb6e7c9dcb47f0ceda7eeebaa7520317dae04@10.20.0.58:26656,75d2372f7feecb7bf66a5c57302bea172c62a3d3@10.20.0.58:20656,78bb8ebcfbeb584f1d00d1f73084ca3260cd4434@144.76.70.103:19656,7848af720a210aae96e871ba400f186f89ad01e4@10.20.0.56:26656,d9ed6ced7f3730c2143195ff8c25764aeb1cadb9@10.20.0.57:13956,6604179787139eab744b8a1159fee9b03fcc3714@10.20.0.56:19856,da8f3442ca569f6b80e160986f8334e3bb0fe9b6@10.20.0.57:36656,74f2e690e1be83c189bf227c4c61b266267795c8@10.20.0.60:35656,5cc9267158950e8c02dc186846488a308f3125a7@10.20.0.58:19856,8dbe173e8db6ff55236ae945385b8241b1e43ea3@10.20.0.57:11036,e7c42ffd10de203d832f1c4db3481403163cc481@10.20.0.50:26656,405889c24b4de25ba618293a640a2396e202617e@10.20.0.60:26656,efa09cacd33a8c0183c767ce52eb886b9519e246@10.20.0.58:26664,dca62b1537a2a52a365328b5503b0ab9239f8bd3@10.20.0.57:13956,81b9c09ae1c76a3e7f36db91b98d1fbf1e31233c@185.248.24.16:13956,f1c1cc5d282c266a05d640172805367366671a25@158.247.241.227:16700,0b15bc2f4c1097343bb22b8ca9760a21f03240ee@10.20.5.138:26656,798e61b8e0208edf9743394add9f6781ccdf784c@10.20.0.58:19856,9fd05518ea350e46f26779b3443d97770e29ab23@10.20.0.61:26656,5c0468c2d1ec9a75cd267a9875a6bdb970d470b7@10.20.0.60:26656,637077d431f618181597706810a65c826524fd74@10.20.0.58:19856,a726810d81cdca2810e6d0eb047cde8c213da46e@10.20.0.57:27656,c19da0e7cd7cb94c47303e7b2ee7c20d7602ad8a@10.20.0.50:13956,522f0fd66a024a6255cb6950d5b5d12c719c1e98@10.20.0.56:56243,d3c7f343d7ed815b73eef34d7d37948f10a1deab@10.20.33.213:26656,2df12f3231f8410b38e7c50bd4ec5e5b19eb364e@10.20.0.56:26656"/' 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