Generating blocks in regtest: "hash doesn't match nBits"

1

1


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?

Aliakbar Ahmadi

Posted 2015-05-01T16:31:49.140

Reputation: 1 335

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.

Pieter Wuille

Posted 2015-05-01T16:31:49.140

Reputation: 54 032

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?Aliakbar Ahmadi 2015-05-03T21:11:45.927

Of every two candidate block you try, one will be valid.Pieter Wuille 2015-05-04T09:18:23.440

0

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...

Pieter Hartel

Posted 2015-05-01T16:31:49.140

Reputation: 1