Frequently Asked Questions

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 a coins 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.

Stale/Orphans on the P2Pool sharechain are common because of the fast target speed. Do not confuse this with orphaned blocks on a coins blockchain. Stale shares can actually still be valid blocks so do not use --no-submit-stale

Q: How do I tune for P2Pool?
A: Do not use --no-submit-stale since what cgminer considers stale may be valid with P2Pool. If you have non-p2pool backup pools it is recommended to use --failover-only since P2Pool uses it's own blockchain comonly refered to as the P2Pool sharechain.

Q: Why is my Stale rate so high?
A: Very high stale 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 stale rates. It should be noted that stale 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. P2Pool has very rapid expiration of work for it's sharechain.

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 will be when a block is found.

Q: How does the pool fee work?
A: xPool.net no longer charges any fees. If you use a P2Pool node that does charge a fee you should know that the fee is calculated a bit different than other pools. Any fees that a P2Pool node charges is probabilistic. In other words if a P2Pool node has a 1% fee then 1% of the shares go to the P2Pool node not 1% of every share. Just like finding blocks a P2Pool node can have periods of bad luck in relation to the fee and get nothing at all.

Q: Why are the stats not updating?
A: Internet Explorer may not display current data after a browser refresh. Please try using Chrome instead.

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.

Share Difficulty:   address/<number>
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:   address+<number>
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 Kh/s:

1440 * 0.00000116 = 0.0016704

You can set both share and pseudo share diffuculty settings together by using: address/<number>+<number>

Example Connection String for a miner choosing the minimum P2Pool share difficulty with 1440 Kh/s:

cgminer --scrypt -o stratum+tcp://xpool.net:8810 -u DTWPTRSi9HoLh69NPd2fbDWUGHrx1nLdmk/0+0.0016704 -p x

Q: P2Pool is so great! How can I reward P2Pool miners?
A: Donating to P2Pool miners:

In order to encourage people to mine to P2Pool you can donate to the recent miners in proportion using a sendmany from your coin of choice:

For example on Digitalcoin, a bash script to donate 100 DGC is:
digitalcoind sendmany "" "$(GET http://xpool.net:8810/patron_sendmany/100)"

You can replace "" with "accountname" if you want to pay from some specific digitalcoind account, and replace xpool.net:8810 with the address of the P2Pool node used to send the donation through (any node will work).

Note that the amount you donate will be allocated to recent miners in proportion to the amount of work they've done in the last 24 hours or so, but all the miner whose shares of the donated amount are less than 0.01 DGC will have their shares combined into a single amount which is awarded to one of them at random, with the chance of winning this 'lottery' weighted by the miner's recent amount of work done. You can change this 0.01 DGC threshold like this, for example, which says to pay 100 DGC, but to share it amongst more miners that the default, cutting off at 0.001 DGC instead of at 0.01 DGC:
digitalcoind sendmany "" "$(GET http://xpool.net:8810/patron_sendmany/100/0.001)"

This also works the other way. If you don't want any payouts to be less than 1 DGC use:
digitalcoind sendmany "" "$(GET http://xpool.net:8810/patron_sendmany/100/1.0)"

Pasting the URL listed after 'GET' in a web browser will return a preview of the donation to each miner.
Note: The unix program 'GET' is required. You can install it by typing: sudo apt-get install libwww-perl

If you decide to donate you should announce it on the forums so that your donations provide the most incentive possible.