Q: What is P2Pool?
A: P2Pool is a decentralized mining pool that works by creating a peer-to-peer network of miner nodes making the pool as a whole highly resistant to malicious attacks, and preserving and protecting the decentralized nature of Bitcoin and other Altcoins.
You can find more useful information at p2pool.org
, the P2Pool WiKi
and Guide for mining efficiently on P2Pool
Q: How is P2Pool different?
A: P2Pool has it's own sharechain with a fast target speed of 10 seconds per share. This sharechain is used between nodes to distibute the work. Do not confuse the P2Pool sharechain with the coin blockchain. Since the P2Pool sharechain has such a rapid expiration of work you will notice a lot of restart messages to the miner.
It may take some time for smaller miners to obtain a share. This will result in an increase of variance but over time you should experience higher payouts when compared to other pools.
Orphans/DOAs on the P2Pool sharechain are common because of the fast target speed. Do not confuse this with orphaned blocks on the coin blockchain. DOA shares can actually still be valid blocks so do not use --no-submit-stale
Q: How do I tune for P2Pool?
A: P2Pool has very rapid expiration of work. It is suggested you decrease your intensity by 1 from your optimal value and [possibly] set GPU threads to 1. If you have non-p2pool backup pools it is recommended to use --failover-only since the work is effectively like a different block chain. Do not use --no-submit-stale since what cgminer considers stale may be valid with P2Pool.
Q: Why is my Dead rate so high?
A: Dead rate is the amount of shares that were stale or DOA. Very high dead rates can indicate miner misconfiguration. If you are mining on a coin that is not showing the correct date then the share difficulty will be low until it catches up. This will cause the graphs to display higher dead rates. It should be noted that dead shares are still submitted and can solve a block. Do not use --no-submit-stale
Q: Why does my miner report so many longpoll/stratum from pool request work restarts?
A: This is normal. It is how often P2Pool shares are generated.
Q: How do I get paid?
A: 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 for most coins. Each of the last 8,640 shares are paid each time a block is found. A share in the P2Pool sharechain can be expected to last between 1 to 3 days depending on the coin.
Confirmed shares are valid, and paid whenever a block is found, for as long as they remain in the sharechain. Payouts in P2Pool are made immediately, directly from the block generation transaction.
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.
Q: How does the pool fee work?
A: The fee's on P2Pools are a bit different than other pools. Any fees that a P2Pool has is probabilistic
. In other words if the P2Pool has a 1% fee then 1% of the shares go to the pool not 1% of every share. The pool can have periods of bad luck in relation to the fee and get nothing at all...but it averages out over time.
Q: Can I set my own share difficulty?
A: There are two different difficulty setting you can specify. Share Difficulty and Pseudo Share Difficulty. It is important you understand the difference. Share Difficulty by address is shown in the Miners tab.
Sets the share difficulty for shares that count towards a payout.
P2Pool takes the total hashrate on each node and assigns a share difficulty for that node based on that number. This means that large miners may increase the share difficulty on a node to a point where smaller miners are working on shares too difficult for their speed.
The maximum a node can raise the share difficulty is 30x the P2Pool share difficulty. To determine the maximum share difficulty find the P2Pool share difficulty displayed on the Stats page and multiply by 30.
The P2Pool share difficulty displayed on the Stats page is the lowest share difficulty that can be assigned to a miner. If you would like to provide your miner with the lowest P2Pool share difficulty use: address/0
CAUTION: Setting your share difficulty to the lowest P2Pool share difficulty may decrease your per block payout to a point where you may encounter large transacion fees. Try to keep your per block payout above the coins minimum transaction fee as setting your own share difficulty overrides the minimum payout threshold.
Pseudo Share Difficulty:
Pseudo Share Difficulty is what a P2Pool node sends to your miner to keep it busy waiting for a share that attempts to solve a block and count towards a payout. It does this so you can verify the miner is hashing correctly and make adjustments as necessary. P2Pool nodes also use pseudo shares to populate graphs and hashrate display.
Setting pseudo share difficulty allows you to set the quantity and difficulty of pseudo shares in-between share used to solve blocks. Setting the pseudo share difficulty will help minimize the amount of traffic from your miner to the P2Pool node.
To set the pseudo share difficulty for your specific hash rate multiply by 0.00000116
For example, if your miner is capable of 1440 Mh/s:
1440 * 0.00116 = 1.6704
You can set both share and pseudo share diffuculty settings together by using:
Example Connection String for a miner choosing the minimum P2Pool share difficulty with 1440 Mh/s:
ccminer --vertcoin -o stratum+tcp://url:port -u your_address/0+1.6704 -p x