Running your own personal Monero node provides many benefits over using a public node. Not only will you be helping to improve the decentralisation, stability & efficiency of the network, but you will also be removing layers of trust by broadcasting your own transactions. Minimising trust & increasing privacy are the primary reasons for operating a node.
Single board computers are great for running an XMR node since they provide a simple, reliable, “set & forget” solution instead of leaving your laptop or desktop computer running 24/7.
The RockPro64’s integrated PCIe x4 slot & NVMe SSD provide a tidy & efficient alternative to using ugly, external, USB-connected hard drives.
Due to the smaller footprint of the Monero blockchain, a 1TB NVMe is more than enough storage to future-proof your node for years to come; however, a 500GB drive will suffice.
With the RockPro64, you also have the option to use an eMMC module instead of a MicroSD. I also chose to add a heatsink to my NVMe drive for improved cooling. Whilst tests have shown that this is not necessarily required, I figured it couldn’t hurt.
Thanks to the brilliant work of the open-source, PiNodeXMR project, setting up a reliable XMR node has never been easier. PiNodeXMR is the software you will be using to run your XMR node.
BlackCoffeBTC came through for me & custom-printed me an XMR-themed RockPro64 case. The perfect finishing touch.
Let’s get started.
First, flash your MicroSD or eMMC with the PinodeXMR image. Head over to PinodeXMR’s downloads page & scroll down to the RockPro64 Image. Download & flash it to your card using Balena Etcher. A 16GB eMMC or MicroSD card would probably suffice; however, I’d recommend a 32GB as they aren’t really any more expensive & it will provide more space as the PiNodeXMR project grows.
Once the writing is completed, insert the MicroSD, or eMMC, into your RockPro64, attach the ethernet cable first, then connect the power lead. Once the RockPro64 powers up, leave it to sit for 5 minutes whilst the PiNode image installs.
After a few seconds, the fan will begin to spin & will remain on until we initialise the fan script later in the guide.
Next, we need to find your RockPro64’s local IP address. You can use tools like Angry IP Scanner to search your network; however, I prefer logging into my router’s admin page instead so I can permanently bind the IP to my RockPro64 as a static address.
Once you have your IP address, open a web browser and type it into the address bar. If using HTTPS, you may see a “site not secure” warning; just hit“‘continue to site“, & the browser will present you with the PiNodeXMR dashboard. Create a bookmark for easy access later.
Above the PiNodeXMR logo, you will see a “Web Terminal” button. This is a web-based SSH client for your node; however, you can also SSH in using your favourite external software. I prefer using the Linux Terminal with the following command, edited to match your device’s local IP address.
Your default login credentials will be:-
- USERNAME: pinodexmr
- PASSWORD: PiNodeXMR
After a few seconds, the PiNodeXMR settings menu will appear. The most crucial step before anything else is to change the SSH password from its default for security purposes.
Scroll down to “System Settings” using the arrow keys, then select “Master Login Password Set” on the following screen.
Follow the prompts until you are asked to enter a new password, then, ensuring you don’t use any special characters, type it in twice. Your master password will now update & you’ll be returned to the menu. This password is now required for all future SSH access.
Next, you need to select your NVMe drive as the primary storage location for block data. From the menu, select “System Settings“, & from there, select “USB Storage Setup“. Your NVMe should already be attached, so choose “Yes” to continue. You will now see a list of available drives, scroll down and select “nvme0n1“.
On the following screen, select “Yes” to format & prepare the drive for blockchain storage. When prompted, instruct the helper to format the drive using the “EXT4” filesystem. Once complete, the NVMe will be mounted & ready for block download.
Next, you want to ensure that PiNodeXMR & all dependencies are updated to their latest versions. From the main menu, select “Update Tools” & ensure that “System Packages & dependencies“, “PiNodeXMR“, & “Blockchain Explorer” are all updated.
Once these three updates are complete, you can enable the fan script. The “Active Thermal Fan” script will activate the fan only when required, adjusting speed based on device temperature. You can read more about the ATS fan script on Github.
From the main menu, select “System Settings” & then “PWM Fan control Tool“. ATS will install & after a few seconds, you will notice that the fan slows down or stops entirely. The temperature-controlled PWM fan service is now active. You can double-check the status of ATS by running the following command:
sudo systemctl status ats
Next, you need to configure your RPC credentials for external wallet connections. Select “System Settings” from the main menu, then “Monero RPC Username and Password setup“. You will be prompted to enter the RPC username & password of your choice. Don’t use any special characters & keep these credentials safely backed up.
Now let’s add password protection to your PiNode web interface dashboard. Select “Extra Network Tools” from the main menu, then “Web Interface Password“. On the following menu, select “Set Web Interface Password” & enter a unique, secure password, avoiding the use of special characters once again.
Once the password is registered, return to this same menu & select “Enable Web Interface Password“. Once enabled, the username “pinodexmr” & your new password will be required whenever accessing the web interface.
Before exiting settings, return to the main menu & select “Extra Network Tools“, then select “Install Tor“. This installs a Tor daemon & provides your node with a unique onion address for making anonymous connections to the Monero network.
You can return to your web interface using your local IP address or “pinodexmr.local“. Log in when prompted & select “Node Control” from the top menu. From this screen, you can start Monderod and begin synchronising block data.
Scroll down to where it says “Anonymity Networks” & select either the Private or Public node option, depending on which you intend to run. Once an option is selected, the tab will expand, displaying your node’s personal Tor address & the button required to start & stop Monerod.
You do not need to manually open any ports with a Tor connection, so you can now hit “Start Monerod” to begin synchronisation. Now, clear your web browser’s cache & close it down. The Sync will typically take 24-48 hours, depending on the quality of your connection. I advise leaving the node during the sync process, as too much messing around with settings during sync can cause problems.
If you wish to operate a private node for your use only, clearnet connections are also acceptable & will provide a smoother, more efficient wallet experience. Monero’s Dandelion++ provides great transactional, network-level privacy by default, so Tor is not necessarily required unless you have specific reasons.
Note that using clearnet will require you to forward TCP port 18081 for remote RPC connections. You could also choose to forward TCP port 18080 (P2P) to help others sync their nodes & strengthen the network. I recommend configuring a VPN for clearnet connections, either at the router level or using the included PiVPN plugin, available to install under “Extra Network Tools“.
For remote clearnet connections, creating a free dynamic DNS hostname on noip.com is worthwhile if your network’s public IP address changes frequently. You can install the noip package under “Extra Network Tools” in the SSH settings menu. The installer will ask for your noip login credentials & will provide a reliable static hostname for uninterrupted remote connections.
The advantage of Tor connections is that you don’t have to worry about dynamic DNS or port forwarding. Your static onion address will provide a remote connection, regardless of your network environment. The tradeoff is that Tor is less efficient & may occasionally encounter instability. You also need to ensure that the Monero wallet you are using has a built-in Tor client; if not, you would also need to install Orbot VPN on the device.
Which you choose is a personal decision; however, if you plan to make the node public, I recommend using Tor. If you decide to use a clearnet connection, follow the same steps as above but start Monerod under the “Clearnet Networks” heading.
Once the block download is complete, check if an update to Monero is available. If you see “Update Available: true” on your status dashboard, then Monero needs to be updated before doing anything else.
Select “Web Terminal” from the dashboard menu or SSH back in with your preferred software & select “Update Tools“. Select the first option, “Update Monero“. This is a significant update & will take a couple of hours to complete.
Before the update begins, you’re asked whether or not your device has 2GB of memory available. The system can artificially create more memory using a swap file, but since your RockPro64 has 4GB of LDDR4 memory, you can select ‘Yes‘ from the menu to continue.
Now Monero is updated, you can connect your wallet. My favourite wallet is Monerujo which I highly recommend. Once you have configured a wallet, you can add your node using the RPC username & password you created earlier & either your Tor onion address, noip hostname or your network’s public IP address, depending on which method you used. Your wallet should immediately begin to synchronise data from your node.
You also have access to your own personal Monero Explorer. Select “Block Explorer” from the dashboard menu, then press the “Start Explorer” button. After a few seconds, press the “Block Explorer” button below & PinodeXMR will forward you to your personal Monero Explorer.
Many other valuable tools are built into PiNodeXMR, including P2Pool Mining, Monero-LWS & even I2P. There’s far too much to detail here, but if you followed the guide, you should have a perfectly functioning Monero node running on the powerful RockPro64 single-board computer.
You can purchase a RockPro64 directly from Pine64’s website.