Этот вопрос помогает определить различные компоненты поля «данные» getwork, но мне любопытно, откуда берется extraNonce. Я предполагаю, что это первые четыре байта второй половины данных, потому что я считаю, что это все еще часть корня Меркла (и все же, находясь во второй половине данных, это не будет частью промежуточного состояния) . Это правильно? И если да, то как увеличить extraNonce и что это значит?
Пример получения данных:00000001a10bacc7e639d1c69a01014bc5db6f2604b3477a3f273a4e019a232700000000a5942372cc60477c8a276e59c8f1a3f58654ea2f6c4402bf1b18e48455b5b8f64f10868b1c07475200000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000
Является ли extraNonce (я знаю, с прямым порядком байтов) 55b5b8f6
?
extraNonce помещается на вход транзакции генерации. клиенты getwork не могут видеть транзакции, поэтому они не могут обновлять extraNonce. Некоторые майнеры вместо этого немного модифицируют nTime, чтобы дать им больше места для одноразовых номеров.
extraNonce используется биткойном, но не является частью протокола. В блоках или транзакциях нет поля extraNonce.
Это действительно помогло мне понять это:
Соло-майнер увеличивает значение Nonce до тех пор, пока оно не переполнится. Затем он увеличивает значение extraNonce и сбрасывает значение Nonce. extraNonce находится в транзакции coinbase, поэтому его изменение изменяет корень Merkle. extraNonce сбрасывается в зависимости от времени.
КонстебльДжо
Питер Уилле