From ecadd503e8bca1e4a00e8998d2b86ff9a13fbddf Mon Sep 17 00:00:00 2001
From: cgeek <cem.moreau@gmail.com>
Date: Sun, 23 Nov 2014 19:14:52 +0100
Subject: [PATCH] Fix: wrong implementation of PoW rule

---
 app/lib/globalValidator.js      | 2 +-
 test/fast/block/block_global.js | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/app/lib/globalValidator.js b/app/lib/globalValidator.js
index d0bba8981..110a35a69 100644
--- a/app/lib/globalValidator.js
+++ b/app/lib/globalValidator.js
@@ -516,7 +516,7 @@ function GlobalValidator (conf, dao) {
               function (next) {
                 //----- Following blocks -----
                 var issuers = [];
-                var neededMax = interBlocksCount;
+                var neededMax = lastBlockNbZeros - conf.powZeroMin + interBlocksCount;
                 var i = current.number; // Start INCLUDING current number
                 async.whilst(
                   function(){ return i > lasts[0].number && issuers.length < neededMax; }, // End exluding last block, stop if reaches 0 difficulty
diff --git a/test/fast/block/block_global.js b/test/fast/block/block_global.js
index f1c2087e3..634cd3f2b 100644
--- a/test/fast/block/block_global.js
+++ b/test/fast/block/block_global.js
@@ -534,10 +534,10 @@ function BlockCheckerDao (block) {
       done(null, { confirmedDate: 1411775000 });
     else if (number == 59)      
       done(null, { issuer: 'G2CBgZBPLe6FSFUgpx2Jf1Aqsgta6iib3vmDRA1yLiqU' });
+    else if (number == 60)      
+      done(null, { issuer: 'AbCCJLAQ5sqfknMq7yLPZbehtuLSsKj9CxWN7k8QvYJd' });
     else if (number == 61)      
       done(null, { issuer: 'G2CBgZBPLe6FSFUgpx2Jf1Aqsgta6iib3vmDRA1yLiqU' });
-    else if (number == 62)      
-      done(null, { issuer: 'AbCCJLAQ5sqfknMq7yLPZbehtuLSsKj9CxWN7k8QvYJd' });
     else if (number == 63)      
       done(null, { issuer: 'AbCCJLAQ5sqfknMq7yLPZbehtuLSsKj9CxWN7k8QvYJd' });
     else if (number == 64)      
@@ -583,7 +583,7 @@ function BlockCheckerDao (block) {
       }]);
     } else if (block.number == 67 && issuer == 'HgTTJLAQ5sqfknMq7yLPZbehtuLSsKj9CxWN7k8QvYJd') {
       done(null, [{
-        number: 60,
+        number: 62,
         hash: '0000008A955B2196FB8560DCDA7A70B19DDB3433' // 6 zeros + 2 (3 blocks with 2 diff. issuers) interblock - 2 (3 blocks with 2 diff. issuers) block since = 6 required zeros
       },{
         number: 58,
-- 
GitLab