I'm reading about the Stratum protocol where miners contribute to pools. Specifically there is a "mining.submit" method -- https://en.bitcoin.it/wiki/Stratum_mining_protocol, in which I miner will submit a share for consideration. The details on this doc are a little sparse. Specifically, what is the "ExtraNonce2" value they describe as being submitted back to the pool?
The extra nonce is a value in the coinbase transaction which miners will increment in addition to incrementing the nonce in the block header so that there are more possible hashes that can be tried with a given set of transactions.
The ExtraNonce2 is specifically the part of the extra nonce that the miner is changing while performing work for the pool. There is also an ExtraNonce1 which the pool provides to the miner. That ExtraNonce1 is typically used as an identifier.
Could you elaborate on the "ExtraNonce2" part of your answer? Maybe with an example. For isntance, you say its "part of the extra nonce" but I'm reading the extranonce2 is different from extranonce1 in terms of forming the coinbase, which I' reading is (coinbase1 + extranonce1 + extranonce2 + coinbase2).– DaveMar 11, 2018 at 17:24
1ExtraNonce2 is a value that the miner keeps changing in order to produce more block headers that can be hashed. Because this is something that the miner changes, he has to provide it back to the pool when he submits his work. ExtraNonce1, Coinbase1, and Coinbase2 are provided by the pool, so they know what they are and can reconstruct the block from the ExtraNonce2 and nonce that the miner submits.– Andrew Chow ♦Mar 11, 2018 at 18:30
So I am understanding that
ExtraNoncewhich is composed of 2 parts
ExtraNonce2where the pool defines
ExtraNonce1bits but the miner is free to set/redefine during its mining job the
ExtraNonce2bits. The pool specifies in bytes (ie 8 bits) how much of
ExtraNonce2takes, ie if
ExtraNonce2is 2 bytes, then
ExtraNonce1will be 6 bytes because both have to add up to 8 (64 bits)?– andrewzJun 15, 2022 at 16:55