Mining Monero
You can mine Monero on just about any device: an old PC or laptop, a smartphone, a linux PinePhone, and even a Steam Deck! That doesn't mean Monero mining will be lucrative; in fact, I don't think I have ever broken even, when I calculate in electricity and other costs.
What is gained is a first-hand understanding of blockchain technology. When faced with downloading the entire ledger for Monero, which is now close to 200 GB, the power and responsibility of decentralised, private currency management becomes much more clear. Or, when the heat fans spin up on your PC when mining starts, you really get a sense of the work it takes to find a new block.
In this article, I will first describe the most simple method I found for mining, which was using Monero Wallet GUI; how that easy first step led me to learn more about and become comfortable with the process; and how that led to me using Monero Wallet, P2Pool and XMRig today.
Key terms
My blog is diary in which I describe my experiences with privacy tools. For tutorials and guides, please see the 'Documentation' section.
Before I start, a few key terms need to be defined:
local node
As I describe in the post Discovering Monero, crypto currencies work with decentralised ledgers that securely document your transactions and money.
If I want to see how much fiat currency I have in my bank account, I need to sign in and check with them. The bank's centralised ledger is where these records are kept.
With a cryptocurrency like Monero, every XMR holder can download their own copy of the ledger, or the Monero blockchain. This is your Monero 'node'.
When you download and maintain (sync) a full copy of the node to your own device, then you are running a local node.
pruned local node
The full node is large (around 175GB on my device today) and growing as more blocks are found. You can download a 'pruned' node if you don't have enough space. This is about 1/3 the size of the full node, but you can still sync your wallet, make transactions, and even mine with a pruned node.
remote node
If you don't have any space on your device, you can connect to a remote node. The wallet software tells you to just search for a 'Monero remote node' in your search engine, but also warns about the extra level of trust involved in doing so.
I believe there are some remote nodes that enable mining for a fee, but here I will only describe mining on a local full or pruned node.
wallet
A wallet is a digital key for accessing and storing Monero. A wallet is not dependent on any specific app or software, but can be revived with the seed phrase. It's even possible to create a wallet while offline!
If you want to try mining Monero, you'll need to create a new wallet just for that purpose, because the commonly used method exposes your wallet address.
GUI
Stands for Graphical User Interface. See here for more information.
CLI
Stands for command-line interface. Using the command terminal gives a user more options.
Monero Wallet GUI, once downloaded, can be run with terminal commands.
Monero Wallet CLI does not have a graphical interface and can only be run with commands.
wallet seed phrase
This is the 25 word pneumonic phrase that you need to reboot your wallet, anywhere. This phrase is the key to your funds, so must be kept secret. If you lose the phrase, you lose your money.
wallet restore height
This is a number that indicates what the size of the blockchain was when you created your wallet. While I think it is possible to restore wallets just using the seed phrase, having the restore height makes the process much faster.
hash rate
This is the speed with which your particular device and CPU (or GPU) can do the mathematical work required to discover a block.
solo mining
When solo mining, your computer has a go at discovering the next block by doing calculations. Finding a block leads to a reward, just for you. The chance of finding a block is fairly slim and depends on your hash rate. I've read it can take months or more than a year to discover a block using solo mining.
pool mining
With pool mining, a community of miners works together to find the next block. This increases the discovery rate, but naturally decreases the finder's fee, as that has to be divided over all the participating miners. Some pools charge a participation fee as well.
P2Pool mining
The pool/software that I see recommended often is called P2Pool. Participation does not require a fee, nor is there a danger of the pool becoming dangerously dominant when too many miners use the same pool. It is described as the ideal middle ground between solo and pool mining.
For more terms, see this handy 'Moneropedia' glossary on the getmonero.org site.
Mining with Monero Wallet GUI - the simplest way
The simplest way to start mining is by downloading the Monero Wallet GUI software to your device. It contains everything you need to start mining. Monero Guides has an excellent tutorial video showing you how to download and install the Monero Wallet GUI software, create a wallet for mining, and start mining.
The easiest way is to set up solo mining with your local or pruned node. While this doesn't give you the best chance for success with a normal (as opposed to a state-of-the-art) PC, it still teaches you the process: namely that the node, full or pruned, has to be synced with the Monero blockchain first (which can take days!) and that mining can start from that point on. Your wallet status will say 'Synced & Mining'.
A more effective method is to use the wallet for pool mining. When starting up mining under the 'Advanced' tab (as described in the tutorial video) you can select 'P2Pool' instead of 'Solo' in the drop down menu. This will lead to a download and requires a restart of the wallet, but is easy to do.
With a regular PC, it is recommended to select P2Pool mini.
When set up like this, you should begin to see very small amounts of XMR trickle into your wallet. On my old-ish PC, I sometimes see three or more rewards of a few cents in a day, and other times nothing for two or three days.
Mining in three stages
Again, this will be a description rather than a full detailed guide.
Mining Monero with the GUI wallet enabled me to get over the hurdle of thinking I didn't have enough IT savvy for crypto mining. Once it was all up-and-running, however, I could begin to explore the process in more detail, which eventually led me to:
- start over on a dedicated PC rather than than using my daily laptop
- download the full node onto a large external drive
- learn how to access my mining computer from the command terminal on my laptop using the
ssh
command - learn how to add additional instructions to the commands when starting up the node and the mining
- learn how to download and manage P2Pool and a miner called XMRig separate from the wallet software
I began mining in three stages using command line. This essentially recreates what is happening behind the scenes with Monero Wallet GUI mining, but with greater control and speed.
- In the first terminal window, I run a command that starts up the node and tells it how to find the copy Monero blockchain on my device.
- In a second terminal window, I run the P2Pool command with some parameters, so P2Pool mining can take place
- In the third window, I run a simple miner called XMRig
XMRig allows any other device connected to the home network to join in on the fun. One of my kids became interested, and we downloaded XMRig on that laptop. When my Steam Deck arrived last year, it took just a few minutes to download XMRig and start mining in its OS.
Keep in mind that any earnings only go to the one wallet you set up for mining at the beginning.
Screen to the rescue
Managing all these open terminals via ssh was a bit cumbersome, but then I discovered a tool called screen
. It lets you set up separate virtual 'tabs' within one terminal window. When you log out of screen
and close the terminal you were running it on, the mining processes you keep going, and you can jump back into them any time to check their statuses, for example. This is a neat solution when mining on a separate, dedicated device!
Checking earnings
There are sites where you can check how your P2Pool mining is going. See the 'Documents' section below. There is also an extra P2Pool mining raffle you can participate in.
I use the Cake Wallet app on my phone to check how my mining wallet is doing. It gives a quick overview of the total and incremental earnings.
I earn very little (and in fact, lose money, if I include electricity costs) but I have paid for my Mullvad VPN subscription with Monero that I mined myself.
Other all-in-one solutions
Given its complexity, there are developers who have tried to simplify lower the barrier to mining by combining the three elements (maintaining a node, connecting to a pool, mining) into a single tool:
- Gupax (description from the developer):
Gupax is a cross-platform GUI for P2Pool+XMRig. I was really happy when Monero GUI implemented P2Pool directly (many users seem to be using it) however, the embedded miner is slower than the dedicated XMRig miner. Unfortunately, integrating XMRig directly into Monero GUI is a no-go mainly due to anti-virus issues. Personally, I also think keeping Monero GUI's scope simple (monerod+wallet) is the way forward. Either that, or a properly implemented plugin system.
Gupax is a completely seperate GUI that can act as a companion alongside Monero GUI. One window with monerod+wallet, and another for P2Pool mining (with XMRig used for max hashrate!). It can act standalone as well, connecting to a remote node so no Monero node is needed.
It's interesting to note that Gupax doesn't require a local node!
This gets you 2/3 of the way there. All you still have to do is install a miner like XMRig on any device on your local network and start mining. The project began with small devices like Raspberry Pis in mind, but should work on laptops too.
- Monero Nodo (hardware!)
Brought to you by Co-Founders Douglas Tuman and Abdullah Khan, Monero Nodo was envisaged from the start as a portable, fast, reliable and dedicated Monero Node that requires low power and could run 24/7.
This is an all-in-one piece of hardware that will run a local node. It is due to go on sale this year. The website states the Nodo will enable the user to 'Mine Monero using P2Pool', so it'll be interesting to see how that works.
I must emphasise that the only all-in-one solution for mining I have experience with is Monero Wallet GUI.
Problems
Because crypto is such a fast-moving experience, great guides and tutorials quickly become outdated.
Running a node and mining is never a 'set-and-forget' experience. When updates become available, you have to update on your end, manually. While I haven't tried his approach, perhaps Seth for Privacy's approach using Docker (on Linux) makes software management simpler.
The press of the wrong button, forgetting to tick a box, or leaving out the part of a terminal command that tells the software where your copy of the blockchain is saved, can lead to your PC attempting to download of the entire 175 GB node in a default location on your device.
The guides are good, but prepare to reach out to other miners on platforms. On mainstream OSs like Windows, a firewall can make things difficult. I had some complications with setting the correct permissions to an external drive. Most of these problems were eventually resolved with the help of real people.
Opening ports on your modem is always described as optional but helpful (for efficiency, for supporting the network). However, as a non-technical person, it can make you feel like you are out of your depth.
Related to the above, at one point my data usage spiked immensely. My IP provider began sending warnings and reducing the modem download speeds for the whole family. I later learned how to limit data access to my node.
Mining is noisy, even on a dedicated computer.
I do things manually, which takes time. I have a lot of step-by-step notes on mining on my computer, and I use them often. There probably is a way to automate all of this, but find it helpful to actively engage with my system, so I don't forget what the commands and extra parameters mean.
Conclusions
While mining Monero may not be lucrative, it is one of the most interesting projects I have worked on. For me, theoretical descriptions of blockchain technology can't compete with hands-on practical experience. It has sometimes been frustrating and time-consuming, but I have always been able to find good help online.
Decentralisation only works if people get involved. By connecting your full or pruned Monero node to the network, you're making that network more robust. There are various ways to open ports on your router and give the community of Monero users access to your node, but proceed with caution and keep an eye on your data use.
Finally, by mining Monero yourself, your PC is contributing to the Monero project by helping create the next blocks in the chain. The effect may feel small, but if lots of regular users do this, it will add up to a powerful network of normal people supporting the Monero network.
Documentation
Top recommendation:
Mining Monero; P2Pool quickstart guide (from p2pool.io) note: read the comments for updated info
The rest
Guide for the Monero GUI Wallet
How to solo mine with Monero GUI
Blockchain size and growth note: to calculate to GB, divide the current size (at the bottom of the list) by 1024. This currently gives 129 GB, so I would add another 50GB to be safe. My node is 175 GB today.
P2pool and P2pool mini - great guides!
P2pool observer and P2pool mini observer
Seth for Privacy's Guide a slightly different approach, using Docker
getmonero.org a general Monero info site
All-in-one solutions
And finally, a potential weakness with Monero's decentralised network, as I see it: Is Human Psychology Monero's Achilles' Heel?
-----Discuss on Reddit-----
Subscribe to my blog via email or RSS feed.
Find me on Mastodon and Twitter.
Back to Blog