Что такое extraNonce?

Этот вопрос помогает определить различные компоненты поля «данные» getwork, но мне любопытно, откуда берется extraNonce. Я предполагаю, что это первые четыре байта второй половины данных, потому что я считаю, что это все еще часть корня Меркла (и все же, находясь во второй половине данных, это не будет частью промежуточного состояния) . Это правильно? И если да, то как увеличить extraNonce и что это значит?

Пример получения данных:00000001a10bacc7e639d1c69a01014bc5db6f2604b3477a3f273a4e019a232700000000a5942372cc60477c8a276e59c8f1a3f58654ea2f6c4402bf1b18e48455b5b8f64f10868b1c07475200000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000

Является ли extraNonce (я знаю, с прямым порядком байтов) 55b5b8f6?

Ответы (2)

extraNonce помещается на вход транзакции генерации. клиенты getwork не могут видеть транзакции, поэтому они не могут обновлять extraNonce. Некоторые майнеры вместо этого немного модифицируют nTime, чтобы дать им больше места для одноразовых номеров.

extraNonce используется биткойном, но не является частью протокола. В блоках или транзакциях нет поля extraNonce.

А, интересно. А nTime — это то же самое, что описанная здесь временная метка , верно?
Да, nTime — это поле внутри заголовка блока.

Это действительно помогло мне понять это:

Соло-майнер увеличивает значение Nonce до тех пор, пока оно не переполнится. Затем он увеличивает значение extraNonce и сбрасывает значение Nonce. extraNonce находится в транзакции coinbase, поэтому его изменение изменяет корень Merkle. extraNonce сбрасывается в зависимости от времени.