From 9d8255a620b23024564c2549697b991c898f2684 Mon Sep 17 00:00:00 2001 From: Matt Date: Wed, 19 Feb 2014 16:07:25 -0700 Subject: [PATCH] Vardiff perfect fix --- lib/pool.js | 2 +- lib/stratum.js | 9 +++++---- lib/varDiff.js | 10 +++++----- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/lib/pool.js b/lib/pool.js index d9909e2..db8fe8e 100644 --- a/lib/pool.js +++ b/lib/pool.js @@ -284,7 +284,7 @@ var pool = module.exports = function pool(options, authorizeFn){ }).on('submit', function(params, resultCallback){ var result =_this.jobManager.processShare( params.jobId, - client.difficulty, + client.currentDifficulty, client.extraNonce1, params.extraNonce2, params.nTime, diff --git a/lib/stratum.js b/lib/stratum.js index 1138ce1..81cc447 100644 --- a/lib/stratum.js +++ b/lib/stratum.js @@ -139,9 +139,9 @@ var StratumClient = function(options){ }); } ); - if (_this.lastEmittedDiff !== _this.difficulty){ - _this.lastEmittedDiff = _this.difficulty - _this.emit('difficultyChanged', _this.difficulty); + if (_this.lastEmittedDiff !== _this.currentDifficulty){ + _this.lastEmittedDiff = _this.currentDifficulty + _this.emit('difficultyChanged', _this.currentDifficulty); } } @@ -207,7 +207,7 @@ var StratumClient = function(options){ } if (difficulty !== this.difficulty) { - this.difficulty = difficulty; + _this.latestDifficulty = difficulty; sendJson({ id : null, method: "mining.set_difficulty", @@ -226,6 +226,7 @@ var StratumClient = function(options){ method: "mining.notify", params: jobParams }); + _this.currentDifficulty = _this.latestDifficulty }; }; StratumClient.prototype.__proto__ = events.EventEmitter.prototype; diff --git a/lib/varDiff.js b/lib/varDiff.js index 494a3ef..415705e 100644 --- a/lib/varDiff.js +++ b/lib/varDiff.js @@ -78,7 +78,7 @@ var varDiff = module.exports = function varDiff(options, poolDifficulty){ lastRtc = ts - options.retargetTime / 2; lastTs = ts; timeBuffer = new RingBuffer(bufferSize); - console.log(bufferSize+ ' first time share vardiff curdiff: '+client.difficulty); + console.log(bufferSize+ ' first time share vardiff curdiff: '+client.currentDifficulty); return; } var sinceLast = ts - lastTs; @@ -97,10 +97,10 @@ var varDiff = module.exports = function varDiff(options, poolDifficulty){ var ddiff; - if (avg > tMax && client.difficulty > options.minDifficulty) { + if (avg > tMax && client.currentDifficulty > options.minDifficulty) { ddiff = 0.5; - if (ddiff * client.difficulty < options.minDifficulty) { - ddiff = options.minDifficulty / client.difficulty; + if (ddiff * client.currentDifficulty < options.minDifficulty) { + ddiff = options.minDifficulty / client.currentDifficulty; } } else if (avg < tMin) { ddiff = 2; @@ -119,7 +119,7 @@ var varDiff = module.exports = function varDiff(options, poolDifficulty){ return; } - var newDiff = client.difficulty * ddiff; + var newDiff = client.currentDifficulty * ddiff; timeBuffer.clear(); //console.log('sending new difficutly ' + newDiff);