Add incompatibility notice.
authorCryptoManiac <balthazar@yandex.ru>
Tue, 8 Sep 2015 23:07:48 +0000 (02:07 +0300)
committerCryptoManiac <balthazar@yandex.ru>
Tue, 8 Sep 2015 23:07:48 +0000 (02:07 +0300)
System.Numerics based implementation of GetProofOfWorkReward function produces incorrect reward values.

OpenSSL:

```
bnUpperBound=100000000, bnLowerBound=50005000, bnMidValue=50005000
bnUpperBound=75002500, bnLowerBound=50005000, bnMidValue=75002500
bnUpperBound=62503750, bnLowerBound=50005000, bnMidValue=62503750
bnUpperBound=56254375, bnLowerBound=50005000, bnMidValue=56254375
bnUpperBound=56254375, bnLowerBound=53129687, bnMidValue=53129687
bnUpperBound=54692031, bnLowerBound=53129687, bnMidValue=54692031
bnUpperBound=54692031, bnLowerBound=53910859, bnMidValue=53910859
bnUpperBound=54301445, bnLowerBound=53910859, bnMidValue=54301445
bnUpperBound=54301445, bnLowerBound=54106152, bnMidValue=54106152
bnUpperBound=54301445, bnLowerBound=54203798, bnMidValue=54203798
bnUpperBound=54301445, bnLowerBound=54252621, bnMidValue=54252621
bnUpperBound=54301445, bnLowerBound=54277033, bnMidValue=54277033
bnUpperBound=54301445, bnLowerBound=54289239, bnMidValue=54289239
bnUpperBound=54295342, bnLowerBound=54289239, bnMidValue=54295342
```

System.Numerics:

```
bnUpperBound=100000000 bnLowerBound=50005000 bnMidValue=50005000
bnUpperBound=75002500 bnLowerBound=50005000 bnMidValue=75002500
bnUpperBound=62503750 bnLowerBound=50005000 bnMidValue=62503750
bnUpperBound=56254375 bnLowerBound=50005000 bnMidValue=56254375
bnUpperBound=56254375 bnLowerBound=53129687 bnMidValue=53129687
bnUpperBound=54692031 bnLowerBound=53129687 bnMidValue=54692031
bnUpperBound=54692031 bnLowerBound=53910859 bnMidValue=53910859
bnUpperBound=54301445 bnLowerBound=53910859 bnMidValue=54301445
bnUpperBound=54301445 bnLowerBound=54106152 bnMidValue=54106152
bnUpperBound=54301445 bnLowerBound=54203798 bnMidValue=54203798
bnUpperBound=54301445 bnLowerBound=54252621 bnMidValue=54252621
bnUpperBound=54301445 bnLowerBound=54277033 bnMidValue=54277033
bnUpperBound=54301445 bnLowerBound=54289239 bnMidValue=54289239
bnUpperBound=54301445 bnLowerBound=54295342 bnMidValue=54295342
```

Novacoin/CBlock.cs

index afc3e48..2dc8a3b 100644 (file)
@@ -21,7 +21,7 @@ using System.Text;
 using System.Collections.Generic;
 using System.Diagnostics.Contracts;
 using System.IO;
-using System.Numerics;
+using System.Numerics; // TODO: implement wrapper for BouncyCastle implementation of BigInteger and use it instead. This is necessary due to incompatibility of System.Numerics.BigInteger with OpenSSL.
 
 namespace Novacoin
 {