Author

Topic: Pooled mining question (Read 803 times)

legendary
Activity: 3472
Merit: 4801
September 22, 2016, 10:03:45 PM
#8
and when I found the solution of my low diff block and send it to the server , I get another. what is the difference of this new block?

The 80 byte block header consists of 6 items:
  • Version
  • The double SHA256 hash value of the previous block
  • The Merkle root built from the list of transactions in the block
  • A timestamp
  • The current block difficulty
  • The nonce

It's these 80 bytes that you are hashing when "mining".  The version, hash of the previous block, and current difficulty can't be changed without the block becoming invalid.  The nonce is the easy thing for the miner to change as they search for a block solution.  So, the two things the pool server can change to give you a new block is the timestamp and the Merkle root.

The Merkle root changes if you change ANYTHING about the transactions in the block.  Add 1 more transaction to the block, and a new Merkle root needs to be calculated (which will be different than the one you had).  Remove 1 transaction from the block, and a new Merkle root needs to be calculated (which will be different than the one you had).  Change the order of the transactions in the block, and a new Merkle root needs to be calculated (which will be different than the one you had).  Change the input value (also known as the extraNonce) in the coinbase transaction, and a new Merkle root needs to be calculated (which will be different than the one you had).

The point is that the main difference in the new block header that you receive from the pool is typically going to be the Merkle root.
staff
Activity: 3458
Merit: 6793
Just writing some code
September 22, 2016, 07:51:52 PM
#7
and when I found the solution of my low diff block and send it to the server , I get another. what is the difference of this new block?
Usually it's different transactions or a different extranonce in the coinbase transaction.
sr. member
Activity: 375
Merit: 255
September 22, 2016, 07:36:34 PM
#6
and when I found the solution of my low diff block and send it to the server , I get another. what is the difference of this new block?
legendary
Activity: 3472
Merit: 4801
September 21, 2016, 10:34:22 PM
#5
but how i will find the right nonce if im looking for my low diff block?

When you are mining, you are trying ALL nonces and seeing if the result is good enough to "win".

If you find a result that is only good enough for the low diff, then you report that and the pool keeps track of the fact that you are trying.  If the result is good enough for the high diff blockchain, then you report that and the pool broadcasts the block to the network and keeps track of how much it needs to pay everyone that tried. If the result isn't good enough for the blockchain or the low diff, then you don't bother reporting it.  The pool already knows that you are trying from all the low diff results that you report, so it doesn't need you to waste time reporting all the other losing blocks.
staff
Activity: 3458
Merit: 6793
Just writing some code
September 21, 2016, 07:06:12 PM
#4
but how i will find the right nonce if im looking for my low diff block?
Any block that is valid for the normal diff will be valid for the low diff. Because the hashes are random, someone will eventually hit a valid block.
sr. member
Activity: 375
Merit: 255
September 21, 2016, 06:50:23 PM
#3
but how i will find the right nonce if im looking for my low diff block?
legendary
Activity: 3472
Merit: 4801
September 21, 2016, 02:47:32 AM
#2
How the pool server Works?

The pool server listens to the bitcoin network to find transactions that need to be confirmed and to learn about blocks that have been solved by other miners. It then uses that information to build blocks for pool participants to work on.  It gives each miner their own unique block and tracks how much effort each participant puts into solving blocks.  If anyone in the pool solves a block, the pool server handles keeping track of how much each participant should get paid for their effort.

How i solving a low diff hash helps the server to find the nonce?

Each participant is looking for a nonce solution to the block they are working on.  Therefore, everyone that is participating in the pool is helping to find a nonce.  Since finding a successful solution is going to be unlikely for most of the participants, the low diff hash is just a way to prove to the pool server that you are actually trying.  That way the server will know how much effort the participant has put in, and can share the appropriate amount of the block reward with them when someone finally finds a solution.



sr. member
Activity: 375
Merit: 255
September 20, 2016, 11:28:46 PM
#1
How the pool server Works?
How i solving a low diff hash helps the server to find the nonce?
Jump to: