This mining pool test has been a smashing success. Thanks to all who helped out with their CPU/GPU cycles. Here's a quick briefing.
1. What was being tested?
--------------------------------------------------------------------
I'm working on a suite of bitcoin-related services. Mining pool capability is a small part of that. This was a live test of code that will be deployed in production later on. We found many bugs that a static, in-house test could have never found. slush was also very generous with advice and cautionary warnings.
To thank the community for the help, the core server source code has been GPL'd and released:
http://yyz.us/bitcoin/poold.py However, it should be noted that that server is missing several data validations that need to occur (to prevent cheating).
2. What is the current status of the pool?
--------------------------------------------------------------------
Only one block was ever generated by the pool (which IMO is fantastic, given current difficulty, short notice and informal nature of this new pool)
You can get real-time stats at
http://pool.yyz.us/stats.cgiAs I consider this a concluded test, I will be shutting down the pool next week -- hopefully enough time to generate another block for the remaining folks who contributed shares. I have switched my own GPU miners back to slush's pool, though my CPU miners are still pointed at pool.yyz.us.
3. What is the status of the payout -- where my money?
-------------------------------------------------------------------------------------------
We have one block (50 BTC), which was confirmed 87 blocks ago as of this writing.
Based on a technical reading of slush's site, I wrote the software so that only miners who got
shares in the block we generated got credit: "
When the pool mints a block, only users who worked on that block are rewarded, and only for work they did on that block." But apparently I wrote the software incorrectly, because people expected to be rewarded based on shares contributed to
all blocks up to and including the newly minted 50BTC block.
So according to my software, this is the winning distribution based on those who worked on block 105839,
mine319.pit00 211
mine300pit04 48
BitCoinPurse 7
worker102 2
immaminer 2
Raulo 2
wtf 2
test 1
mine319.pit00 1
That excludes shares contributed on blocks prior to 105839, and some ~18 hours of shares in the current round, and those records cannot easily be recreated due to since-fixed software bugs.
So, since it's only 50 BTC and I don't want to argue endlessly about it, as a compromise I am going send 1.00 BTC to each of 41 registered users, and then divide the remaining 9 BTC up according to the distribution above.
If the mining pool mints another 50 BTC block in the next ~5 days or so, those share records
are present, and I can do a real, slush-like distribution of the reward. After that, the pool server will be shut down.
4. What comes next?
---------------------------------------------
Here are some tantalizing hints:
- push-based mining (current RPC miners poll for new work every few seconds)
- geographically distributed mining servers in the US, Eur and Asia, for best possible latency
- additional share rewards -- sometimes we might want to compensate you above the 50 BTC reward itself, because your mining increases the security and value of our network