Practice › Your own node

Your own node

Why run monerod, what hardware you need and how to configure it

In short

Your own node is monerod downloading and independently verifying the whole blockchain. A wallet connected to your own node reveals your IP to nobody and trusts nobody else's data. You need: a 64-bit 2–4-core CPU, 4–8 GB RAM, an SSD with ~100 GB (pruned) or ~250 GB (full; figures as of January 2026, growing), and a stable internet connection.

Why

  • Privacy: a remote node sees your IP and when you send transactions. Your own doesn't.
  • Trust: you check all the rules yourself — emission, signatures, proofs. Nobody can feed you a fake history.
  • Helping the network: a public node serves blocks to others and can serve wallets (restricted RPC).
  • Mining via P2Pool requires your own node.

Hardware requirements

Minimum (pruned)Comfortable (full)
CPU64-bit, 2 cores (a Raspberry Pi 4/5 works)4+ x86-64 cores — faster initial sync
RAM4 GB8 GB+
DiskSSD ~100 GB + headroomSSD/NVMe ~250 GB + headroom for growth
Networkunmetered; initial download ≈ database sizeopen port 18080 for incoming peers
Initial synca day to several dayshours to a day on a good NVMe
An HDD is a bad idea

The LMDB database does a huge number of random reads. On a spinning disk sync can take weeks. If you only have an HDD, use pruned mode and be patient.

Full or pruned

A pruned node keeps everything needed to verify new blocks but discards 7/8 of the "prunable" data of old transactions (signatures and proofs — see transaction structure). It fully verifies the chain while syncing and is fully suitable for your own wallet. Savings: about two thirds of the space. The only difference is that a pruned node can't serve the full history to others.

Quick start

  1. Download the CLI archive from getmonero.org/downloads and verify the hash (hashes.txt, signed by binaryFate).
  2. Run:
./monerod --prune-blockchain --enable-dns-blocklist

Data goes to ~/.bitmonero (Linux/macOS) or C:\ProgramData\bitmonero (Windows). Progress shows in the log; the interactive console accepts status, sync_info, print_height, exit.

The wallet connects to 127.0.0.1:18081 — in Feather/GUI that's the "Node" setting.

Config file

Instead of a long command line, use ~/.bitmonero/bitmonero.conf:

# data and pruning
data-dir=/var/lib/monero
prune-blockchain=1
db-sync-mode=safe

# P2P
p2p-bind-ip=0.0.0.0
p2p-bind-port=18080
out-peers=32
in-peers=64
enable-dns-blocklist=1
no-igd=1

# RPC for yourself only (full access)
rpc-bind-ip=127.0.0.1
rpc-bind-port=18081

# public restricted RPC for others' wallets (optional)
rpc-restricted-bind-ip=0.0.0.0
rpc-restricted-bind-port=18089
public-node=1
confirm-external-bind=1

# ZMQ for P2Pool (optional)
zmq-pub=tcp://127.0.0.1:18083

# send your own transactions via Tor (needs a running tor)
# tx-proxy=tor,127.0.0.1:9050,16

Ports

PortPurposeOpen to the internet?
18080P2P between nodesYes, if you want to help the network (incoming peers)
18081Full RPC (node control)No, localhost only
18089Restricted RPC (convention) for walletsOptional — for a public node
18082 / 18083ZMQ RPC / ZMQ pub (P2Pool)No

Running as a service (Linux, systemd)

[Unit]
Description=Monero daemon
After=network-online.target

[Service]
User=monero
ExecStart=/opt/monero/monerod --config-file /etc/monero/bitmonero.conf --non-interactive
Restart=on-failure
RestartSec=30

[Install]
WantedBy=multi-user.target

Save as /etc/systemd/system/monerod.service, then systemctl enable --now monerod. Status: /opt/monero/monerod status (the command connects to the RPC by itself).

Over Tor: a hidden service

You can make the node reachable as a .onion — for your own wallets on the go, without opening ports to the internet. Add a hidden service on port 18089 to torrc, and to the monerod config add anonymous-inbound=your.onion:18083,127.0.0.1:18083,24 for P2P over Tor. Detailed instructions are in ANONYMITY_NETWORKS.md in the Monero archive.

Maintenance

  • Update before every hard fork (especially FCMP++) — otherwise the node stays on the old chain.
  • An already-synced full database can be pruned with monero-blockchain-prune (see binaries).
  • Watch disk space: if LMDB fills the disk, the node stops.