How to run a Monero node
Share
This is a guide on how to install and setup a Monero node on Linux. This is a simple installation of the node, downloading the entire blockchain. I might do another blog in the future on how to install the node over Tor.
You'll need at least 250 GB of available storage. I chose to install it on an external 1 TB SATA 2.5" SSD formatted with ext4. I do not recommend using a HDD since syncing and memory access is slower.
Go to getmonero.org and download the Monero CLI wallet. Download the correct file for your device. If you are not sure what file to download, you can run the following command to know the architecture of your device:
uname -m
Once you download the correct binary file, I do not recommend to open and extract immediately. Malicious code can be (and has been) hooked on the website so you'll want to make sure that the file you downloaded is in fact the real binary from the Monero development team.
If you're feeling lucky, you can skip to the section where the binary file is finally extracted.
How to use the command line to verify your Monero CLI software
Go to Verify and Import Signing Key. Open a terminal in the same folder where you have the binary file that you just downloaded. Run the following command to hash the binary file (change the file name if needed):
shasum -a 256 monero-linux-x64-v0.18.4.1.tar.bz2
This will return an alphanumeric chain (e.g. 702ccb799c24160c0c76676d7a5b21a7e3432be47294d20e0a75451592f591b2). This should be the same as the hash shown in the Monero CLI wallet page (Verify → Show hashes to verify your download) for the binary file that you downloaded
Download binaryFate's signing key by issuing the following command:
wget -O binaryfate.asc
https://raw.githubusercontent.com/monero-project/monero/master/utils/gpg_keys/binaryfate.asc
Verify the Signing Key
Once you have the binary file, check the fingerprint of binaryfate.asc by issuing the following command in the terminal:
gpg --keyid-format long --with-fingerprint binaryfate.asc
Compare the output and verify that the key fingerprint matched the one in getmonero.org. The output should look like this:
gpg: WARNING: no command supplied. Trying to guess what you mean ...
pub rsa4096/F0AF4D462A0BDF92 2019-12-12 [SCEA]
Key fingerprint = 81AC 591F E9C4 B65C 5806 AFC3 F0AF 4D46 2A0B DF92
uid binaryFate
sub rsa4096/2593838EABB1F655 2019-12-12 [SEA]
This should be enough unless an attacker has compromised both the GitHub and the getmonero.org website. At the time that I'm writing this blog, the file in the Monero GitHub was uploaded on Dec 13, 2019.
Import the signing key:
gpg --import binaryfate.asc
The output should look like this if this is your first time importing the key:
gpg: key F0AF4D462A0BDF92: 2 signatures not checked due to missing keys
gpg: key F0AF4D462A0BDF92: public key "binaryFate " imported
gpg: Total number processed: 1
gpg: imported: 1
gpg: marginals needed: 3 completes needed: 1 trust model: pgp
Download and Verify Hash File
Download the signed hashes file by issuing the following command:
wget -O hashes.txt https://www.getmonero.org/downloads/hashes.txt
Then verify the hashes.txt file by running:
gpg --verify hashes.txt
If the file is authentic, the output will look like this:
gpg: using RSA key 81AC591FE9C4B65C5806AFC3F0AF4D462A0BDF92
gpg: Good signature from "binaryFate " [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 81AC 591F E9C4 B65C 5806 AFC3 F0AF 4D46 2A0B DF92
Now you can hash the binary file you downloaded at the beginning again and compare the output with the hashes in hashes.txt
shasum -a 256 monero-linux-x64-v0.18.4.1.tar.bz2
If the keys match the file you downloaded, congratulations! You're not getting hacked.
Extract the Binary File and Download the Monero Blockchain
In the download folder, run the following command to extract the binary file
tar -xvjf monero-linux-x64-v0.18.4.1.tar.bz2
Go into the extracted file:
cd monero-x86_64-linux-gnu-v0.18.4.1/
Download the Monero blockchain to the directory you would like (in my case it was an external SSD)
sudo ./monerod --data-dir=/REPLACE-WITH-THE-PATH
You should see something like this once the blockchain starts downloading:

I'm not quite sure why I was getting a connection error on one of my ports, this is a none critical issue so it doesn't affect anything. Either way, if this happens to you and you would like to get rid of it, you can change the file resolve.conf like this (/etc/resolve.conf):
# Generated by NetworkManager
nameserver 192.168.1.1
nameserver 8.8.8.8
nameserver 1.1.1.1
# nameserver fe80::1%wlan0
It can take from several hours to a few days to download the entire blockchain depending on your internet speed and the type of memory device you are using. To run the node after it's done installing (assuming you closed the terminal or restarted your device) you can use the following command to start the node again (use ctrl+c to exit):
sudo ./monerod --data-dir=/REPLACE-WITH-THE-PATH
