Dungeon GamesDungeon Chain
DashboardSwapStakeNFTsSky MercenariesDAOBuy DGN
DashboardSwapStakeNFTsSky MercenariesDAOBuy DGNAuction HouseLeaderboardGuildsBattle PassGame GuideSky MercenariesActivityWorld MapWorld BossPvP ArenaGuild WarsRelicsReferralsBlocksTransactionsValidatorsGovernanceBTC BridgeDEX PoolsTokensAnalyticsToken FactoryTop AccountsContractsChain StatsDesktop AppWhitepaperRoadmapFAQ
Dungeon GamesDungeon Chain Explorer
Chain: dungeon-1|Cosmos SDK v0.50|CosmWasm
Whitepaper|Roadmap|dungeongames.io|Dungeon DEX|iOS Wallet|Android Wallet|Desktop Launcher
DashboardCastleAccount

Run a dungeon-1 Validator

This guide walks you from a fresh Linux box to a synced full node on dungeon-1, then to a registered, signing validator.

Sync from snapshot — do not replay from genesis. Snapshot restore takes ~30 minutes; replaying takes days.


1. Chain summary

FieldValue
Chain IDdungeon-1
Native tokenudgn (display: DGN)
FrameworkCosmos SDK v0.50
ConsensusCometBFT 0.38.17
Smart contractsCosmWasm enabled
Current binarydungeond v6 (live), upgrading to v7.0.0 at block 15400000 (~2026-05-29 ~01:00 UTC, gov prop #35)
v7.0.0 releasegithub.com/Crypto-Dungeon/dungeonchain/releases/tag/v7.0.0 — stage the binary before the upgrade height
Headline changescosmwasm_2_0 capability · ibc-go v10 · SDK v0.53.6
Default portsp2p 26656, RPC 26657, gRPC 9090, API 1317

2. Requirements

  • Linux x86_64 (Ubuntu 22.04 LTS tested)
  • 8 CPU / 16 GB RAM minimum, 32 GB recommended
  • 500 GB+ NVMe SSD
  • Go 1.22+ (only if building from source)

3. Install the binary

The v7.0.0 GitHub release lists reference sha256 hashes for the linux_amd64 build:

Filesha256size
dungeond22e2426872b7c87e32063cb23a82296c715525fd62295458f3b75e6494d3e7a3158 MB
libwasmvm.x86_64.so (v2.2.1)0cf3960e79fece5b2baa27c9db02dc8a3707fe370438a92516e39270b61822668.0 MB
mkdir -p ~/dungeond-bin && cd ~/dungeond-bin
# place dungeond + libwasmvm.x86_64.so here (built from source, or shared from another operator)
sha256sum dungeond            # verify against the release
sudo install -m 0755 dungeond /usr/local/bin/dungeond
sudo install -m 0644 libwasmvm.x86_64.so /usr/local/lib/
sudo ldconfig
dungeond version              # expected: 7.0.0

Or build from source:

git clone https://github.com/Crypto-Dungeon/dungeonchain
cd dungeonchain
git checkout v7.0.0
make install

Note: Go embeds the build host's GOPATH in the binary, so your make install will produce a different sha than the reference. On-chain behavior is identical — only verify-sha when you receive a binary from another operator.


4. Initialize the node

MONIKER="your-moniker-here"
dungeond init "$MONIKER" --chain-id dungeon-1 --home ~/.dungeonchain

5. Download the snapshot + genesis

The snapshot is the post-v6 halt-block state — a single tarball that gets you from zero to "ready to sync to tip" in one extract. The node will replay through the v7 upgrade height (15400000) automatically as it catches up to current tip.

sudo systemctl stop dungeond 2>/dev/null || true

cd /tmp
curl -O https://play.dungeongames.io/snapshots/dungeon-1-v6-20260524.tar.gz
curl -O https://play.dungeongames.io/snapshots/dungeon-1-genesis.json

# Verify snapshot
echo "0ec22df8d287e4aec19daf6fd4db0e7cdecb84725bc46c11624e05c04e2fb09e  dungeon-1-v6-20260524.tar.gz" | sha256sum -c

# Verify genesis
echo "ef1bf7b761fddb15284b8fd45817de94e3ad30bf9460c5acd82c71268511a2e6  dungeon-1-genesis.json" | sha256sum -c

# Install genesis
cp dungeon-1-genesis.json ~/.dungeonchain/config/genesis.json

# Wipe stale state, keep node identity + config
rm -rf ~/.dungeonchain/data
mkdir -p ~/.dungeonchain/data

# Extract snapshot
tar -xzf dungeon-1-v6-20260524.tar.gz -C ~/.dungeonchain/data --strip-components=1

⚠️ Do not run dungeond genesis validate against this file. Modules added in later upgrades (e.g. packetforwardmiddleware) aren't in the original section list — the validator returns an expected EOF error.


6. Configure peers and gas

~/.dungeonchain/config/config.toml:

persistent_peers = "72535d78b44a864f68e019d05b8ad7b15087be53@67.218.8.89:26656"

~/.dungeonchain/config/app.toml:

minimum-gas-prices = "0.025udgn"

# Recommended pruning to keep disk usage down
pruning = "custom"
pruning-keep-recent = "100"
pruning-interval = "10"

7. Start with Cosmovisor

Cosmovisor auto-swaps the binary on chain upgrades. Set this up before block 15400000 or your node will halt at the v7 upgrade height.

go install cosmossdk.io/tools/cosmovisor/cmd/cosmovisor@latest

mkdir -p ~/.dungeonchain/cosmovisor/genesis/bin
mkdir -p ~/.dungeonchain/cosmovisor/upgrades/v7/bin

cp /usr/local/bin/dungeond ~/.dungeonchain/cosmovisor/genesis/bin/
cp /usr/local/bin/dungeond ~/.dungeonchain/cosmovisor/upgrades/v7/bin/

ln -sf ~/.dungeonchain/cosmovisor/upgrades/v7 ~/.dungeonchain/cosmovisor/current

You also need libwasmvm v2.2.1 (sha256 0cf3960e79fece5b2baa27c9db02dc8a3707fe370438a92516e39270b6182266) on the runtime path. Add to your systemd unit:

Environment="LD_LIBRARY_PATH=/home/YOUR_USER/lib/wasmvm-2.2.1"

For future upgrades (v8, etc.), stage the next binary under upgrades/vN/bin/ ahead of the announced upgrade height. Cosmovisor will swap it automatically.

Systemd unit at /etc/systemd/system/dungeond.service:

[Unit]
Description=dungeon-1 node (cosmovisor)
After=network-online.target

[Service]
User=YOUR_USER
ExecStart=/home/YOUR_USER/go/bin/cosmovisor run start --home /home/YOUR_USER/.dungeonchain
Restart=always
RestartSec=3
LimitNOFILE=65535
Environment="DAEMON_NAME=dungeond"
Environment="DAEMON_HOME=/home/YOUR_USER/.dungeonchain"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now dungeond
sudo journalctl -u dungeond -f

8. Verify sync

dungeond status --home ~/.dungeonchain | jq '.sync_info'
# catching_up: true   → still syncing
# catching_up: false  → at tip; safe to create the validator

Typical sync time from the snapshot through v7 to tip: under 60 minutes on 100 Mbps.


9. Create the validator

After catching_up=false, with at least 1 DGN in your operator wallet:

dungeond keys add validator --home ~/.dungeonchain

# Fund the address, then:
PUBKEY=$(dungeond tendermint show-validator --home ~/.dungeonchain)

dungeond tx staking create-validator \
  --amount 1000000udgn \
  --pubkey "$PUBKEY" \
  --moniker "your-moniker" \
  --chain-id dungeon-1 \
  --commission-rate 0.05 \
  --commission-max-rate 0.20 \
  --commission-max-change-rate 0.01 \
  --min-self-delegation 1 \
  --from validator \
  --gas auto --gas-adjustment 1.5 --fees 5000udgn \
  --home ~/.dungeonchain \
  -y

Cosmos SDK v0.50 also accepts the JSON form — dungeond tx staking create-validator --help shows the full spec.


10. v7 upgrade checklist

Upgrade height 15400000 (~2026-05-29 ~01:00 UTC, give or take a few hours depending on block-time variance). After the height passes, verify the symlink:

ls -la ~/.dungeonchain/cosmovisor/current
# Expected: cosmovisor/current -> cosmovisor/upgrades/v7   (or vN for future upgrades)

Cosmovisor can silently skip the swap. If systemctl is-active says active and the RPC responds but height is stuck at the halt block with catching_up=false, swap manually:

sudo systemctl stop dungeond
ln -sfn ~/.dungeonchain/cosmovisor/upgrades/v7 ~/.dungeonchain/cosmovisor/current
sudo systemctl start dungeond

Always verify the symlink after every upgrade — systemctl is-active and RPC liveness are not enough.


11. Gotchas

  • genesis validate on a state-export errors — that's expected; do not panic, do not re-download.
  • gen_txs=0 is normal for any chain past genesis-init.
  • Cosmovisor silent-skip: verify current after every upgrade.
  • State sync is not recommended — use the snapshot.
  • Don't use sudo for ops on your validator user's home dir — non-interactive ssh has no TTY for the password prompt.

Support

  • Discord: Dungeon validator channel (ask Lee for an invite)
  • Telegram: validator coordination group
  • Email: drleeberman@gmail.com