diff --git a/lib/algoProperties.js b/lib/algoProperties.js index f7eb3a8..774bd48 100644 --- a/lib/algoProperties.js +++ b/lib/algoProperties.js @@ -186,7 +186,7 @@ function BufferToCompact(startingBuff){ } -function ConvertBitsToHex(bitsBuff){ +function ConvertBitsToBuff(bitsBuff){ var numBytes = bitsBuff.readUInt8(0); var bigBits = bignum.fromBuffer(bitsBuff.slice(1)); var target = bigBits.mul( @@ -202,17 +202,19 @@ function ConvertBitsToHex(bitsBuff){ buff256.fill(0); resultBuff.copy(buff256, buff256.length - resultBuff.length); - var hexResult = buff256.toString('hex'); - - return hexResult; + //var hexResult = buff256.toString('hex'); + //return hexResult; + return buff256; } for (var algo in algos){ if (!algos[algo].diff) { var nonTruncatedDiff = ShiftMax256Right(algos[algo].shift); var compactBits = BufferToCompact(nonTruncatedDiff); - var truncatedDiff = ConvertBitsToHex(compactBits); + var truncatedDiff = ConvertBitsToBuff(compactBits); + algos[algo].bits = compactBits; algos[algo].diff = truncatedDiff; + algos[algo].nonTruncatedDiff = nonTruncatedDiff; } } \ No newline at end of file diff --git a/lib/blockTemplate.js b/lib/blockTemplate.js index d6840b8..307de33 100644 --- a/lib/blockTemplate.js +++ b/lib/blockTemplate.js @@ -43,7 +43,7 @@ var BlockTemplate = module.exports = function BlockTemplate(maxDifficulty, jobId bignum.fromBuffer(new Buffer(rpcData.target, 'hex')) : util.bignumFromBits(rpcData.bits); - this.difficulty = maxDifficulty.div(this.target).toNumber(); + this.difficulty = maxDifficulty.div(this.target); this.prevHashReversed = util.reverseByteOrder(new Buffer(rpcData.previousblockhash, 'hex')).toString('hex'); this.transactionData = Buffer.concat(rpcData.transactions.map(function(tx){ diff --git a/lib/jobManager.js b/lib/jobManager.js index dd320a5..a639e02 100644 --- a/lib/jobManager.js +++ b/lib/jobManager.js @@ -201,6 +201,7 @@ var JobManager = module.exports = function JobManager(maxDifficulty, hashDigest, } } + if (!!blockHex) { _this.emit('debugBlockShare', { @@ -217,14 +218,14 @@ var JobManager = module.exports = function JobManager(maxDifficulty, hashDigest, } _this.emit('share', { - job : jobId, - ip : ipAddress, - worker : workerName, - difficulty : difficulty, - height : job.rpcData.height, - reward : job.rpcData.coinbasevalue, - networkDifficulty : job.difficulty, - solution : blockHash + job: jobId, + ip: ipAddress, + worker: workerName, + difficulty: difficulty, + height: job.rpcData.height, + reward: job.rpcData.coinbasevalue, + networkDifficulty : job.difficulty.toString(), + solution: blockHash }, blockHex); return {result: true, error: null, solution: blockHash}; diff --git a/lib/pool.js b/lib/pool.js index f1127b6..52ae6c7 100644 --- a/lib/pool.js +++ b/lib/pool.js @@ -83,14 +83,14 @@ var pool = module.exports = function pool(options, authorizeFn){ Object.keys(options.ports).forEach(function(port){ var portDiff = options.ports[port].diff; - if (portDiff > _this.jobManager.currentJob.difficulty) + if (_this.jobManager.currentJob.difficulty.le(portDiff)) portWarnings.push('port ' + port + ' w/ difficulty ' + portDiff); }); //Only let the first fork show synced status or the log wil look flooded with it if (portWarnings.length > 0 && (!process.env.forkId || process.env.forkId === '0')) { - var warnMessage = 'Network difficulty of ' + _this.jobManager.currentJob.difficulty + ' is lower than ' + var warnMessage = 'Network difficulty of ' + _this.jobManager.currentJob.difficulty.toString() + ' is lower than ' + portWarnings.join(' and '); emitWarningLog(warnMessage); } @@ -115,7 +115,7 @@ var pool = module.exports = function pool(options, authorizeFn){ 'Current Block Height:\t' + _this.jobManager.currentJob.rpcData.height, 'Current Connect Peers:\t' + options.initStats.connections, 'Network Hash Rate:\t' + (options.initStats.networkHashRate / 1e3).toFixed(6) + ' KH/s', - 'Network Difficulty:\t' + _this.jobManager.currentJob.difficulty, + 'Network Difficulty:\t' + _this.jobManager.currentJob.difficulty.toString(), 'Listening Port(s):\t' + _this.options.initStats.stratumPorts.join(', ') ]; @@ -442,7 +442,7 @@ var pool = module.exports = function pool(options, authorizeFn){ options.testnet = infoResult.testnet; - options.initStats = { connections: infoResult.connections}; + options.initStats = { connections: infoResult.connections, difficulty: infoResult.difficulty }; callback(null); diff --git a/lib/varDiff.js b/lib/varDiff.js index 40518d0..9d3eb2a 100644 --- a/lib/varDiff.js +++ b/lib/varDiff.js @@ -106,7 +106,7 @@ var varDiff = module.exports = function varDiff(port, varDiffOptions){ } else if (avg < tMin) { ddiff = 2; - var diffMax = networkDifficulty < options.maxDiff ? networkDifficulty : options.maxDiff; + //var diffMax = networkDifficulty < options.maxDiff ? networkDifficulty : options.maxDiff; var diffMax = options.maxDiff; if (ddiff * client.difficulty > diffMax) { ddiff = diffMax / client.difficulty;