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
Minimum Full Node System Requirements
Dual-core CPU
4+ GB RAM
160GB+ SSD HD
Minimum Pruned Node System Requirements
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.
#blockchain data / log locations
data-dir=/var/lib/monero
log-file=/var/log/monero/monero.log
#log options
log-level=0
max-log-file-size=0 # Prevent monerod from managing the log files; we want logrotate to take care of that
# P2P full node
p2p-bind-ip=0.0.0.0 # Bind to all interfaces (the default)
p2p-bind-port=18080 # Bind to default port
public-node=true # Advertises the RPC-restricted port over p2p peer lists
# rpc settings
rpc-restricted-bind-ip=0.0.0.0
rpc-restricted-bind-port=18089
# i2p settings
tx-proxy=i2p,127.0.0.1:8060
# node settings
prune-blockchain=true
db-sync-mode=safe # Slow but reliable db writes
enforce-dns-checkpointing=true
enable-dns-blocklist=true # Block known-malicious nodes
no-igd=true # Disable UPnP port mapping
no-zmq=true # ZMQ configuration
# bandwidth settings
out-peers=32 # This will enable much faster sync and tx awareness; the default 8 is suboptimal nowadays
in-peers=32 # The default is unlimited; we prefer to put a cap on this
limit-rate-up=1048576 # 1048576 kB/s == 1GB/s; a raise from default 2048 kB/s; contribute more to p2p network
limit-rate-down=1048576 # 1048576 kB/s == 1GB/s; a raise from default 8192 kB/s; allow for faster initial sync
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 flagsenable 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.
Allow the node to sync. This may take a few hours up to a few days depending on your node's system resources.
Check your node's block height with the following command.
monerod status
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.
monerod start_mining <YOUR XMR ADDRESS> <NUMBER OF THREADS>
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.
Your node is completely synchronized the node status says height:n / n100% and has the same block height as a public xmr block explorer such as or
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!