From 4a088b19fc95ee7ca251a74944bc0e3947e8f2af Mon Sep 17 00:00:00 2001 From: Matt Date: Sun, 9 Mar 2014 13:16:47 -0600 Subject: [PATCH] Fix for miners disconnecting. Jobs are broadcasted at least every 30 seconds. --- lib/stratum.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/stratum.js b/lib/stratum.js index c62705b..77755ca 100644 --- a/lib/stratum.js +++ b/lib/stratum.js @@ -299,6 +299,8 @@ var StratumServer = exports.Server = function StratumServer(ports, connectionTim var stratumClients = {}; var subscriptionCounter = SubscriptionCounter(); + var rebroadcastTimeout; + var bannedIPs = {}; //Interval to look through bannedIPs for old bans and remove them in order to prevent a memory leak @@ -373,6 +375,16 @@ var StratumServer = exports.Server = function StratumServer(ports, connectionTim client.sendMiningJob(jobParams); } } + + /* Some miners will consider the pool dead if it doesn't receive a job at least every 30 seconds. + So every time broadcast jobs, we set a timeout to rebroadcast in 30 seconds unless cleared. */ + clearTimeout(rebroadcastTimeout); + rebroadcastTimeout = setTimeout(function(){ + console.log('resent jobs'); + var resendParams = jobParams; + resendParams[8] = false; + _this.broadcastMiningJobs(resendParams); + }, 30000); }; this.getStratumClients = function () {