⛏️ 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:

⛏️ 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

  1. Use Monero GUI to create a wallet
  2. 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)
  1. Configure the P2Pool + XMRig binary paths in Gupax under:
    Gupax => Gupax => P2Pool/XMRig PATHs
  2. 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
    
  3. 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 😄
  • Saki@monero.town
    link
    fedilink
    English
    arrow-up
    0
    ·
    1 year ago

    –out-peers 64 --in-peers 32

    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.


    Your P2Pool wallet adress is public, periodically move mined funds to a new, truly private XMR wallet

    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 :)

    • Rikj000@discuss.tchncs.deOP
      link
      fedilink
      English
      arrow-up
      0
      ·
      11 months ago

      Note: For some reason, starting from v3.7, p2pool docs say --out-peers 32 --in-peers 64 (in is bigger);
      probably just typos.

      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

      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.

      There are donation-less builds floating around, which I will not link, out of respect for the XMRig dev.

      Happy studying, happy ethical hacking, happy mining, and happy holidays! Have happiness that money can’t buy :)

      Thank you for your comment, wishing you happy holidays as well! 🎁

      • Saki@monero.town
        link
        fedilink
        English
        arrow-up
        1
        ·
        11 months ago

        Ah, incoming is now bigger intentionally! Thanks for sharing this :)

        donation-less builds floating around, which I will not link, out of respect for the XMRig dev.

        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.