From f2786e7a5bf529932758eff6f1040f98a0c3f73d Mon Sep 17 00:00:00 2001 From: hellcatz Date: Wed, 2 Aug 2017 19:26:32 -0700 Subject: [PATCH 1/2] Update paymentProcessor.js Sort rounds during payments so blocks are paid in order. Optimization to max blocks per payment logic. --- libs/paymentProcessor.js | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/libs/paymentProcessor.js b/libs/paymentProcessor.js index 4e317e2..46a5921 100644 --- a/libs/paymentProcessor.js +++ b/libs/paymentProcessor.js @@ -592,6 +592,10 @@ function SetupForPool(logger, poolOptions, setupFinished){ serialized: r }; }); + /* sort rounds by block hieght to pay in order */ + rounds.sort(function(a, b) { + return a.height - b.height; + }); // find duplicate blocks by height // this can happen when two or more solutions are submitted at the same block height var duplicateFound = false; @@ -755,14 +759,9 @@ function SetupForPool(logger, poolOptions, setupFinished){ return true; }; - // limit blocks paid per payment round + // only pay max blocks at a time var payingBlocks = 0; - //filter out all rounds that are immature (not confirmed or orphaned yet) rounds = rounds.filter(function(r){ - // only pay max blocks at a time - if (payingBlocks >= maxBlocksPerPayment) - return false; - switch (r.category) { case 'orphan': case 'kicked': @@ -770,7 +769,7 @@ function SetupForPool(logger, poolOptions, setupFinished){ return true; case 'generate': payingBlocks++; - return true; + return (payingBlocks < maxBlocksPerPayment); default: return false; From f6fe32b7e51e6a77ce7a402cc4a2d9ffce0b3111 Mon Sep 17 00:00:00 2001 From: hellcatz Date: Thu, 3 Aug 2017 14:43:31 -0700 Subject: [PATCH 2/2] Update paymentProcessor.js Oops ... off by one ... --- libs/paymentProcessor.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/paymentProcessor.js b/libs/paymentProcessor.js index 46a5921..d3a907d 100644 --- a/libs/paymentProcessor.js +++ b/libs/paymentProcessor.js @@ -769,7 +769,7 @@ function SetupForPool(logger, poolOptions, setupFinished){ return true; case 'generate': payingBlocks++; - return (payingBlocks < maxBlocksPerPayment); + return (payingBlocks <= maxBlocksPerPayment); default: return false;