Monero is a secure, untraceable and resilient digital currency. We believe it is the successor to Bitcoin. Read why.

How to Run a Monero Node

Last updated on
Nodes are an important part of the Monero network infrastructure. Nodes simply store a copy of the blockchain. They can optionally be configured to share this information with other nodes and clients. Running a node is the only way to get the highest level of privacy and security when connecting to the Monero network. In Monero, the program for running a full node is called the “daemon”.

Running a full node will use a decent amount of storage (currently ~30GB, increasing over time) and bandwidth. It will likely take several days to sync the entire blockchain from scratch, even if you have fast hard drive and a fast connection. The amount of bandwidth used will vary based on your internet speed and other settings. The commands to configure these settings are at the end of the guide. Monthly bandwidth use can vary from about one hundred gigabytes per month to several terabytes.

Many people run the daemon from a terminal interface, especially if they are running a VPS. You may also want to do this if you want to stay in-sync without keeping the wallet open.

This guide will cover using Windows, Mac, and Linux. This assumes you have a 64-bit operating system. If your computer was made since 2005, it is likely 64-bit.

If You Already Have the GUI Running (All Operating Systems)

If you are running the official Monero GUI, it will prompt you to run the daemon locally by default. This is the same as running a full node. Specify “localhost” as the daemon address in settings and click “start daemon”. You can manually specify daemon options in the “daemon startup flags” if desired. The GUI should start and stop the daemon process automatically.

Run a Monero Node on Windows

Download the latest version from here.

Extract the contents of the .zip file that is downloaded. To do this, you can simply double-click on the .zip file, click on the extract tab in the ribbon, and then the “extract all” option. Choose a folder to extract these to, making sure to remember it.

You can run the daemon with all the default options by simply running “monerod.exe”. If you would like to include options, it’s best to create a batch file.

To create a batch file, open notepad by searching for it in the start menu. Type in the following:
monerod.exe
Append additional options after monerod.exe. Eg: monerod.exe --limit 1000
monerod.exe --limit 1000
Save the file in the same folder that monerod.exe is located in. When saving, change the “save as type” to “all files (*.*)”. Name the file “Run monerod.bat”. The name can vary, but make sure that it ends in .bat.

You can run the daemon by double-clicking on the created .bat file. This will; run monerod.exe with the chosen options.

Run a Monero Node on Mac

Download the latest version from here.

Extract the contents of the downloaded file, and open a terminal by searching for it in applications. Navigate to the extracted file location. If you saved it to Documents, for example, use:
cd ~/Documents
Run the following command, appending additional options at the end if desired:
./monerod

Run a Monero Node on Linux (Ubuntu 16.04)

For the sake of this guide, working with local Ubuntu installations and VPS installations, it will use the terminal using root. If you are not using root, insert “sudo ” before commands if there are permission errors.

Start by downloading the Monero daemon files:
wget https://downloads.getmonero.org/cli/linux64
This will download a .tar.gz file that needs to be extracted. Create a new folder and extract it with the following two commands:
mkdir monero tar -xjvf linux64 -C monero
Navigate to the new folder with the extracted files. Note: the version number may change.
cd ./monero/ ls
The “ls” command will show another folder wherein the daemon files are contained. The folder should be named “monero-v0.11.1.0” or similar. Type this exact folder name that is shown as you navigate. It may be different than the exact command below if the version has changed!
cd ./monero-v0.11.1.0
You are now in the folder with the daemon files. You need to make sure the file is executable.
chmod +x ./monerod
You can now run the daemon. However, if you want to make sure it runs in the background, you should use screen. Screen is a program that allows a simple management of multiple terminals. Install the program:
apt-get install screen
Open a new terminal session for running the daemon:
screen -S monero
Navigate to the folder and run the daemon (appending options to the end if necessary):
./monerod
Do not close the terminal if you want the session to continue in the background. Instead, detach from the screen session. Hold the control key, press A, then D like so:
Ctrl + a + d
To reattach to the screen, use the following command:
screen -r monero

Opening Up the Monero Daemon

If you are familiar with torrents, downloading data from others is called “leaching”, and uploading data to others (contributing) is called “seeding”. With the Monero blockchain, this functions in a similar way. If you are on a firewalled network, you will only be “leaching” from the network. Let’s walk through how to set up your client so that you can contribute to the network!

The Monero daemon uses the following ports:
  • - 18080 TCP for incoming connections
  • - 18081 TCP for incoming RPC connections (can be configured to a different port with --rpc-bind-port)
  • - 53 UDP for DNS (optional)

If you are on a home network, the method to open ports will vary significantly based on the router you have. However, it comes down to giving the device running the daemon a static local IP address and opening up the desired ports. Search for your specific router model and instructions. There is likely another simple guide available to do this.

If you are on a hosted network (eg: VPS), the provider typically will have ports open, so all you may need to do is configure your firewall. For Ubuntu, you can use a tool called iptables. Install iptables and UFW if not already installed:
apt-get install iptables ufw
If using IPv6 (skip this command if you are not sure), run the following command and change the IPV6 line to IPV6=yes:
nano /etc/default/ufw
Open a specific port on the firewall with ufw allow [PORT]/[TYPE]. In this example, we will prepare the node to be compatible with MoneroWorld services, so we will open ports 18080 and 18089.
ufw allow 18080/tcp ufw allow 18089/tcp
If you are on a non-configurable network (eg: public WiFi, apartment with provided internet), you will need to communicate with your internet provider to open a port for you. They may have a process in place, or they may disallow open ports.

You should make your node contribute more to the Monero network if you can! We recommend participating in the MoneroWorld service.

Additional Monero Daemon Options

Below are some popular daemon options. Please ignore all brackets [] and the help text after #. You will need to replace these with your own values.
--rpc-bind-ip [IP ADDRESS] # Binds the daemon to an IP address. You need to use your external IP if you plan to access this daemon from outside the internal network, or an internal one if you only want it to work for devices in the same network. If you are unsure about whether to use internal or external, you most likely want to use the external IP address. You can find this by using the IP address the VPS provider gave you or by searching for it with a site such as ipleak.net. --rpc-bind-port [PORT] # Binds the daemon to a port. Keep in mind the daemon will be unsafe unless this option is also run with --restricted-rpc. The default option is 18081, though some services (such as MoneroWorld) use 18089. --restricted-rpc # Restricts the actions that external users can perform when they are connected to the node over RPC. You will typically want to use this option. --confirm-external-bind # A required verification if using RPC bind options. --rpc-login [USERNAME]:[PASSWORD] # Restricts use of the node to users who know the username and password. Make sure to use a strong password. --limit [KB/s] # Limits the total download and upload limit to a certain value in kilobytes per second. Eg: 128 would set the maximum upload and download speed to one megabit per second. --limit_up [KB/s] # Limits the total upload speed to a certain value in kilobytes per second. --limit_down [KB/s] # Limits the total download speed to a certain value in kilobytes per second. --data-dir [LOCATION] # Saves the blockchain to a manual location by file path. Can be used to save the blockchain in another folder on one hard drive or even another hard drive or flash drive. --db-sync-mode safe # Syncs the blockchain in a way that avoids corruption. This is much slower, so it’s typically best to run with the normal parameters without worrying about a very small chance of corruption. --out-peers [NUM] # Sets the max number of outgoing peers (ones you connect with). The default is 8. --block-sync-size [NUM] # Sets the number of batched blocks. The default is 20. If you are having issues syncing the blockchain, try reducing the number to 10. --db-salvage # Try using this command if your database becomes corrupt. --add-peer [IP]:[PORT] # Manually adds a peer by IP address and port.
Follow us
Exchange instantly
Sponsor
Latest Price
Sponsor
Monero.how Tutorials
Why Monero vs Bitcoin
Monero ELI5 (Explain like I'm five) - a super simple explanation of how Monero works
How Monero's privacy works
Monero Infographic
How long transactions take
Transaction fees
Glossary of the most important Monero terms
A low-level explanation of the mechanics of Monero vs Bitcoin in plain English
How to use the Monero GUI wallet
How to create a Monero command line wallet
How to speed up initial blockchain sync
How to send and receive Monero on the command line
How to prove you've made a payment
How to restore a command line wallet from your 25 word seed
How to verify your funds with a private view key
How to buy Monero
How to buy Monero via Coinbase
How to Buy Monero Using LocalMonero
How to Buy Monero Using Binance
Set up a Monero wallet on a USB pendrive linux computer using a remote daemon
How to mine Monero on Windows or Linux (Fedora or Ubuntu)
How to mine Monero with GPU
Monero mining calculator
How to run a Monero Node
Configure OpenAlias to more easily share your Monero address
How to Safely Hold Monero in Cold Storage
Create a paper wallet for secure offline storage
Display a Monero ticker on your Mac menu bar
Avoiding Google ad attacks
Trusted and untrusted sites
Send feedback, corrections or suggestions to hellomonero.how
Donations for running costs appreciated at 4JUdGzvrMFDWrUUwY3toJATSeNwjn54LkCnKBPRzDuhzi5vSepHfUckJNxRL2gjkNrSqtCoRUrEDAgRwsQvVCjZbRx8NCvspxJMRJcG69H
Thanks to Monero developers and community members that answered questions that contributed to the content in this site: jollymort, hyc, moneromoo, smooth, jwinterm, debruyne, fluffypony, pero, needmoney90, ferretinjapan, idunk, saddam, wolf0, daveyjones, snipa, gingeropolous, markos, othe, m5m400, luigi1111, kenshi84
Disclaimer: This site contains opinion for informational purposes only and does not consitute investment advice. Information may contain errors and omissions. Use solely at your own risk. Services listed here are run by third parties and are not vetted by this site. The authors of this site and/or the authors of articles linked to from this site may have financial investments that may bias their opinions, including ownership of Monero currency. Always do your own research, form your own opinions, and never take risks with money or trust third parties without verifying their credibility. Remember to take your computer security seriously and never use a computer or phone that is at risk of infection by untrusted software that may contain malware or viruses. © Copyright 2017.