Home·Validation Tools·Dymension Hub
Dymension Hub logo
MAINNET
By LavenderFive

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

#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 lz4 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 dymension
git clone https://github.com/dymensionxyz/dymension dymension
cd dymension
git checkout v3.0.0

# Build binaries
make install

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

#Install Cosmovisor and create a service

# Download and install Cosmovisor
go install cosmossdk.io/tools/cosmovisor/cmd/[email protected]

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

[Service]
User=$USER
ExecStart=$(which cosmovisor) run start
WorkingDirectory=$HOME/.dymd
Restart=always
RestartSec=5
LimitNOFILE=65535
Environment="DAEMON_HOME=$HOME/.dymd"
Environment="DAEMON_NAME=dymd"
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/.dymd/cosmovisor/current/bin"

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

#Initialize the node

# Set node configuration
dymd config chain-id dymension_1100-1
dymd config node tcp://localhost:20557

# Initialize the node
dymd init $MONIKER --chain-id dymension_1100-1

# Download genesis and addrbook
curl -Ls https://github.com/dymensionxyz/networks/raw/main/mainnet/dymension/genesis.json > $HOME/.dymd/config/genesis.json
curl -Ls https://snapshots.lavenderfive.com/snapshots/dymension/addrbook.json > $HOME/.dymd/config/addrbook.json

# Add seeds
seeds="45bffa41836302b06310af67f012500cc0d1da31@rpc.dymension.nodestake.org:666,ebc272824924ea1a27ea3183dd0b9ba713494f83@dymension-mainnet-seed.autostake.com:27086,[email protected]:20556,400f3d9e30b69e78a7fb891f60d76fa3c73f0ecc@dymension.rpc.kjnodes.com:14659,193262e32a9d7d3fffe14073160cabc4cdfef26b@dymension-rpc.stakeandrelax.net:20556,[email protected]:26656,[email protected]:20556,[email protected]:16676,86bd5cb6e762f673f1706e5889e039d5406b4b90@seed.dymension.node75.org:10956,258f523c96efde50d5fe0a9faeea8a3e83be22ca@seed.mainnet.dymension.aviaone.com:10290,a413834999fa34ae17d6a32a36017bceb68783ca@seed.dymension.mainnet.dteam.tech:29656"
sed -i -e "s|^seeds *=.*|seeds = \"$seeds\"|" $HOME/.dymd/config/config.toml

# Set minimum gas price
sed -i -e "s|^minimum-gas-prices *=.*|minimum-gas-prices = \"5000000000adym\"|" $HOME/.dymd/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/.dymd/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:20558\"%; s%^laddr = \"tcp://127.0.0.1:26657\"%laddr = \"tcp://127.0.0.1:20557\"%; s%^pprof_laddr = \"localhost:6060\"%pprof_laddr = \"localhost:20560\"%; s%^laddr = \"tcp://0.0.0.0:26656\"%laddr = \"tcp://0.0.0.0:20556\"%; s%^prometheus_listen_addr = \":26660\"%prometheus_listen_addr = \":20566\"%" $HOME/.dymd/config/config.toml
sed -i -e "s%^address = \"tcp://0.0.0.0:1317\"%address = \"tcp://0.0.0.0:20517\"%; s%^address = \":8080\"%address = \":20580\"%; s%^address = \"0.0.0.0:9090\"%address = \"0.0.0.0:20590\"%; s%^address = \"0.0.0.0:9091\"%address = \"0.0.0.0:20591\"%; s%:8545%:20545%; s%:8546%:20546%; s%:6065%:20565%" $HOME/.dymd/config/app.toml

#Start service and check the logs

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

#Sync

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

Chain ID:
dymension_1100-1
Latest Version:
v3.0.0
Github:
dymensionxyz/dymension
Public endpoints
REST/LCD
rest.lavenderfive.com:443/dymension
RPC
rpc.lavenderfive.com:443/dymension
gRPC
dymension.lavenderfive.com:443
WebSocket
wss://rpc.lavenderfive.com:443/dymension/ws
Json-RPC
jsonrpc.lavenderfive.com:443/dymension
Json-RPC (websocket)
wss://jsonrpc.lavenderfive.com:443/dymension/ws
Lavender Five
© 2022 Lavender.Five Nodes. All rights reserved.
Terms of Service.Privacy policy.Cookies policy.