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
| Field | Value |
|---|---|
| Chain ID | dungeon-1 |
| Native token | udgn (display: DGN) |
| Framework | Cosmos SDK v0.50 |
| Consensus | CometBFT 0.38.17 |
| Smart contracts | CosmWasm enabled |
| Current binary | dungeond v6 (live), upgrading to v7.0.0 at block 15400000 (~2026-05-29 ~01:00 UTC, gov prop #35) |
| v7.0.0 release | github.com/Crypto-Dungeon/dungeonchain/releases/tag/v7.0.0 — stage the binary before the upgrade height |
| Headline changes | cosmwasm_2_0 capability · ibc-go v10 · SDK v0.53.6 |
| Default ports | p2p 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:
| File | sha256 | size |
|---|---|---|
dungeond | 22e2426872b7c87e32063cb23a82296c715525fd62295458f3b75e6494d3e7a3 | 158 MB |
libwasmvm.x86_64.so (v2.2.1) | 0cf3960e79fece5b2baa27c9db02dc8a3707fe370438a92516e39270b6182266 | 8.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 validateon a state-export errors — that's expected; do not panic, do not re-download.gen_txs=0is normal for any chain past genesis-init.- Cosmovisor silent-skip: verify
currentafter 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