⛏️ Fair CPU pool mining introduction
Monero (XMR) is one of the only projects
which offer a way of mining in a pool as it should be implemented,
with P2Pool:
- Fair - Instant payouts according to your share.
- Decentralized - No pool owners - No centralized party handling the P2Pool.
- Decentralized - Pool participants - Due to the RandomX algorithm being used, no specialized Antic miners can be built for XMR. Meaning that an average Joe can still participate and earn shares with their CPU.
- Private - XMR itself continuously aims for the best possible privacy cryptography can offer.
Source Code / Links:
- Gupax: A GUI (Graphical User Interface),
to easily mine Monero on P2Pool using XMRig
https://github.com/hinto-janai/gupax
https://gupax.io/ - P2Pool: Peer to peer pool, truly decentralized pool for Monero mining
https://github.com/SChernykh/p2pool
https://p2pool.io/mini/#pool
https://p2pool.io/#pool - XMRig: RandomX, KawPow, CryptoNight and GhostRider unified CPU/GPU miner
https://github.com/xmrig/xmrig
https://xmrig.com/ - RandomX: Proof of work algorithm based on random code execution
https://github.com/tevador/RandomX - Monero: The secure, private, untraceable cryptocurrency
https://github.com/monero-project/monero
https://www.getmonero.org/ - Monero GUI: Official Monero GUI, for wallet, miner and monerod node
https://github.com/monero-project/monero-gui - P2Pool Observer: Monitor various P2Pool stats
https://mini.p2pool.observer/
https://p2pool.observer - XMRvsBeast: Enter a free lottery, only for participating XMR miners,
to win a chance of a short, but serious boost in your hash-rate / payouts!
https://xmrvsbeast.com/p2pool/ - Monero Fail: An extensive list of publicly hosted monerod nodes
https://monero.fail/
⛏️ Fair CPU pool mining guide
This guide will help you setting up a fair Monero miner,
please note, that you still will have to create your own config files for:
Gupax, P2Pool and XMRig
- Use Monero GUI to create a wallet
- Use Monero GUI to run your own monerod instance (Monero Node daemon),
configure following startup flags under:
Monero GUI => Settings => Node => Daemon startup flags:--zmq-pub=tcp://127.0.0.1:18083 --out-peers 32 --in-peers 64 --add-priority-node=p2pmd.xmrvsbeast.com:18081 --add-priority-node=nodes.hashvault.pro:18081 --disable-dns-checkpoints --enable-dns-blocklist --prune-blockchain --sync-pruned-blocks --db-sync-mode=safe --log-level 1
These startup flags will help with:
- Blocking malicious nodes
- Keeping your copy of the blockchain as small as possible
- Provide logging incase a
priority-node
goes down
(Use Monero Fail for replacements)
- Configure the P2Pool + XMRig binary paths in Gupax under:
Gupax => Gupax => P2Pool/XMRig PATHs - Use Gupax to run P2Pool,
connect to your local monerod instance by configuring P2Pool as following:
Gupax => P2Pool => P2Pool Mini => Fill in the following:Name = Local Monero Node IP = 127.0.0.1 RPC = 18081 ZMQ = 18083 Out-peers = 32 In-peers = 64
- Use Gupax to run XMRig,
connect to your local P2Pool as following:
Gupax => XMRig => Command arguments (configure--threads
as desired):-c config.json -o 127.0.0.1:3333 --http-host 127.0.0.1 --http-port 18088 --threads 30
This will make it possible to load a config.json
file from the same directory as the XMRig binary
Notes
- If you're gonna run on normal end-user hardware (e.g. Desktop/Laptop/Smartphone), then I'd recommend to mine on P2Pool Mini instead of the main P2Pool
- Your P2Pool wallet adress is public, periodically move mined funds to a new, truly private XMR wallet
- My use-case? I mine to support the cause and to earn a little back from heating my room during winter times 😄
Note: For some reason, starting from v3.7, p2pool docs say
--out-peers 32 --in-peers 64
(in is bigger); probably just typos. The doc also says: “If your network connection's upload bandwidth is less than 10 Mbit,” use 16 & 8 instead.For the sake of fairness and transparency: 1% of your hashrate will be “donated” if you use an official Xmrig binary file. However, it is free software and you’re free to study how the program works, and change it anyway as you wish, if you’d like to.
While doing this periodically is not absolutely necessary, there is some practical consideration: when there are many, many coins in your wallet, it’s technically impossible for you to spend (send) them in one go. If this situation ever happens to you, just send funds little by little (output will be consolidated). Feather Wallet may be convenient, where you can see and control individual coins, just like in Electrum. Happy studying, happy ethical hacking, happy mining, and happy holidays! Have happiness that money can’t buy :)
Oh did not know that, will alter the post accordingly!
Did a little digging as to why, and found the commit which changed it 🙂
Commit message:
Documentation: recommend more in-peers - This will balance out peers which can only have outgoing connections.
https://github.com/SChernykh/p2pool/commit/7b02c3d24a43b922b2568c883009df40e4aab013
There are donation-less builds floating around, which I will not link, out of respect for the XMRig dev.
Thank you for your comment, wishing you happy holidays as well! 🎁
Ah, incoming is now bigger intentionally! Thanks for sharing this :)
I wouldn’t recommend a random build “floating around”, not because doing so is disrespectful to the original dev, but because it might be dangerous.
If a random anonymous person A says, “Use this build B. It’s better!” and a user C does so without suspecting a thing, C is likely to be in big trouble sooner or later: even if A is an ethical hacker and B is a good build, such a mental attitude of C seems dangerous, especially when the tool is crypto-related. Because Person A could trivially share good source code (donation just commented out), but compiled different (evil) source code and share them with the said good code 😓
If 1% is big for you, or you have privacy concerns about remote connections for donation, well, you might want to think about something obvious: blocking remote connections is easy when xmrig just needs to talk to 127.0.0.1.