node-stratum-pool/init.js
Matthew Little b41dd96826 Updated
2014-01-10 18:18:23 -05:00

83 lines
2.0 KiB
JavaScript

var net = require('net');
var fs = require('fs');
var path = require('path');
var bignum = require('bignum');
var pool = require('./pool.js');
function Coin(options){
this.options = options;
}
Coin.prototype = {};
var coins = [];
/*
var coins = [
new Coin({
name: 'Dogecoin',
symbol: 'doge',
algorithm: 'scrypt', //or sha256, scrypt-jane, quark
reward: 'POW', //or POS
address: 'DDt79i6P3Wro3SD3HSnkRLpMgUGUGdiNhS',
stratumPort: 3334,
difficulty: 8,
daemon: {
bin: 'dogecoind',
port: 8332,
user: 'test',
password: 'test',
blocknotify: '"blockNotify.js doge %s"',
startIfOffline: true
}
})
];*/
var logRef = console.log;
console.log = function(s){
var time = new Date().toISOString();
logRef(time + ': ' + s);
};
var confFolder = 'coins';
fs.readdir(confFolder, function(err, files){
if (err) throw err;
files.forEach(function(file){
var filePath = confFolder + '/' + file;
if (path.extname(filePath) !== '.json') return;
fs.readFile(filePath, {encoding: 'utf8'}, function(err, data){
if (err) throw err;
var coinJson = JSON.parse(data)
var coin = new Coin(coinJson);
console.log('Starting pool for ' + coin.options.name);
coin.pool = new pool(coin);
coins.push(coin);
});
});
});
var blockNotifyServer = net.createServer(function(c) {
console.log('server connected');
var data = '';
c.on('data', function(d){
console.log('got blocknotify data');
data += d;
if (data.slice(-1) === '\n'){
c.end();
}
});
c.on('end', function() {
console.log(data);
console.log('server disconnected');
});
});
//blockNotifyServer.listen(8124, function() {});