This guide shows how to run a Polkadot 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/polkadot/.local/share/polkadot
chown -R $(id -u):$(id -g) $HOME/polkadot
4. Generate node key
A node key provides a stable network identity (peer ID) for your node.
mkdir -p $HOME/polkadot/.local/share/polkadot/chains/polkadot/network
polkadot key generate-node-key \
--file $HOME/polkadot/.local/share/polkadot/chains/polkadot/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/polkadot.service > > /dev/null <<EOF
[Unit]
Description=Polkadot node
After=network-online.target
Wants=network-online.target
[Service]
User=${USER}
Restart=always
RestartSec=5
LimitNOFILE=65535
ExecStart=/usr/local/bin/polkadot \
--chain polkadot \
--name "YOUR_NODE_NAME" \
--validator \
--base-path $HOME/polkadot/.local/share/polkadot \
--node-key-file $HOME/polkadot/.local/share/polkadot/chains/polkadot/network/secret_ed25519 \
--state-pruning archive \
--blocks-pruning archive \
--port 30333 \
--rpc-port 9933 \
--ws-port 9944 \
--rpc-external \
--ws-external \
--rpc-cors=all \
--rpc-methods=safe \
--prometheus-port 9615 \
--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 polkadot
sudo systemctl start polkadot
7. Check logs
sudo journalctl -u polkadot -f -o cat
To speed up synchronization, use the latest snapshot from the 📸 Snapshot tab on this page
and extract it into $HOME/polkadot/.local/share/polkadot.
For full validator setup (keys, bonding, session keys, telemetry, etc.),
please follow the official
Polkadot validator documentation
.
WSS Endpoint
URL: wss://rpc.polkadot.stakeup.tech
Description: This WebSocket (WSS) endpoint provides a real-time connection for continuous updates and interaction with the Polkadot network.
| Block |
Size |
Snapshot Time |
Database |
Download |
Install lz4 if needed
sudo apt install lz4
Download snapshot
wget https://snapshots.stakeup.tech/{{dirName}}/{{dirName}}_latest.tar.lz4
Extract the snapshot to your database location
lz4 -d -c {{dirName}}_latest.tar.lz4 | tar -x -C $HOME/polkadot/.local/share/polkadot/chains/polkadot
Remove downloaded snapshot
rm -v {{dirName}}_latest.tar.lz4