At the suggestion of one of our hero members, I am switching from fixed Last-N based payouts to time-based payouts. I think it makes a bit more sense considering the nature of our pool.
I am setting the following time periods for each of the coins currently on the pool:
LTC: 24 hours
TRC: 6 hours
FTC: 8 hours
MNC: 30 minutes
WDC: 30 minutes
DGC: 30 Minutes
NVC: 12 hours
Please respond with any comments or concerns.
I don't completely understand the implications myself yet, but I had a vague feeling that time-based PPLNS had some problems, and the
PPLNS thread seems to confirm:
The most naive implementation is to have a fixed N and simply pay the last N shares equally. However, this makes it more profitable to mine before difficulty decreases, and less profitable before difficulty increases - the number of blocks that are expected to be found in your window depends on the future difficulty, while the payout you can receive elsewhere depends on the current difficulty.
It doesn't help if N is chosen to be a given multiple of the difficulty at the time a block is found. If the difficulty is about to increase, it is more profitable to mine a short while before. For example, if N is set equal to the difficulty D, a share submitted D shares before the increase will be paid the full expectation in the D-window, and then when difficulty increased it will once again go inside the window and have more expected reward. And, like the previous case, shares submitted just before the difficulty change will be rewarded similarly to shares submitted after it.
Another incorrect implementation is to pay all shares in a window given in units of time (sometimes called PPLNM or PPLNH). In addition to the problems above, it has a problem common to all reward systems that use time as a factor, which is that it is more profitable to mine when the current hashrate is higher than the average.
Now that I'm actually mining on a pool which uses this method, I might give it more thought, and perhaps understand the problem. Not a lot of money at stake here, and I don't mind being motivated to do some research
Shift-based PPLNS would be the best PPLNS implementation based on that thread. It's used on BTC Guild and BitMinter.