Loading

📚 Node installation

This guide shows how to run a Kusama relay chain node (full / validator-ready), using three official binaries: polkadot, polkadot-prepare-worker and polkadot-execute-worker.

1. Update system and install tools

sudo apt update && sudo apt upgrade -y
sudo apt install curl wget jq lz4 git tmux htop -y
Enable time synchronization (recommended)
sudo apt install systemd-timesyncd -y
sudo systemctl enable systemd-timesyncd
sudo systemctl start systemd-timesyncd
timedatectl status

2. Download and install Polkadot binaries

Version {{nodeVersion}} is automatically populated on this page. Three binaries are used: polkadot, polkadot-prepare-worker, polkadot-execute-worker.

cd $HOME
wget "https://github.com/paritytech/polkadot-sdk/releases/download/polkadot-{{nodeVersion}}/polkadot"
wget "https://github.com/paritytech/polkadot-sdk/releases/download/polkadot-{{nodeVersion}}/polkadot-prepare-worker"
wget "https://github.com/paritytech/polkadot-sdk/releases/download/polkadot-{{nodeVersion}}/polkadot-execute-worker"

chmod +x polkadot polkadot-prepare-worker polkadot-execute-worker
sudo mv polkadot polkadot-prepare-worker polkadot-execute-worker /usr/local/bin/

polkadot --version

3. Create data directory

We use a base path that is compatible with the snapshot instructions from the 📸 Snapshot tab.

mkdir -p $HOME/kusama/.local/share/kusama/chains/ksmcc3
chown -R $(id -u):$(id -g) $HOME/kusama

4. Generate node key

A node key provides a stable network identity (peer ID) for your node.

mkdir -p $HOME/kusama/.local/share/kusama/chains/ksmcc3/network

polkadot key generate-node-key \
  --file $HOME/kusama/.local/share/kusama/chains/ksmcc3/network/secret_ed25519

5. Create systemd service

Edit YOUR_NODE_NAME and, if needed, public IP / ports. The example below runs an archive validator node with Prometheus metrics and telemetry enabled.

sudo tee /etc/systemd/system/kusama.service > > /dev/null <<EOF
[Unit]
Description=Kusama node
After=network-online.target
Wants=network-online.target

[Service]
User=${USER}
Restart=always
RestartSec=5
LimitNOFILE=65535

ExecStart=/usr/local/bin/polkadot \
  --chain kusama \
  --name "YOUR_NODE_NAME" \
  --validator \
  --base-path $HOME/kusama/.local/share/kusama/chains/ksmcc3 \
  --node-key-file $HOME/kusama/.local/share/kusama/chains/ksmcc3/network/secret_ed25519 \
  --state-pruning archive \
  --blocks-pruning archive \
  --port 30332 \
  --rpc-port 9932 \
  --ws-port 9943 \
  --rpc-external \
  --ws-external \
  --rpc-cors=all \
  --rpc-methods=safe \
  --prometheus-port 9616 \
  --prometheus-external \
  --telemetry-url "wss://telemetry.polkadot.io/submit/ 0"

[Install]
WantedBy=multi-user.target
EOF

6. Enable and start the service

sudo systemctl daemon-reload
sudo systemctl enable kusama
sudo systemctl start kusama

7. Check logs

sudo journalctl -u kusama -f -o cat

To speed up synchronization, use the latest snapshot from the 📸 Snapshot tab on this page and extract it into $HOME/kusama/.local/share/kusama/chains/ksmcc3.


For full validator setup (keys, bonding, session keys, telemetry, etc.), please follow the official Polkadot validator documentation .