As I was checking this SE, it doesn't appear this important question has been asked:
What is the P2Pool? How does differ from the traditional approach and what does it offer its users?
Bitcoin Stack Exchange is a question and answer site for Bitcoin crypto-currency enthusiasts. It only takes a minute to sign up.Sign up to join this community
P2Pool is a distributed bitcoin mining pool. First, consider checking out the P2Pool Wiki for the latest information.
I think it would help to briefly explain it in terms of differences between p2pool, traditional pools, and solo mining.
When you solo mine bitcoins, you have control of all aspects of mining. You decide which transactions get included in your block and you decide where the block reward goes (usually you decide to send it to one of your own addresses). However, unless you have a very large mining operation, you'll be highly affected by variance. For example:
At a the current difficulty (1733207), the average time for a 5 GH/s miner to find a block is just over 2 weeks. And it is not uncommon for you to take 3-4x longer than the average occasionally when you are unlucky. As a result, you can go long stretches without earning anything.
Traditional Pooled Mining
To solve the problem of high variance, the mining pools were created. In a traditional mining pool, many people all agree to combine their mining efforts and split the rewards according to their contributions. A sufficiently large pool may then have enough combined mining power that their average time to find a block may only be a couple hours instead of a couple weeks. As each block is found the block reward is distributed between the pool's miners. Each miner then gets smaller payments more regularly instead of one large 50 BTC payment every few weeks.
In a traditional pool, the pool operator sets up a website that miners connect to to receive mining work at a much lower difficulty so that each miner will find a valid solution every few seconds. These easy solutions, or "shares" are counted and rewards are distributed based on the proportion of shares that each miner found using one of several reward schemes. In the traditional pool, the pool operator is the one who decides what transactions go into each block and how the rewards are distributed. Typically, the pool sends all rewards to itself and then pays miners out of the pool's funds periodically.
P2Pool is sort of a cross between these two worlds. Like solo mining, p2pool miners are creating their own blocks and choosing which transactions go into blocks. Like pooled mining, rewards are shared between everyone who is part of the pool.
With p2pool, each miner runs a p2pool node and these nodes form a peer to peer network amongst themselves similar to how bitcoin, itself, does. Participants then connect their mining software to their local p2pool node and is given low difficulty work just as with a traditional pool. As each share is found, it is communicated to other miners on the p2pool p2p network so that all nodes are aware of who is contributing to the collective mining effort and in what capacity.
Each share also includes the reward transaction that will be used in the event that a share ends up being a valid block. That reward transaction includes directly payments to all of the recent contributors to the p2pool network. So as blocks are found, contributors directly receive their payment just as they would have with solo mining.
To ensure that everyone is playing fair, shares are assembled into a share chain in the same way that bitcoin blocks are assembled into a block chain. Each share that someone finds builds on all of the previous shares. All miners that are following the same set of established rules end up creating shares that other miners are willing to include in the share chain. Miners that don't follow the rules end up creating shares that get excluded from the main share chain and so they don't get paid when blocks are found by the other miners. In order to make it practical for nodes to be constantly passing shares around the p2p network, the share difficulty is tuned so that shares are only found 1 every 10 seconds across the entire p2pool network. The result is higher variance than at a traditional pool, but still much less variance than with solo mining.
In summary, the benefits over a traditional pool include...
The drawbacks are higher variance than at traditional pools (particularly for small miners), and extra complexity in initial setup because miners have to install and configure bitcoin and the p2pool software in addition to their mining software.