2014-01-14 08:56:06 -08:00
|
|
|
var fs = require('fs');
|
|
|
|
var dateFormat = require('dateformat');
|
|
|
|
var Stratum = require('stratum-pool');
|
|
|
|
var PoolLogger = require('./libs/logutils.js');
|
|
|
|
|
|
|
|
var loggerInstance = new PoolLogger({
|
|
|
|
'default': true,
|
|
|
|
'keys': {
|
|
|
|
'client' : 'warning',
|
|
|
|
'system' : true,
|
|
|
|
'submitblock' : true,
|
|
|
|
}
|
|
|
|
});
|
2014-01-13 17:32:54 -08:00
|
|
|
|
2014-01-14 08:56:06 -08:00
|
|
|
var logDebug = loggerInstance.logDebug;
|
|
|
|
var logWarning = loggerInstance.logWarning;
|
|
|
|
var logError = loggerInstance.logError;
|
2014-01-13 17:32:54 -08:00
|
|
|
|
|
|
|
var config = JSON.parse(fs.readFileSync("config.json"));
|
|
|
|
|
|
|
|
|
|
|
|
var stratum = new Stratum(config);
|
|
|
|
stratum.on('log', function(logText){
|
2014-01-14 08:56:06 -08:00
|
|
|
logDebug(logText);
|
2014-01-13 17:32:54 -08:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
fs.readdirSync('coins').forEach(function(file){
|
|
|
|
|
|
|
|
var coinOptions = JSON.parse(fs.readFileSync('coins/' + file, {encoding: 'utf8'}));
|
|
|
|
|
|
|
|
var authorizeFN = function (ip, workerName, password, callback) {
|
|
|
|
// Default implementation just returns true
|
2014-01-14 08:56:06 -08:00
|
|
|
logDebug(coinOptions.name, 'client', "Authorize ["+ip+"] "+workerName+":"+password);
|
2014-01-13 17:32:54 -08:00
|
|
|
callback({
|
|
|
|
error: null,
|
|
|
|
authorized: true,
|
|
|
|
disconnect: false
|
|
|
|
});
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
var pool = stratum.createPool(coinOptions, authorizeFN);
|
|
|
|
pool.on('share', function(isValid, data){
|
|
|
|
if (isValid)
|
2014-01-14 08:56:06 -08:00
|
|
|
logDebug(coinOptions.name, 'client', "A new Valid share from " + data.client.workerName + " has arrived! - " + data.blockHeaderHex);
|
2014-01-13 17:32:54 -08:00
|
|
|
else
|
2014-01-14 08:56:06 -08:00
|
|
|
logDebug(coinOptions.name, 'client', "Invalid share form " + data.client.workerName + " ErrorCode: " + data.errorCode + " ErrorDescription: " + data.errorDescription);
|
|
|
|
}).on('log', function(severity, logKey, logText) {
|
|
|
|
if (severity == 'debug') {
|
|
|
|
logDebug(coinOptions.name, logKey, logText);
|
|
|
|
} else if (severity == 'warning') {
|
|
|
|
logWarning(coinOptions.name, logKey, logText);
|
|
|
|
} else if (severity == 'error') {
|
|
|
|
logError(coinOptions.name, logKey, logText);
|
|
|
|
}
|
|
|
|
});
|
2014-01-13 17:32:54 -08:00
|
|
|
|
|
|
|
});
|
|
|
|
|