<p>That error simply means that the block is invalid as the proof of work is incorrect. That has nothing to do with OpenSSL versions. The difficulty of a block is specified by the nBits field of the block header, and the block header must hash to a hash that is less than nBits. What is happening here is that the block hash is not less than the nBits, so the block is invalid.</p>

CC BY-SA 3.0
2018-03-14T08:13:26.337Z
So is it fair to say he is doing nothing wrong and that warning will go away within time ?
scott
CC BY-SA 3.0
2018-03-14T15:06:49.347Z
No, it is not fair to say that.
Ava Chow
CC BY-SA 3.0
2018-03-15T05:42:12.670Z
so why would the blocks hash not be less the nBits ?
scott
CC BY-SA 3.0
2017-07-02T16:27:47.813Z
2017-07-02T16:27:47.813Z
Ava Chow
<p>I've seen the following error on Linnux online with several old altcoins now, the one below is UFO coin. It will sync exactly 500 blocks and then throw the following error, if I restart the client the error on that block does not reappear and it downloads a further 500 blocks and throws the exact same error.</p>

<p>I'v added a few extra lines to get some additional debugging info. Before I spent time crawling through code I was hoping that someone else may have come across this same error and found the reason. UFO is several years old and current Windows clients are running OpenSSL 1.0.1h, services running were probably compiled around the time of that SSL release. The server with this issue is running OpenSSL 1.0.2g.</p>

<pre><code>CheckProofOfWork() bnTarget.getuint256=000000050e650000000000000000000000000000000000000000000000000000
SetBestChain: new best=f7c2f4f28e66399bc17e0e35498300c20bf384d210ce8c5d640b70d9a3dfe372  height=17000  work=68218691770398  date=01/23/14 03:00:50  tx=2 ProcessBlock: ACCEPTED
received block 93f88d57ab19ae388e22
CheckProofOfWork() hash=bf82aa6e76ec014faf5bc9c347eb5ba8242545acdf09259ac753b8d264aec0f0
CheckProofOfWork() nBits=486629382
CheckProofOfWork() bnTarget.getuint256=0000000160060000000000000000000000000000000000000000000000000000
ERROR: CheckProofOfWork() : hash doesn't match nBits
ERROR: CheckBlock() : proof of work failed
ERROR: ProcessBlock() : CheckBlock FAILED
</code></pre>

<p>Edit: Compiled it with OpenSSL 1.0.1u and have the error.</p>

<altcoin><linux>
CheckProofOfWork() Linux error on old altcoins
Peter Bushnell
# CheckProofOfWork() Linux error on old altcoins

(Asked by: username_0 on 2017-07-02)

I've seen the following error on Linnux online with several old altcoins now, the one below is UFO coin. It will sync exactly 500 blocks and then throw the following error, if I restart the client the error on that block does not reappear and it downloads a further 500 blocks and throws the exact same error.

I'v added a few extra lines to get some additional debugging info. Before I spent time crawling through code I was hoping that someone else may have come across this same error and found the reason. UFO is several years old and current Windows clients are running OpenSSL 1.0.1h, services running were probably compiled around the time of that SSL release. The server with this issue is running OpenSSL 1.0.2g.

```
CheckProofOfWork() bnTarget.getuint256=000000050e650000000000000000000000000000000000000000000000000000
SetBestChain: new best=f7c2f4f28e66399bc17e0e35498300c20bf384d210ce8c5d640b70d9a3dfe372  height=17000  work=68218691770398  date=01/23/14 03:00:50  tx=2 ProcessBlock: ACCEPTED
received block 93f88d57ab19ae388e22
CheckProofOfWork() hash=bf82aa6e76ec014faf5bc9c347eb5ba8242545acdf09259ac753b8d264aec0f0
CheckProofOfWork() nBits=486629382
CheckProofOfWork() bnTarget.getuint256=0000000160060000000000000000000000000000000000000000000000000000
ERROR: CheckProofOfWork() : hash doesn't match nBits
ERROR: CheckBlock() : proof of work failed
ERROR: ProcessBlock() : CheckBlock FAILED

```

Edit: Compiled it with OpenSSL 1.0.1u and have the error.

**Tags:** altcoin, linux


---

## 1 answers

### Answer by username_1 on 2017-07-02. Score: 2

That error simply means that the block is invalid as the proof of work is incorrect. That has nothing to do with OpenSSL versions. The difficulty of a block is specified by the nBits field of the block header, and the block header must hash to a hash that is less than nBits. What is happening here is that the block hash is not less than the nBits, so the block is invalid.

> **Comments:**
> **username_2**: So is it fair to say he is doing nothing wrong and that warning will go away within time ?  
> **username_1**: No, it is not fair to say that.  
> **username_2**: so why would the blocks hash not be less the nBits ?  

---

