Install

Designed for high-performance, validator-grade setups (Warp Sync, HA, Safe Upgrades, Troubleshooting).

DN-focused Setup Guide

System Preparation

sudo apt update && sudo apt upgrade -y
sudo apt install -y \
  curl git make wget clang pkg-config libssl-dev build-essential \
  apt-transport-https gnupg cmake protobuf-compiler lz4

Install Rust and Required Toolchains

curl https://sh.rustup.rs -sSf | sh -s -- -y
source $HOME/.cargo/env

rustup update
rustup component add rust-src
rustup target add wasm32-unknown-unknown

rustup install nightly-2024-01-21
rustup target add wasm32-unknown-unknown --toolchain nightly-2024-01-21

Build Polkadot SDK


Install Binaries


Create Working Directory


Warp Sync for DN

Warp Sync drastically speeds up initial boot:

Required flag:

Recommended DB for DN:

ParityDB is more stable under DN workloads.


Full Production-Ready systemd Service


Start & Verify


Safe Upgrades for DN (Atomic Upgrade Path)

Never overwrite the binary directly. Use Staged Atomic Upgrade:

Build new binary:

Put new binaries in staging:

Validate new binary:

Atomic swap:

Verify:


High Availability (HA) DN Architecture

Minimal HA Design

Sentry node

DN Failover Procedure:

Normally:

  • Validator B runs with --no-validate

  • If Validator A goes offline, B becomes active:

Can be automated with keepalived or pacemaker.


Troubleshooting Guide

Node not starting after upgrade

Try full sync:

RocksDB corruption errors

Switch to ParityDB:

Node not visible in Telemetry

Check external IP:

Open port:

Poor synchronization speed

Enable compiled WASM:

Drop in peers

Increase limits:


Monitoring (Prometheus + Grafana)

Prometheus endpoint:

Key metrics:

  • substrate_block_height

  • substrate_sync_target

  • substrate_peers_count

  • substrate_block_import

Last updated