Added random or configurable instance ID
This commit is contained in:
parent
90bdc9a250
commit
96cfc412a8
@ -1,4 +1,5 @@
|
||||
var events = require('events');
|
||||
var crypto = require('crypto');
|
||||
|
||||
var bignum = require('bignum');
|
||||
|
||||
@ -14,18 +15,17 @@ var blockTemplate = require('./blockTemplate.js');
|
||||
|
||||
|
||||
//Unique extranonce per subscriber
|
||||
var ExtraNonceCounter = function(){
|
||||
var instanceId = 31;
|
||||
var ExtraNonceCounter = function(configInstanceId){
|
||||
|
||||
var instanceId = configInstanceId || crypto.randomBytes(4).readUInt32LE(0);
|
||||
var counter = instanceId << 27;
|
||||
var size = util.packUInt32BE(counter).length;
|
||||
|
||||
this.next = function(){
|
||||
var extraNonce = util.packUInt32BE(counter++);
|
||||
var extraNonce = util.packUInt32BE(Math.abs(counter++));
|
||||
return extraNonce.toString('hex');
|
||||
};
|
||||
this.size = function(){
|
||||
return size;
|
||||
};
|
||||
|
||||
this.size = 4; //bytes
|
||||
};
|
||||
|
||||
//Unique job per new block template
|
||||
@ -126,7 +126,7 @@ var JobManager = module.exports = function JobManager(options){
|
||||
|
||||
//public members
|
||||
|
||||
this.extraNonceCounter = new ExtraNonceCounter();
|
||||
this.extraNonceCounter = new ExtraNonceCounter(options.instanceId);
|
||||
this.extraNoncePlaceholder = new Buffer('f000000ff111111f', 'hex');
|
||||
this.extraNonce2Size = this.extraNoncePlaceholder.length - this.extraNonceCounter.size();
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user