I'm getting this error in regtest mode after setgenerate RPC:

ERROR: CheckProofOfWork() : hash doesn't match nBits

After looking for error text in src I found a match in pow.cpp (obviously standing for proof of work) with following extract from code:

// Check proof of work matches claimed amount
if (hash > bnTarget)
     return error("CheckProofOfWork() : hash doesn't match nBits");

Does it mean there's a target in regtest?If yes, isn't it contradicting to difficulty being 0?

2 Answers 2


The regtest difficulty is not 0. It is around 0.0000000005 initially (corresponding to 1 hash in 2 being valid), and retargets the same way that the main network does, every 2016 blocks.

The fact that you see this error is a bug though, which will probably be fixed in Bitcoin Core 0.11.

  • OK. Thanks Pieter! But only, I'm not understanding your formulation of "[...] corresponding to 1 hash in 2 being valid [...]" ... Would you rephrase that, please? May 3, 2015 at 21:11
  • Of every two candidate block you try, one will be valid. May 4, 2015 at 9:18

I am running bitcoind v0.10.0.0-047a898 in regtest mode on a Raspberry PI. I see lots of those "ERROR: CheckProofOfWork() : hash doesn't match nBits" and they slow bitcoin down quite a bit. In the end I have commented the check out. Surprisingly, everything seems to work fine now, but I must be missing something here...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.