Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
IncrementExtraNonce at BitCoin Core
void IncrementExtraNonce(CBlock* pblock, const CBlockIndex* pindexPrev, unsigned int& nExtraNonce)
// Update nExtraNonce
static uint256 hashPrevBlock;
if (hashPrevBlock != pblock->hashPrevBlock)
nExtraNonce = 0;
hashPrevBlock = pblock->hashPrevBlock;
unsigned int nHeight = pindexPrev->nHeight+1; // Height first in coinbase required for block.version=2
CMutableTransaction txCoinbase(*pblock->vtx[0]);[0].scriptSig = (CScript() << nHeight << CScriptNum(nExtraNonce));
assert([0].scriptSig.size() <= 100);
pblock->vtx[0] = MakeTransactionRef(std::move(txCoinbase));
pblock->hashMerkleRoot = BlockMerkleRoot(*pblock);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment