From 6728e25672e7454b0dc802de4f8af00d538164e4 Mon Sep 17 00:00:00 2001 From: Aoi Emerauda Date: Sun, 15 Dec 2024 08:00:03 +0900 Subject: [PATCH 1/2] Simplify ExtraNonceCounter in jobManager.js and refactor hashing method for VIPSTAR algorithm in algoProperties.js --- lib/algoProperties.js | 2 +- lib/jobManager.js | 20 ++------------------ 2 files changed, 3 insertions(+), 19 deletions(-) diff --git a/lib/algoProperties.js b/lib/algoProperties.js index 4e3f65c1..d28c5f87 100644 --- a/lib/algoProperties.js +++ b/lib/algoProperties.js @@ -427,7 +427,7 @@ var algos = module.exports = global.algos = { 'vipstar': { hash: function () { return function () { - return multiHashing.sha256d.apply(this, arguments); + return multiHashing.vipstar.apply(this, arguments); } } } diff --git a/lib/jobManager.js b/lib/jobManager.js index 90bbadb4..b615b93d 100644 --- a/lib/jobManager.js +++ b/lib/jobManager.js @@ -7,15 +7,10 @@ var blockTemplate = require('./blockTemplate.js'); // Unique extranonce per subscriber var ExtraNonceCounter = function (configInstanceId) { var instanceId = configInstanceId || crypto.randomBytes(4).readUInt32LE(0); - var counter = BigInt(instanceId) << BigInt(27); + var counter = instanceId << 27; this.next = function () { - counter++; - // Ensure counter is within a safe range - if (counter > BigInt('0xFFFFFFFF')) { - counter = BigInt(instanceId) << BigInt(27); - } - var extraNonce = util.packUInt32BE(Number(counter & BigInt('0xFFFFFFFF'))); + var extraNonce = util.packUInt32BE(Math.abs(counter++)); return extraNonce.toString('hex'); }; @@ -48,16 +43,12 @@ var JobManager = module.exports = function JobManager(options) { var jobCounter = new JobCounter(); var emitErrorLog = function (text) { _this.emit('log', 'error', text); }; - // Initialize extranonce counter this.extraNonceCounter = new ExtraNonceCounter(options.instanceId); this.extraNoncePlaceholder = Buffer.from('f000000ff111111f', 'hex'); this.extraNonce2Size = this.extraNoncePlaceholder.length - this.extraNonceCounter.size; this.currentJob; this.validJobs = {}; - // Initialize shareMultiplier, with a default value if not provided - this.shareMultiplier = options.shareMultiplier || 1; - var hashDigest = algos[options.coin.algorithm].hash(options.coin); var coinbaseHasher = (function () { @@ -264,13 +255,6 @@ var JobManager = module.exports = function JobManager(options) { return shareError([24, `Algorithm properties not found for ${algorithm}`]); } - var diff1; - try { - // Ensure algoProps.diff is defined; if not, set a default value - diff1 = BigInt(algoProps.diff || '0x00000000ffff0000000000000000000000000000000000000000000000000000'); - } catch (e) { - return shareError([25, 'Cannot convert diff to BigInt: ' + e.message]); - } var multiplier = algoProps.multiplier || 1; var shareDiff = Number(diff1) / Number(headerBigNum) * multiplier; From 9ab64d6fe8df3e25ae7c81ff4900c646298d9728 Mon Sep 17 00:00:00 2001 From: Aoi Emerauda Date: Sun, 15 Dec 2024 08:03:29 +0900 Subject: [PATCH 2/2] Update package.json to version 0.2.9 and modify dependencies for improved compatibility --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index e46c7587..f508e056 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "stratum-pool", - "version": "0.2.8", + "version": "0.2.9", "description": "High performance Stratum poolserver in Node.js", "keywords": [ "stratum", @@ -33,9 +33,9 @@ "url": "https://github.com/ROZ-MOFUMOFU-ME/node-stratum-pool.git" }, "dependencies": { - "@exodus/bitcoinjs-lib-zcash": "^0.0.13", + "@exodus/bitcoinjs-lib-zcash": "^0.0.14", "async": "^3.2.6", - "bitcoinjs-lib": "^7.0.0-rc.0", + "bitcoinjs-lib": "^6.1.7", "multi-hashing": "git+https://github.com/ROZ-MOFUMOFU-ME/node-multi-hashing.git" }, "engines": {