Skip to content

Run a provisioner node

Provisioners are full nodes that participate in consensus. To participate, you stake a minimum of 1000 DUSK and run a provisioner node 24/7.

If you only want to stake or understand staking before operating infrastructure, start with: Staking on Dusk.

The following specifications support Provisioner nodes with limited proving capacity. It is always recommended to have at least 2 cores available.

CPU RAM Storage Network Connection
2 cores; 2 GHz 4 GB 50 GB 10 Mbps

This is the shortest reliable path:

  1. Create a server (Ubuntu 24.04).
  2. Open ports: 22/tcp (SSH), 9000/udp (Kadcast). Optional: 8080/tcp (HTTP server, mainly for archive/indexer use-cases).
  3. Install the node with the official installer.
  4. Set up the node wallet and stake.
  5. Keep it upgraded and monitored.

You can run a provisioner on any VPS/provider as long as it matches the specs above and runs Ubuntu 24.04.

If you’re using DigitalOcean, see the optional walkthrough below.

DigitalOcean walkthrough (optional)

DO uses droplets (Linux VMs). When you’re logged in, go to Droplets and click Create Droplet.

Create droplet page.

  1. Choose a region.
  2. Choose image: Ubuntu 24.04 (LTS) x64.
  3. Choose size: at least the Provisioner Specifications.
  4. Prefer SSH keys over passwords.

Select region and image for the droplet. Select size of the droplet. Set an authentication method. Create the droplet. Droplet being created.

Enable the required ports:

  • 22/tcp (SSH)
  • 9000/udp (Kadcast; consensus networking)
  • Optional: 8080/tcp (HTTP server; mainly for archive/indexer use-cases)

If you manage a local firewall, here’s a minimal ufw example:

Terminal window
sudo ufw limit ssh
sudo ufw allow 9000/udp
sudo ufw enable
DigitalOcean firewall group (optional)

Create a firewall and open UDP 9000 (and optionally TCP 8080).

Create firewall page. Configure firewall.

SSH into your server (or use your provider’s web console).

Section titled “(Optional) Security baseline (recommended)”

Run the node under a dedicated non-root user and use SSH keys (not passwords).

Create a dedicated user (optional)
Terminal window
sudo groupadd --system dusk
sudo useradd -m -G dusk -s /bin/bash duskadmin
sudo passwd duskadmin
Terminal window
mkdir -p /home/duskadmin/.ssh
sudo nano /home/duskadmin/.ssh/authorized_keys
Terminal window
sudo chmod 700 /home/duskadmin/.ssh
sudo chmod 600 /home/duskadmin/.ssh/authorized_keys
sudo chown -R duskadmin:dusk /home/duskadmin/.ssh
Terminal window
sudo usermod -aG sudo duskadmin

We’ve created an easy to use node installer. This installer will set up Rusk as a service on your droplet, preconfigure parts of the node, and provide a couple of helper scripts.

Install Rusk by pasting the following command on your server:

Terminal window
curl --proto '=https' --tlsv1.2 -sSfL https://github.com/dusk-network/node-installer/releases/latest/download/node-installer.sh | sudo bash

Once installed, verify the installer version with:

Terminal window
ruskquery version

You should see the latest version number confirming a successful installation.

Now set up the node wallet and stake so you can participate in consensus.

Follow: Node wallet setup.

For staking rules and reward timing, see Staking on Dusk. For next steps after setup, see Maintenance & monitoring and Upgrade your node.