6

I am confused about whether a miner chooses to wait for more transactions (more fees) or starts as soon as it receives the first transaction from the network. Once a miner has started calculating the hashes, it will queue the new transactions, correct?

My confusion is: each miner node will be calculating the hash for a different block. Some will have more transactions than others. Does it matter?

If I am lucky to find the solution for a block with just one transaction, but someone else finds the solution for a block with my transaction and one more, so he wins, correct?

So the more transactions there are in a block the more difficult it is to solve the hashing puzzle, is that correct? If yes, why?

Can someone clarify how this transaction grouping is done by mining nodes?

8

I am confused about whether a miner chooses to wait for more transactions (more fees) or starts as soon as it receives the first transaction from the network. Once a miner has started calculating the hashes, it will queue the new transactions, correct?

Yes, they can begin mining as soon as they see the previous, and update the block template with new transactions they see whenever they would like. The early Satoshi client updated the template every few seconds, modern miners seem to do it every half a minute or longer depending on the software. There's no advantage for them to update the block template other than that they might get more fees if they do, if they miss transactions there's no real harm done.

If I am lucky to find the solution for a block with just one transaction, but someone else finds the solution for a block with my transaction and one more, so he wins, correct?

No, this isn't correct, no miners break ties with the number of transactions in a block. First seen is generally going to be the behavior most people use if they can see two competing blocks at an equal height with an equal difficulty target. If they did tie break with the number of transactions then miners could make blocks stuffed with their own fake ones and always win any races.

So the more transactions there are in a block the more difficult it is to solve the hashing puzzle, is that correct?

No, the header of a block is always 80 bytes long irrespective of the number of transactions the block actually contains. This is because the block header only includes a hash of the transactions, rather than the transaction contents themselves. The difficulty is the same for a block with no transactions other than the one paying the miner or a block with thousands.

Can someone clarify how this transaction grouping is done by mining nodes?

Hard to answer this because most pools run completely custom software, they have their own criteria and their own optimizations which they perform. Generally they will collect all valid transactions which have the fee they want to accept, and assemble them into a block of the maximum size they wish to create, any which are not included are left in the memory pool for later or for someone else to mine.

1

Under the current system, miners never wait. Transaction fees are too small of a part of the total block reward for people to bother with that.

  • You mean the miners are always solving a block with whatever previous transactions they had queued? – Peter Mel Sep 5 '15 at 4:50
  • @PeterMel Yes, that's correct. – Nick ODell Sep 11 '15 at 1:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.