“I think P2Pool makes mining fun again.” -gmaxwell, Bitcoin Core Developer.
Typically a miners first question is how much and how often will I be rewarded for my work, and we will get to that in a moment... Before we do, there are some things you should be aware of, things that set P2Pool apart from any other mining pool. Things that make P2Pool awesome.
Unlike centralized mining pools, P2Pool is based on the same peer-2-peer (P2P) model as Bitcoin, making the pool as a whole highly resistant to malicious attacks, and preserving and protecting the decentralized nature of Bitcoin.
When you launch a P2Pool node; it seeks out, connects with, and shares data with a decentralized network of other P2Pool nodes (also known as peers). P2Pool nodes share a cryptographic chain of data representing value, similar to Bitcoin's Blockchain, the P2Pool version is called the Sharechain.
The table below shows some of the key differences between the two:
|Content||Length of chain||Expected time||Difficulty adjustment|
|Bitcoin blockchain||Bitcoin transactions||Complete; all blocks||10 Minutes||Every 2,016 blocks|
|P2Pool sharechain||Miner rewards||8,640 Shares||30 Seconds||Dynamic|
Shares that make it into the P2Pool sharechain are the same (cryptographically speaking) as blocks that make it into the Bitcoin blockchain, except that they have a lower difficulty target.
When a miners share is accepted by a P2Pool node it is broadcast on the P2P network to all the other nodes. If a majority of other nodes accept the share, it becomes confirmed in the sharechain. For your P2Pool node to accept and broadcast the share it must meet the minimum p2pool difficulty.
A P2Pool share that also meets the Bitcoin difficulty is broadcast to both P2Pool and Bitcoin peers, and if confirmed by the Bitcoin network becomes a block.
P2Pool miners are paid every time a block is found by the pool for any confirmed shares they currently have in the P2Pool sharechain.
This is known as a Pay Per Last N Shares (PPLNS) payout system, and is the mechanism P2Pool uses to both determine payouts and discourage pool hopping. In P2Pool the N in PPLNS is 8,640, each of the last 8,640 shares are paid each time a Bitcoin block is found. A share in the P2Pool sharechain can be expected to last about 3 days (8,640 shares * 30 seconds = 3 days).
Confirmed shares are valid, and paid whenever a block is found, for as long as they remain in the sharechain (about 3 days). Payouts in P2Pool are made immediately, directly from the block generation transaction. Newly generated coins require 100 confirmations before they can be spent, so P2Pool payouts cannot be spent for about 16.5 hours.
As a miner on P2Pool you are competing with other P2Pool miners for a portion of the 8,640 active shares. The more shares (and the higher the difficulty of those shares) you have in the sharechain, the greater your reward when a block is found.
Yes. However, unlike some centralized pools, P2Pool has a minimum hash rate threshold to expect regular payouts when blocks are found. The minimum hash rate to expect regular payouts changes based on the total speed of all the miners in the pool at any given time. A good rule of thumb to expect a payout when a block is found: If your expected time to share is over 1.5 days you are unlikely to be able to maintain a valid share in the sharechain.
One last important tip: When you start mining on P2Pool exercise patience. Until you get a confirmed share in the sharechain, and the pool subsequently finds a Bitcoin block, you will not receive a payout. As you add more shares to the sharechain your payout will increase, when a share is older then 3 days (8,640 shares) it will fall off the end of the chain and no longer be paid. P2Pool will tell you your expected time to share, but keep in mind this is an estimate and is subject to the same luck/variance that Bitcoin blocks are.
Now that you have a basic understanding of how P2Pool works…