Guide | How to run your own Monero node
Running your own monero node has many benefits and this guide will teach you how.
Last updated
Running your own monero node has many benefits and this guide will teach you how.
Last updated
To independently have the ability to send/receive/verify transactions while maintaining the highest privacy and security, you will want to run your own node.
If you do not run your own node, you are relying on other's nodes to verify and send your transactions.
To contribute to the decentralization of the Monero network.
To use a monero wallet requires connecting to a fully synched node. Best node is your own.
To connect to the monero network, you run a peer-to-peer application called monerod (the d stands for daemon) and it forms the backbone of the Monero network.
Optional: Offering your node as a public remote note is to volunteer your node as a public resource by helping onboard new monero nodes and relay other monero users transactions.
Monero nodes come in two flavours.
Full Node: Stores all blockchain data
Pruned Node: Stores a random 1/8th of the blockchain's data and requires much less disk space
Dual-core CPU
4+ GB RAM
160GB+ SSD HD
Same as full node yet with a smaller HD
80GB+ SSD HD
As of early 2021, a pruned node uses 32GB and a full node uses 96GB of storage space.
Recommendation: the Public Full Node with port 18089, a restricted RPC port, is the best option to support the Monero network while allowing yourself and others to use it as a remote node for wallets. Following intructions in this guide, you will implement a monero node in this configuration. Adjust ports accordingly if you want more restricted behavior.
Setup service accounts.
Create some folders the service needs & set their ownership:
Download the latest monero node binaries.
Verify the download hash signature.
A match appears and this confirms the file is valid.
Example output:
hashes.txt:b566652c5281970c6137c27dd15002fe6d4c9230bc37d81545b2f36c16e7d476 monero-linux-x64-v0.17.1.8.tar.bz2
Extract tar and copy to /usr/local/bin
Cleanup files.
Configure your Monero Node with a config file.
Add this to the file.
Configuration File Comments
Modify prune-blockchain
to false
if you want to store full blockchain
Modify public-node
to false
if you do not want other users to use your node.
rpc-restricted-bind-ip/port flags
enable restricted access to your node but allow full RPC from other Monero wallets on your LAN.
Limit the upload speed in case you have a data cap: limit-rate-up=8192
(in kB/s). Conversely, if you have an unlimited data plan, consider increasing the upload speeds to better support the Monero network. A node can typically use up to 1TB traffic per month.
Create a monerod.service
systemd unit file. Simply copy and paste the following.
Move the file to /etc/systemd/system/monerod.service
Restart monerod in order for config change to take effect.
Check the systemd service with
Review the logs for any errors. CTRL + C to exit.
Allow the node to sync. This may take a few hours up to a few days depending on your node's system resources.
Your node is completely synchronized the node status says height: n / n 100% and has the same block height as a public xmr block explorer such as https://blockchair.com/monero or http://xmrchain.net/
Check your node's block height with the following command.
Like winning a lotto ticket, your monero node has a chance to mine a block. You may never win a block but your hashrate helps protect and strengthen the network.
Start with 1 thread, check your mining hashrate and increase if your CPU resources allow.
Run the following command.
Download I2p.
Setup service accounts.
Create a i2pzero.service
systemd unit file. Simply copy and paste the following.
Move the file to /etc/systemd/system/i2pzero.service
Check the logs.
Restart i2pzero in order for config change to take effect.
Based on the status, open the port <NUMBER> on your firewall for best performance.
For best performance, please open port <NUMBER> on your firewall for incoming UDP and TCP connections. This port has been randomly assigned to you. For privacy reasons, please do not share this port with others.
Append the following to your monerod config file.
Open the i2p port.
Restart monerod.
When a new release is cut, you will want to update to the latest stable release. The following shows you how to update your monero node.
Review release notes and check for breaking changes/features.
https://github.com/monero-project/monero/releases
Download the latest monero node binaries.
Verify the download hash signature.
A match appears and this confirms the file is valid.
Also check the new version number matches your expectations.
Example output:
hashes.txt:b566652c5281970c6137c27dd15002fe6d4c9230bc37d81545b2f36c16e7d476 monero-linux-x64-v0.17.1.8.tar.bz2
Extract tar file.
Stop, copy new binaries and restart monerod service.
Check the logs to verify the services are working properly and ensure there are no errors.
Review the logs for any errors. CTRL + C to exit.
Cleanup files.
Connect to your brand new node with your favorite clients such as Monerujo, CakeWallet or Monero-GUI. Simply enter your node's IP or hostname into the remote node field. Congrats!