Getwork

什麼是額外的Nonce?

  • March 9, 2016

這個問題有助於辨識 getwork“數據”欄位的各個組成部分,但我很好奇 extraNonce 來自哪裡。我的預感是它是數據後半部分的前四個字節,因為我相信這仍然是 Merkle 根的一部分(然而,在數據的後半部分,它不會是中間狀態的一部分) . 它是否正確?如果是這樣,如何增加 extraNonce,這樣做意味著什麼?

範例 getwork 數據: 00000001a10bacc7e639d1c69a01014bc5db6f2604b3477a3f273a4e019a232700000000a5942372cc60477c8a276e59c8f1a3f58654ea2f6c4402bf1b18e48455b5b8f64f10868b1c07475200000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000080020000

55b5b8f6是額外的Nonce(我知道小端),?

extraNonce 被放入生成交易的輸入中。getwork 客戶端看不到交易,因此他們無法更新 extraNonce。一些礦工反而稍微修改 nTime 以給他們更多的 nonce 空間。

比特幣使用extraNonce,但它不是協議的一部分。區塊或交易中沒有 extraNonce 欄位。

真的幫助我理解了它:

一個單獨的礦工增加 Nonce 直到它溢出。然後它增加 extraNonce 並重置 Nonce。extraNonce 位於 coinbase 交易中,因此更改它會改變 Merkle 根。extraNonce 根據時間重置。

引用自:https://bitcoin.stackexchange.com/questions/5048