Where is the nonce incremented in Bitcoin source code? I found where the extra nonce is incremented, but not the regular nonce?
2 Answers
Line 132 in src/mining.cpp in the generateBlocks method.
while (nMaxTries > 0 && pblock->nNonce < nInnerLoopCount && !CheckProofOfWork(pblock->GetHash(), pblock->nBits, Params().GetConsensus())) {
++pblock->nNonce;
--nMaxTries;
}
Update: Given @MeshCollider's answer I guess this is now only relevant on the regtest network.
-
Oh yes, there is still a miner for regtest, forgot about that :) Nov 11, 2017 at 6:37
The internal miner was removed from Bitcoin Core in version 0.13.0, in this PR: https://github.com/bitcoin/bitcoin/pull/7507
It used to be incremented in ScanHash(), but as of the removal, there is nowhere which increments the nonce, that would be done by mining software.