So, I said that I could try and do PPLNS within 24 hours, but that isn't going to happen. It turns out there are too many code changes that need to happen and that need to be tested. The actual PPLNS calculation code is the easy part. I can easily perform PPLNS payment calculations based on when we find a block now on ArsBitcoin. However, making sure that everything is 100% correct, making sure we handle blocks that go invalid, showing unconfirmed rewards, confirmed rewards, PPLNS round history, personal user stats that work with our existing stats, etc, is all proving to take longer than anticipated to implement.
On top of that, I have some important deadlines at work tomorrow, and I just can't spend any more time on this right now.
So, now Ars becomes a grand SMPPS experiment as we venture back into unlucky negative buffer territory (which is what we started with, btw, as we went negative the first time a share was submitted and it didn't find a block.)
Hopefully our luck turns soon, but if not, I thought I would again explain how payouts work when we can not pay all of the Total PPS work.
So, various miners have a Total PPS work > Paid PPS Work. This is because the pool doesn't have BTC to pay anyone. Once we get more BTC, the following occurs:
Each miner has an 'ideal payment' of Total PPS Work - Paid PPS work. For example, Miner 1 could have 100 Total PPS Work, 99 Paid. His ideal payment is 1 BTC. Miner 2 has 50 Total PPS work, and 48 Paid PPS work, or an ideal payment of 2.
Lets say the pool just confirmed a new block that is worth 1 BTC. First, we get the ratio of what we can pay everyone. Total outstanding ideal payments in this 2 miner pool is 3 (2 + 1.) So, our total ratio that we can pay people is (1 / 3) or 0.333333etc.
This means that Miner 1 gets (1 * 0.333333etc) BTC and Miner 2 gets (2 * 0.3333333etc) BTC, for a total of 1 paid out (all that the pool has available.)
Note that this isn't exactly like Eligius' SMPPS, where older shares get paid first I believe. It also isn't exactly like ESMPPS or RSMPPS or whatever. It pays all miners equally based on their 'ideal pay' when the pool has BTC available to pay. If someone stops mining and still has some 'ideal pay' amount, it will slowly get paid as the pool gets BTC. However, people who DO stay will obviously be building MORE 'ideal pay', so they can be sure that they are still getting paid a much higher share of the pools BTC than anyone who stopped mining.
So, in summary. I still plan to work on PPLNS in the near future, but it will not be done in the next 24 hours. Our bad luck seems to be continuing, so we will most likely not be able to pay 100% PPS value instantly like we have been able to for the past month+. However, the pool will obviously still be solving blocks and still pay out as much as it can, just like any other pool out there.
If time goes on and we still have a negative buffer in the future, I still think we should switch to PPLNS. What this means is that, at that time, it would no longer be possible to make Total PPS work = Paid PPS work. Just like if you mine at any (non straight PPS) pool where the pool luck is < 100% over the time you mine there, you will not be able to get paid 100%.
Sorry that the luck party has decided to visit others for a while (damn Eligius and their 900 BTC+ buffer like we used to have
).