Many smaller miners miss the payout share completely. They need to find the hard share AND it needs it to be in the payout window. If the p2pool doesn't find a block in the payout window, then they miss out entirely. The probability of missing out entirely is quite large for smaller miners.
I guess this can be true based on the networks.py settings for a specific coin. We had a similar issue with Vertcoin at first since we only used a SPREAD of 3 which was way way too small, we copied that from Litecoin but Litecoin uses odd settings unlike any other successful p2pool network. We hard forked the VTC p2poll network to correct that and now it works so much better. BTC works okay with a SPREAD of 3 since the block time is 10 minutes and the time for p2pool to find a block is 1-3 days. That gives you like a 6 day lifetime to your share, the odds of a share not paying are virtually zero. But the faster the coin, the larger SPREAD needs to be.
Still though I suspect the odds of a share paying 0 are the same as a share paying multiple blocks, such that the math would average out over a long enough period of time. On Vertcoin we didn't think people were being underpaid, just the extra variance of the small payment window caused endless complaints and confusion by miners who didn't understand how p2pool worked. By making the window much larger (12 blocks of work instead of 3), shares should always pay something and you have more time to find a 2nd share before the first expires, so you permanently have some sort of payment coming on every block.
sha256 support should be fairly easy to patch in, although I don't plan on implementing it yet.
I went with CPPSRB since it was easy to do
If I dig deep one of these days maybe I'll try to add sha256 support and see how it goes.
A proxy like this for smaller miners might be helpful for BTC itself. Even 180GH miners on p2pool tend to complain the variance is too high.
CPPSRB is fine, I just find DGM kinda sexy and use it on my TRC pool. I like the math behind it (non-hoppable, completely fair for all miners regardless of speed) and you just need to store 1 score per user, don't even need a share history.
Thanks for making this proxy though, it definitely meets a need.
If you run a large public doge node in addition to your proxy, you might consider applying this patch:
https://github.com/forrestv/p2pool/pull/174We rolled it out on the whole Vertcoin network and it seems to work great.