nknX "Fast Deploy" on Raspberry Pi 3: a successful test drive

nknx-fast-deploy-timer Canakit

Tonight I got my new Raspberry Pi running NKN in 4 minute 17 seconds, by copy pasting one line of script. The new “Fast Deploy” by nknx.org works and works great! This is my short write-up:

Preparation: Get the hardware goodies

Lazy person like me will just get a CanaKit: https://www.canakit.com

which includes Raspberry Pi 3 B v1.2 (Quad Core 1.2GHz 64bit CPU, 1GB RAM, 802.11b/g/n WiFi), 32GB microSD, case, power supply, etc.

You can find out the full spec of Raspberry Pi 3 here:


Step 1: Headless WiFi ssh installation

Just follow this simple tutorial:

Step 2: Make sure your Raspberry Pi has public IP address and can be reached.

This might involve configuring your WiFi router to enable port forwarding (TCP/UDP, 30001-30003).

Step 3: Nknx fast deploy (ARM) with beneficiary address

Here I’m using a new feature called “Fast Deploy” of the upcoming nknx.org node manager. It basically downloads a script and then run it. (Editor’s note: The script is very advanced, feature packed, and foolproof. This is the nknx.org team’s secret sauce, and they spent a lot of midnight oil perfecting this script. It makes complicated things simple for users.) It installs go language and other necessary environment, download and compile NKN software. Eventually it will report the IP address to nknx backend server so it will show up in your node manager dashboard.

Stopwatch timed: 4m17s

When all is said and done, the success screen should show something like this:







Step 4: watch it sync

After about 5 minutes, my new node’s IP address automatically shows up on NKNx.org node manager. It shows the state as “start syncing”

Since nknx.org has 5 minutes interval in querying data, you might want to use command line to check real-time state of your node by using nknc like below. Since I’m not that patient, I used a lot of nknc to see how is my node syncing up the blockchain.

./nknc --ip YOUR_IP_ADDRESS info -s


"id": "1",

"jsonrpc": "2.0",

"result": {

"addr": "tcp://x.x.x.x:30001",

"currTimeStamp": 1563944931,

"height": 3024,


"jsonRpcPort": 30003,

"proposalSubmitted": 0,

"protocolVersion": 30,

"publicKey": "KKKKKKKKKKK",

"relayMessageCount": 1,

"syncState": "SYNC_STARTED",

"uptime": 275,

"version": "v1.0.4-beta",

"websocketPort": 30002



During initial blockchain sync, nknd uses about 0.5-1.5 cores CPU (out of 4) and 12.5% RAM. In contrast, during normal operation nknd uses on average 20% of 1 core CPU (out of 4 core) and 13% of RAM.

It takes about 30-40 minutes to sync up to the latest block. This is an area to improve, e.g. download the latest snapshot https://nkn.org/ChainDB_latest.zip.

Step 5: I’m mining, yay!

How can I try it out?

nknx.org is going to open public beta on August 6th, 2019. You can find more here:

1 Like

Great to see. I’ve got a few older RasPis, assuming this will work with the older gear all the same, I can get a few setup and set out to friends.

It has been 19 days, and today I got my first mining reward on my little Raspberry Pi 3!

My little Raspberry Pi 3 is running hot: 2 mining rewards in 24 hours! somewhat compensate the long unlucky period…

27 days and 3 rewards, below average but not too bad since I’m basically running it “for free”.

Both these benchmark tests and our community member Keijjo’s test proves that using an external SSD drive can be much much faster than internal micro SD cards. Sometimes can even be cheaper! So to run your NKN nodes on Raspberry well and ready for future nCDN service, it is time to consider investing in an external SSD drive.

Test results from community member Keijjo on Discord:

“It seems indeed that sync problem was due to slow micro-sd disk. Although it was with 80mb/s write speed one.
With that it synced 5-10 blocks a minute. Now with external 420mb/s usb 3.1 ssd it syncs 10 blocks per second.”

Hello, please tell me, which budget disk is more suitable for the NKN node? SATA III SSD with stable speed or PCI-Express with high initial speed, on a fast buffer overflow and therefore a strong speed reduction. Or blockchain data, which is constantly overwritten during synchronization, is not of such a size and volume that it clogs the disk buffer too much? What type of memory is better for TLC vs MLC?

Hi, I was just experimenting SSD the last few days and here is what I found. This website did a lot of benchmarking and recommends a few SSD and SATA -> USB 3 adapters. The I/O to disk can be a bottleneck for nknd blockchain operations, especially for LevelDB and ChainDB storage. MicroSSD is notoriously slow for READ/WRITES.

I personally end up buying a Crucial MX500 240GB SSD with StarTech SATA to USB 3 adapter. The Kingston SSD was not available anywhere so I instead bought the Crucial which is on sale. For just nknd, you don’t need more than 32GB. But I was thinking ahead of myself, for other services such as nCDN and TUNA. Hope it helps.