This commit is contained in:
Matthew Little 2014-01-11 13:42:30 -05:00
parent 0a70bd3061
commit c4adf3b282
3 changed files with 44 additions and 25 deletions

View File

@ -67,18 +67,24 @@ Installation
"stratumPort": 3334, "stratumPort": 3334,
"difficulty": 8, "difficulty": 8,
"daemon": { "daemon": {
"bin": "dogecoind", "host": "localhost",
"port": 8332, "port": 8332,
"user": "test", "user": "test",
"password": "test", "password": "test"
"blocknotify": "blockNotify.js doge %s",
"startIfOffline": true
} }
} }
``` ```
* Supported `"algorithm"` options: `"sha256"` `"scrypt"` `"scrypt-jane"` `"quark"` * Supported `"algorithm"` options: `"sha256"` `"scrypt"` `"scrypt-jane"` `"quark"`
* Supported `"reward"` options: `"POW"` `"POS"` * Supported `"reward"` options: `"POW"` `"POS"`
* Ensure the `daemon` properties are configured correctly for RPC communication
* Setting up blocknotify (optional, recommended)
* Inside `config.json` make sure `blockNotifyListener.enabled` is set to true
* Set the `blockNotifyListener.port` and `blockNotifyListener.password`
* Inside your daemon startup parameters or conf file, use `-blocknotify="[path to blockNotify.js] [pool host]:[pool blockNotifyListener port] [blockNotifyListener password] [coin symbole set in coin's json config] %s"`
* Example: `dogecoind -blocknotify="blockNotify.js localhost:8117 mySuperSecurePassword doge %s"
* If your daemon is on a different host you will have to copy the `blockNotify.js` to it
* To start the poolserver run: * To start the poolserver run:

View File

@ -2,9 +2,20 @@
var net = require('net'); var net = require('net');
var client = net.connect({port: 8124}, function() { var config = process.argv[1];
var parts = config.split(':');
var host = parts[0];
var port = parts[1];
var password = process.argv[2];
var coin = process.argv[3];
var blockHash = process.argv[4];
var client = net.connect(port, host, function() {
console.log('client connected'); console.log('client connected');
client.write(JSON.stringify(process.argv) + '\n'); client.write(JSON.stringify({
password: password,
blockHash: blockHash
}) + '\n');
}); });
client.on('data', function(data) { client.on('data', function(data) {

40
init.js
View File

@ -2,8 +2,6 @@ var net = require('net');
var fs = require('fs'); var fs = require('fs');
var path = require('path'); var path = require('path');
var bignum = require('bignum');
var pool = require('./pool.js'); var pool = require('./pool.js');
var logRef = console.log; var logRef = console.log;
@ -12,12 +10,15 @@ console.log = function(s){
logRef(time + ': ' + s); logRef(time + ': ' + s);
}; };
var config = JSON.parse(fs.readFileSync("config.json"));
function Coin(options){ function Coin(options){
this.options = options; this.options = options;
} }
Coin.prototype = {}; Coin.prototype = {};
var coins = []; var coins = [];
var confFolder = 'coins'; var confFolder = 'coins';
@ -40,20 +41,21 @@ fs.readdir(confFolder, function(err, files){
}); });
if (config.blockNotifyListener.enabled){
var blockNotifyServer = net.createServer(function(c) { var blockNotifyServer = net.createServer(function(c) {
console.log('server connected'); console.log('server connected');
var data = ''; var data = '';
c.on('data', function(d){ c.on('data', function(d){
console.log('got blocknotify data'); console.log('got blocknotify data');
data += d; data += d;
if (data.slice(-1) === '\n'){ if (data.slice(-1) === '\n'){
c.end(); c.end();
} }
});
c.on('end', function() {
console.log(data);
console.log('server disconnected');
});
}); });
c.on('end', function() { blockNotifyServer.listen(config.blockNotifyListener.port, function() {});
console.log(data); }
console.log('server disconnected');
});
});
//blockNotifyServer.listen(8124, function() {});