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 () {