|
July 31, 2013, 03:33:15 AM |
|
Probably not as detailed of an answer as you're looking for, but I don't think a getwork pool breaks up the individual getwork jobs. I'm assuming a getwork pool keeps calling getwork and passes each piece of work along to one of its miners. The pool tells the miners what difficulty shares it will accept, and only accepts shares based on the work that was given to each miner, i.e., miner B couldn't submit a share based on the work given to miner A.
The mining program each miner is running doesn't know the difference between solo mining and pool mining; the hashing is done exactly the same way. The difference is that your mining program tells your local bitcoind when it finds a share greater than or equal to the requested difficulty (i.e., Bitcoin network difficulty) when solo mining, and tells the pool's bitcoind when it finds a share greater than or equal to pool's requested difficulty (varies based on pool, but is always less than current network difficulty. This is how pools keep track of your mining rate and therefore your payout). Your local bitcoind submits any blocks found to the bitcoin network and you are then rewarded with the block reward + tx fees if the block isn't orphaned or stale. You found the block on your own, so you keep the whole thing. The pool server submits any blocks found (i.e., miner-submitted shares with a difficulty >= current bitcoin network difficulty) to the bitcoin network and the pool is rewarded the block reward + tx fees. The pool server then distributes this reward to its miners based on the pool's payout method. (PPS, PPLNS, DGM, etc)
|