From 609eb0ae90af65b6ca91ea8a99f6b4f23d7463db Mon Sep 17 00:00:00 2001 From: Matthew Little Date: Wed, 26 Mar 2014 15:08:34 -0600 Subject: [PATCH] Fixed errors that occurred when certain modules were not configured/enabled. --- coins/helixcoin.json | 6 ++ coins/wecoin.json | 6 ++ init.js | 14 ++++ libs/paymentProcessor.js | 9 ++- libs/poolWorker.js | 4 +- libs/stats.js | 14 ++++ pool_configs/litecoin_testnet_example.json | 92 ---------------------- 7 files changed, 49 insertions(+), 96 deletions(-) create mode 100644 coins/helixcoin.json create mode 100644 coins/wecoin.json delete mode 100644 pool_configs/litecoin_testnet_example.json diff --git a/coins/helixcoin.json b/coins/helixcoin.json new file mode 100644 index 0000000..adf4d2e --- /dev/null +++ b/coins/helixcoin.json @@ -0,0 +1,6 @@ +{ + "name" : "Helixcoin", + "symbol" : "HXC", + "algorithm" : "keccak", + "txMessages" : false +} \ No newline at end of file diff --git a/coins/wecoin.json b/coins/wecoin.json new file mode 100644 index 0000000..19e2e17 --- /dev/null +++ b/coins/wecoin.json @@ -0,0 +1,6 @@ +{ + "name" : "Wecoin", + "symbol" : "WEC", + "algorithm" : "keccak", + "txMessages" : false +} \ No newline at end of file diff --git a/init.js b/init.js index 4b7870b..972f554 100644 --- a/init.js +++ b/init.js @@ -179,6 +179,20 @@ var startRedisBlockListener = function(portalConfig){ var startPaymentProcessor = function(poolConfigs){ + + var enabledForAny = false; + for (var pool in poolConfigs){ + var p = poolConfigs[pool]; + var enabled = p.shareProcessing && p.shareProcessing.internal && p.shareProcessing.internal.enabled; + if (enabled){ + enabledForAny = true; + break; + } + } + + if (!enabledForAny) + return; + var worker = cluster.fork({ workerType: 'paymentProcessor', pools: JSON.stringify(poolConfigs) diff --git a/libs/paymentProcessor.js b/libs/paymentProcessor.js index 3b5c0ac..38a14fa 100644 --- a/libs/paymentProcessor.js +++ b/libs/paymentProcessor.js @@ -19,11 +19,16 @@ module.exports = function(logger){ function SetupForPool(logger, poolOptions){ - var coin = poolOptions.coin.name; + if (!poolOptions.shareProcessing || + poolOptions.shareProcessing.internal || + !poolOptions.shareProcessing.internal.enabled) + return; + + var coin = poolOptions.coin.name; var processingConfig = poolOptions.shareProcessing.internal; - if (!processingConfig.enabled) return; + var logSystem = 'Payments'; var logComponent = coin; diff --git a/libs/poolWorker.js b/libs/poolWorker.js index dd39636..8706fe8 100644 --- a/libs/poolWorker.js +++ b/libs/poolWorker.js @@ -64,7 +64,7 @@ module.exports = function(logger){ var shareProcessing = poolOptions.shareProcessing; //Functions required for MPOS compatibility - if (shareProcessing.mpos && shareProcessing.mpos.enabled){ + if (shareProcessing && shareProcessing.mpos && shareProcessing.mpos.enabled){ var mposCompat = new MposCompatibility(logger, poolOptions) handlers.auth = function(workerName, password, authCallback){ @@ -81,7 +81,7 @@ module.exports = function(logger){ } //Functions required for internal payment processing - else if (shareProcessing.internal && shareProcessing.internal.enabled){ + else if (shareProcessing && shareProcessing.internal && shareProcessing.internal.enabled){ var shareProcessor = new ShareProcessor(logger, poolOptions) diff --git a/libs/stats.js b/libs/stats.js index 177c82a..c049c76 100644 --- a/libs/stats.js +++ b/libs/stats.js @@ -8,6 +8,8 @@ module.exports = function(logger, portalConfig, poolConfigs){ var _this = this; + var logSystem = 'Stats'; + var redisClients = []; var algoMultipliers = { @@ -17,8 +19,20 @@ module.exports = function(logger, portalConfig, poolConfigs){ 'sha256': Math.pow(2, 32) }; + var canDoStats = true; + Object.keys(poolConfigs).forEach(function(coin){ + + if (!canDoStats) return; + var poolConfig = poolConfigs[coin]; + + if (!poolConfig.shareProcessing || !poolConfig.shareProcessing.internal){ + logger.error(logSystem, coin, 'Cannot do stats without internal share processing setup'); + canDoStats = false; + return; + } + var internalConfig = poolConfig.shareProcessing.internal; var redisConfig = internalConfig.redis; diff --git a/pool_configs/litecoin_testnet_example.json b/pool_configs/litecoin_testnet_example.json deleted file mode 100644 index ba66286..0000000 --- a/pool_configs/litecoin_testnet_example.json +++ /dev/null @@ -1,92 +0,0 @@ -{ - "disabled": false, - "coin": "litecoin.json", - - "shareProcessing": { - "internal": { - "enabled": true, - "validateWorkerAddress": true, - "paymentInterval": 10, - "minimumPayment": 100.001, - "minimumReserve": 10, - "feePercent": 0.02, - "feeReceiveAddress": "LZz44iyF4zLCXJTU8RxztyyJZBntdS6fvv", - "feeWithdrawalThreshold": 5, - "daemon": { - "host": "localhost", - "port": 19332, - "user": "litecoinrpc", - "password": "testnet" - }, - "redis": { - "host": "localhost", - "port": 6379 - } - }, - "mpos": { - "enabled": false, - "host": "localhost", - "port": 3306, - "user": "me", - "password": "mypass", - "database": "ltc", - "stratumAuth": "password" - } - }, - - - "address": "mfsm1ckZKTTjDz94KonZZsbZnAbm1UV4BF", - "blockRefreshInterval": 1000, - "txRefreshInterval": 20000, - "connectionTimeout": 600, - - "banning": { - "enabled": true, - "time": 600, - "invalidPercent": 50, - "checkThreshold": 500, - "purgeInterval": 300 - }, - - "ports": { - "3008":{ - "diff": 8, - "varDiff": { - "minDiff": 8, - "maxDiff": 512, - "targetTime": 15, - "retargetTime": 90, - "variancePercent": 30 - } - }, - "3032": { - "diff": 16 - }, - "3256": { - "diff": 256 - } - }, - - "daemons": [ - { - "host": "localhost", - "port": 19332, - "user": "litecoinrpc", - "password": "testnet" - }, - { - "host": "localhost", - "port": 19344, - "user": "litecoinrpc", - "password": "testnet" - } - ], - - "p2p": { - "enabled": false, - "host": "localhost", - "port": 19333, - "protocolVersion": 70002, - "magic": "fcc1b7dc" - } -} \ No newline at end of file