[NODERS]TEAM
Search
K

Guide

Here is a node installation guide (Simplified and manual)

Preparing the server for installation

sudo apt update && sudo apt upgrade -y
sudo apt install curl tar wget clang pkg-config libssl-dev jq build-essential bsdmainutils git make ncdu gcc git jq chrony liblz4-tool -y

Installing the latest version of Go

ver="1.21.1"
cd $HOME
wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz"
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz"
rm "go$ver.linux-amd64.tar.gz"
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> ~/.bash_profile
source ~/.bash_profile

Build

cd ~
git clone https://github.com/desmos-labs/desmos.git
cd desmos
git checkout v6.2.1
make install

Init your node

desmos init <YOUR_MONIKER> --chain-id desmos-mainnet
desmos config chain-id desmos-mainnet

Create or recover your wallet

#NEW WALLET
desmos keys add <WALLET_NAME>
#RECOVER OLD WALLET
desmos keys add <WALLET_NAME> --recover

Download Genesis

curl https://raw.githubusercontent.com/desmos-labs/mainnet/main/genesis.json > ~/.desmos/config/genesis.json

Set up the minimum gas price and Peers/Seeds/Filter peers/MaxPeers

sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.01udsm\"/;" ~/.desmos/config/app.toml
external_address=$(wget -qO- eth0.me)
sed -i.bak -e "s/^external_address *=.*/external_address = \"$external_address:26656\"/" $HOME/.desmos/config/config.toml

Download addrbook

wget -O $HOME/.desmos/config/addrbook.json "https://raw.githubusercontent.com/nodersteam/cosmos-adrbook/main/desmos/addrbook.json"

To connect the node to monitoring (optional), enable prometheus activation

sed -i -e "s/prometheus = false/prometheus = true/" $HOME/.desmos/config/config.toml

Create a service file

sudo tee /etc/systemd/system/desmos.service > /dev/null <<EOF
[Unit]
Description=desmos mainnet
After=network-online.target
[Service]
User=$USER
ExecStart=$(which desmos) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF

Use our StateSync

peers="d2b9e735329a1addb7090b1509bc018eea32d691@desmos.statesync.nodersteam.com:23656"
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/" ~/.desmos/config/config.toml
SNAP_RPC=http://desmos.statesync.nodersteam.com:12657
LATEST_HEIGHT=$(curl -s $SNAP_RPC/block | jq -r .result.block.header.height); \
BLOCK_HEIGHT=$((LATEST_HEIGHT - 500)); \
TRUST_HASH=$(curl -s "$SNAP_RPC/block?height=$BLOCK_HEIGHT" | jq -r .result.block_id.hash)
echo $LATEST_HEIGHT $BLOCK_HEIGHT $TRUST_HASH
sed -i.bak -E "s|^(enable[[:space:]]+=[[:space:]]+).*$|\1true| ; \
s|^(rpc_servers[[:space:]]+=[[:space:]]+).*$|\1\"$SNAP_RPC,$SNAP_RPC\"| ; \
s|^(trust_height[[:space:]]+=[[:space:]]+).*$|\1$BLOCK_HEIGHT| ; \
s|^(trust_hash[[:space:]]+=[[:space:]]+).*$|\1\"$TRUST_HASH\"| ; \
s|^(seeds[[:space:]]+=[[:space:]]+).*$|\1\"\"|" $HOME/.desmos/config/config.toml

Start your node

sudo systemctl daemon-reload && sudo systemctl enable desmos
sudo systemctl restart desmos && sudo journalctl -u desmos -f -o cat
Buy some tokens on OSMOSIS
The Osmosis Frontier
In order to be in the active set, you need to buy and delegate more tokens than the last active validator in the network

Wait for full synchronization and create a validator

desmos tx staking create-validator \
--amount=1000000udsm \
--pubkey=$(desmos tendermint show-validator) \
--moniker="<YOUR_MONIKER>" \
--chain-id=desmos-mainnet \
--commission-rate="0.10" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1" \
--gas="auto" \
--gas-adjustment=1.2 \
--gas-prices="0.025udsm" \
--from=<WALLET_NAME> -y

If you want to delete a node

sudo systemctl stop desmos && \
sudo systemctl disable desmos && \
rm /etc/systemd/system/desmos.service && \
sudo systemctl daemon-reload && \
cd $HOME && \
rm -rf .desmos && \
rm -rf desmos && \
rm -rf $(which desmos)