Decentralized pool for Monero mining.
NOTE This is a highly experimental and untested software. I did some extensive testing locally, but there's zero guarantee it will work for you! It requires a custom monerod version and a specially configured Monero wallet (for now). No binaries or usage instructions are provided yet. Testing on testnet will start soon! No ETA on the official release date, but hopefully before the end of September 2021.
- Decentralized: no central server that can be shutdown/blocked. P2Pool uses a separate blockchain to merge mine with Monero. Pool admin can't go rogue or be pressured to do an attack on the network because there is no pool admin!
- Permissionless: there is no one to decide who can mine on the pool and who can't.
- Trustless: there is no pool wallet, funds are never in custody. All pool blocks pay out to miners immediately.
- PPLNS payout scheme
- 0% fee
- 0 XMR payout fee
- Less than 0.0005 XMR minimal payout
- Fast block times, down to 1 second
- Uncle blocks are supported to avoid orphans - all your shares will be accounted for!
- Configurable PPLNS window size and block time
- Advanced mempool picking algorithm, it creates blocks with better reward than what monerod solo mining does
- Password protected private pools
How PPLNS works in P2Pool
First you need to find a pool share. This share will stay in PPLNS window for 2160 pool blocks (6 hours). The moment P2Pool finds a Monero block and you have at least 1 pool share in PPLNS window, you'll get a payout! Monero block reward is split between all miner wallets in PPLNS window. Each miner gets a part of block reward proportional to the total difficulty of his/her shares in PPLNS window.
NOTE If P2Pool doesn't have enough hashrate to find Monero blocks faster than every 6 hours on average (~15 MH/s), not all pool shares will result in a payout. But in the long run, your payouts will average out to what you'd get with regular pool mining.
Default P2Pool parameters
- Block time: 10 seconds
- PPLNS window: 2160 blocks (6 hours)
- Minimum payout = Monero block reward/2160, currently ~0.0004 XMR
sudo apt update && sudo apt install git build-essential cmake libuv1-dev libzmq3-dev libsodium-dev libpgm-dev libnorm-dev libgss-dev git clone https://github.com/SChernykh/p2pool cd p2pool mkdir build && cd build cmake .. make -j$(nproc)
monerod binary compatible with p2pool:
sudo apt update && sudo apt install git build-essential cmake pkg-config libssl-dev libzmq3-dev libunbound-dev libsodium-dev libunwind8-dev liblzma-dev libreadline6-dev libldns-dev libexpat1-dev libpgm-dev qttools5-dev-tools libhidapi-dev libusb-1.0-0-dev libprotobuf-dev protobuf-compiler libudev-dev libboost-chrono-dev libboost-date-time-dev libboost-filesystem-dev libboost-locale-dev libboost-program-options-dev libboost-regex-dev libboost-serialization-dev libboost-system-dev libboost-thread-dev ccache doxygen graphviz git clone https://github.com/SChernykh/monero cd monero git checkout zmq-changes git submodule init && git submodule update make -j$(nproc)
How to test
If you'd like to support further development of Monero P2Pool, you're welcome to send any amount of XMR to the following address: