kasnodes
Crawling the networkCrawl25.7%

kaspad on Windows

Intermediate7 stepsAbout 20 minutes, plus the sync
1. Download kaspad0 of 7 done
  1. Download kaspad
  2. Install it
  3. Run it once
  4. Keep it running
  5. Day-to-day commands
  6. Make it public
  7. Troubleshooting

Before you start

1

Download kaspad

Get the official build from the Rusty Kaspa releases page.

  1. Open the releases page and take the newest release, marked Latest.
  2. Under Assets, download the .zip for Windows.
  3. Right-click it, choose Extract All, and leave the folder it makes in Downloads. kaspad.exe is inside.
2

Install it

Give kaspad a permanent home and add it to your PATH, so it runs from anywhere.

In PowerShell as administrator (right-click Start, Terminal (Admin)):

New-Item -ItemType Directory -Force -Path "C:\Program Files\Kaspad"
Get-ChildItem "$env:USERPROFILE\Downloads\rusty-kaspa-*-win64" -Recurse -Filter kaspad.exe |
  Move-Item -Destination "C:\Program Files\Kaspad\"

Add it to the PATH:

$old = [Environment]::GetEnvironmentVariable('Path', 'Machine')
[Environment]::SetEnvironmentVariable('Path', $old + ';C:\Program Files\Kaspad', 'Machine')

Or by hand: press Win+R, type sysdm.cpl, then Advanced, Environment Variables, Path under System variables, Edit, New, and add C:\Program Files\Kaspad. Close and reopen PowerShell, then check:

kaspad --version
It is installed when
  • kaspad --version prints a version from any folder
3

Run it once

Start it by hand first. Problems are much easier to see here than once it runs in the background.

kaspad --utxoindex --appdir=C:\ProgramData\Kaspad

If Windows Firewall asks, choose Allow access for private and public networks.

--utxoindex
Keeps an index for balance lookups (recommended)
--appdir
Keeps the chain in C:\ProgramData\Kaspad
It is working when the log shows
  • kaspad starting, with its version
  • Peers connecting, 8 or more of them
  • Headers, then blocks, downloading

Ctrl+C stops it. Next time it carries on syncing where it stopped.

4

Keep it running

The simplest way is a file you double-click. For a machine that stays on, run it as a Windows service instead.

Save this in Notepad as start-kaspad.bat, and double-click it to start the node:

start-kaspad.bat
@echo off
echo Starting the Kaspa node. Press Ctrl+C to stop.
kaspad --utxoindex --appdir=C:\ProgramData\Kaspad --logdir=C:\ProgramData\Kaspad\logs --rpclisten=127.0.0.1:16110
pause

As a service: download NSSM from nssm.cc, copy nssm.exe from its win64 folder to C:\Windows\System32, then in PowerShell as administrator:

nssm install Kaspad "C:\Program Files\Kaspad\kaspad.exe" --utxoindex --appdir=C:\ProgramData\Kaspad --logdir=C:\ProgramData\Kaspad\logs
nssm set Kaspad Start SERVICE_AUTO_START
nssm start Kaspad
nssm status Kaspad
It is running when
  • nssm status Kaspad says SERVICE_RUNNING
5

Day-to-day commands

Everything you'll need once it is running.

Follow the log
Get-ChildItem C:\ProgramData\Kaspad\logs -Recurse -File |
  Sort-Object LastWriteTime | Select-Object -Last 1 | Get-Content -Tail 50 -Wait
Stop, start, restart
nssm stop Kaspad
nssm start Kaspad
nssm restart Kaspad
Remove the service
nssm remove Kaspad confirm
6

Make it public

Optional, and the most useful thing you can do: a public node helps new nodes join and sync. On a hosted server, opening the firewall is usually enough.

Allow the port in Windows Firewall, in PowerShell as administrator:

netsh advfirewall firewall add rule name="Kaspa Node" dir=in action=allow protocol=TCP localport=16111

At home, kaspad asks your router to open the port by itself (UPnP), which many routers allow. If it doesn't become public, forward the port by hand:

  1. Find this machine's local address: ipconfig, the IPv4 Address.
  2. Open your router's admin page, usually at 192.168.1.1 or 192.168.0.1.
  3. Forward external TCP port 16111 to that address, port 16111.

Router menus differ. portforward.com has steps for most models.

It is public when
  • The log shows inbound peers
  • It appears on KasNodes after the next crawl
7

Troubleshooting

The usual problems and what fixes them.

'kaspad' is not recognized

It isn't on the PATH yet. Reopen PowerShell after changing the PATH, or use the full path: "C:\Program Files\Kaspad\kaspad.exe".

The NSSM service won't start

Check the path with nssm edit Kaspad, unblock kaspad.exe (right-click, Properties, Unblock), look in Event Viewer, and try running kaspad by hand to see the error.

My antivirus blocks kaspad

Add C:\Program Files\Kaspad\kaspad.exe to its exclusions. In Windows Security: Virus & threat protection, Manage settings, Exclusions.

Port 16110 or 16111 is already in use

Find what has it with netstat -ano | findstr 16111; the last number is the process ID to look up in Task Manager. Close it, or move kaspad with --listen and --rpclisten.

It shows 0 peers

It can't reach the network. Check the connection and that nothing blocks outbound traffic, check the log for errors, and restart it.

The disk is filling up

Check what kaspad uses, free some space, or move the data folder to a larger disk by changing --appdir. Keep 640 GB free for it; 1 TB is better.

It isn't public after opening the port

Check the firewall rule and the router rule are both TCP 16111 and point at the right machine. Some hosts and home providers put you behind their own NAT, which blocks inbound connections.

Running? Put your name on it.

Once the node shows up in a crawl you can claim it, pick a public name and follow its rank.