|
|
|
@ -14,6 +14,7 @@
@@ -14,6 +14,7 @@
|
|
|
|
|
#include "coins.h" |
|
|
|
|
#include "core.h" |
|
|
|
|
#include "net.h" |
|
|
|
|
#include "pow.h" |
|
|
|
|
#include "script.h" |
|
|
|
|
#include "sync.h" |
|
|
|
|
#include "txmempool.h" |
|
|
|
@ -792,17 +793,7 @@ public:
@@ -792,17 +793,7 @@ public:
|
|
|
|
|
|
|
|
|
|
uint256 GetBlockWork() const |
|
|
|
|
{ |
|
|
|
|
uint256 bnTarget; |
|
|
|
|
bool fNegative; |
|
|
|
|
bool fOverflow; |
|
|
|
|
bnTarget.SetCompact(nBits, &fNegative, &fOverflow); |
|
|
|
|
if (fNegative || fOverflow || bnTarget == 0) |
|
|
|
|
return 0; |
|
|
|
|
// We need to compute 2**256 / (bnTarget+1), but we can't represent 2**256
|
|
|
|
|
// as it's too large for a uint256. However, as 2**256 is at least as large
|
|
|
|
|
// as bnTarget+1, it is equal to ((2**256 - bnTarget - 1) / (bnTarget+1)) + 1,
|
|
|
|
|
// or ~bnTarget / (nTarget+1) + 1.
|
|
|
|
|
return (~bnTarget / (bnTarget + 1)) + 1; |
|
|
|
|
return GetProofIncrement(nBits); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
enum { nMedianTimeSpan=11 }; |
|
|
|
|