My understanding is that the search space to find the right nonce for a single block is 2^32 in size.The nonce is generated, the hash computed, and if the hash is less than the difficulty target then that nonce is a winner.Is that the simple version?

But, I don't get how multiple GPUs work to solve a search for a single block. Say I have 3 6990s burning up watts.Then I have 6 GPUs working on the mining problem. Are they all working on the same block together or are they all working on different blocks?

I can understand how they'd all work on different blocks simultaneously, they'd each march through the 2^32 search space trying incremental nonces in a brute force approach.

But for them to all work together on a single block would imply some partitioning of the search space so that each GPU would never duplicate the work of another. Yet I never see any discussion of a "work manager/controller" piece of software that parcels out the search space to the "n" GPUs that a miner might be running. What's up?Am I missing something?

Again, I'm just thinking about solo mining with multiple GPUs right now. I'm not ready to think about/discuss pooled mining and how that must work!

Warning this could be completely wrong and feel free anyone to correct me. My understanding is that when using bitcoin client server -server the server gives the miner the block with the full difficulty. How ever if you create your own pool the work that is given to the miners are in 1 difficulty size so as to provide work to the large number of people in the pool evenly. With a solo miner your arent running more than 60 clients and all the proceeds are coming to you so the break up in shares are unnecessary as you don't need to distribute your loot to other miners. I'm not too sure if they will attempt hashes that have already been calculated and failed. But each miner is working on the same block as each block must be found or created in sequence. Like I said if I am wrong please correct me, but please don't flame as that helps no one....

OK, I think I'm getting the picture. Part of my problem is just the new terminology.

Is this right then....

One GPU runs one miner (one instance of mining software).One "Mining Rig" with 3x 6990 cards would be running six miners.10 mining rigs heating up my basement would be running 60 miners total.

Since there all under my control this would essentially be my own private pool.All of the miners would do the "getwork" protocol business with my own bitcoin server that would dole out the workand the bitcoin server keep track of the blocks that the miners all work on.So somehow my bitcoin server divides out the work, and all my 60 miners are solving the same block.

But in the bigger, worldwide picture, does that mean that all miners in the entire world are working on the same block?That would seem to be true if the blocks must be solved and chained in sequence.

Then the whole worldwide mining process would devolve into a giant hardware/software "arms race" where whomever has biggest and fastest pool of miners can collect all the coins. For example an evil consortium could assemble a pool of 2^32 miners and be done really really fast

I don't believe (someone correct me if I'm wrong) that all your miners would be working on the same hash, but they are all working on the same block. Everyone is working on the same block until someone finds the correct hash and it moves on to the next block. Your server is handing out different Difficulty 1 hashes to each miner to work on.

And yes, it's getting difficult for solo miners to have a shot at finding anything, but it's still not impossible, depending on what hardware you throw at it.