From 79502053cf39c225cfa54edfda6e83a7d559b48f Mon Sep 17 00:00:00 2001 From: Mikel Fernandez Date: Wed, 27 Sep 2017 08:10:55 +0200 Subject: [PATCH 1/4] Added support for miners using Proxy V1 --- lib/pool.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/lib/pool.js b/lib/pool.js index 74bf83978..93850a113 100644 --- a/lib/pool.js +++ b/lib/pool.js @@ -50,6 +50,7 @@ var shareTrustMinFloat = shareTrustEnabled ? config.poolServer.shareTrust.min / var banningEnabled = config.poolServer.banning && config.poolServer.banning.enabled; +var client_ip = {}; setInterval(function(){ @@ -97,7 +98,7 @@ process.on('message', function(message) { function IsBannedIp(ip){ - if (!banningEnabled || !bannedIPs[ip]) return false; + if (!banningEnabled || !bannedIPs[ip] || ip == "127.0.0.1") return false; var bannedTime = bannedIPs[ip]; var bannedTimeAgo = Date.now() - bannedTime; @@ -616,7 +617,8 @@ var httpResponse = ' 200 OK\nContent-Type: text/plain\nContent-Length: 20\n\nmin function startPoolServerTcp(callback){ async.each(config.poolServer.ports, function(portData, cback){ - var handleMessage = function(socket, jsonData, pushMessage){ + var handleMessage = function(socket, jsonData, pushMessage, c_ip){ + c_ip = c_ip || socket.remoteAddress; if (!jsonData.id) { log('warn', logSystem, 'Miner RPC request missing RPC id'); return; @@ -641,7 +643,7 @@ function startPoolServerTcp(callback){ socket.write(sendData); }; - handleMinerMethod(jsonData.method, jsonData.params, socket.remoteAddress, portData, sendReply, pushMessage); + handleMinerMethod(jsonData.method, jsonData.params, c_ip, portData, sendReply, pushMessage); }; net.createServer(function(socket){ @@ -689,13 +691,18 @@ function startPoolServerTcp(callback){ break; } } + if (message.indexOf('PROXY TCP4') === 0) { + client_ip[socket.remotePort] = message.split(' ')[2]; + log('info', logSystem, 'Proxy V1 request %s: %s', [client_ip[socket.remotePort], message]); + continue; + } log('warn', logSystem, 'Malformed message from %s: %s', [socket.remoteAddress, message]); socket.destroy(); break; } - handleMessage(socket, jsonData, pushMessage); + handleMessage(socket, jsonData, pushMessage, client_ip[socket.remotePort]); } dataBuffer = incomplete; } From 4c3095b3436f3aa52f4e438c37ec9111596acdd4 Mon Sep 17 00:00:00 2001 From: Mikel Fernandez Date: Wed, 27 Sep 2017 13:46:51 -0400 Subject: [PATCH 2/4] Added a third decimal digit to the "Estimate Mining Profits" calculator --- website_example/pages/home.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website_example/pages/home.html b/website_example/pages/home.html index 7561a534e..43ae4a0da 100644 --- a/website_example/pages/home.html +++ b/website_example/pages/home.html @@ -328,7 +328,7 @@

Payments

var inp2 = parseFloat($('#calcHashRate').val()) * rateUnit; var resl = ( lastStats.network.reward / coinUnits) / ((lastStats.network.difficulty / inp2) / 86400 ); if (!isNaN(resl)) { - updateText('calcHashAmount', (Math.round(resl * 100) / 100).toString()); + updateText('calcHashAmount', (Math.round(resl * 1000) / 1000).toString()); return; } } From 134d6eaf6402dd02a58a8bc9b65694b63849773e Mon Sep 17 00:00:00 2001 From: Mikel Fernandez Date: Wed, 27 Sep 2017 13:50:52 -0400 Subject: [PATCH 3/4] Support for showing the value of the pending balance and total paid in another currency (for instance, dollar). To enable, set the cryptonatorEarnings in config.js as in the following example: var cryptonatorWidget = ["XMR-BTC", "XMR-USD", "XMR-EUR"]; var cryptonatorEarnings = "XMR-USD" /* Must be included in the Widget */ If left unconfigured, the web interface does not show the conversion --- website_example/pages/home.html | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/website_example/pages/home.html b/website_example/pages/home.html index 43ae4a0da..fbfa4c8b9 100644 --- a/website_example/pages/home.html +++ b/website_example/pages/home.html @@ -281,6 +281,8 @@

Payments

var intervalMarketPolling = setInterval(updateMarkets, 300000); //poll market data every 5 minutes var xhrMarketGets = {}; + var conversionRate; + var conversionUnit; updateMarkets(); function updateMarkets(){ var completedFetches = 0; @@ -300,6 +302,11 @@

Payments

if (price > 1) price = Math.round(price * 100) / 100; else price = marketsData[f].ticker.price; + if (typeof(cryptonatorEarnings) != 'undefined' && cryptonatorWidget[f] == cryptonatorEarnings) { + conversionRate = parseFloat(price); + conversionUnit = marketsData[f].ticker.target; + } + $marketHeader.after('
' + marketsData[f].ticker.base + ': ' + price + ' ' + marketsData[f].ticker.target + '
'); } $('#marketLastUpdated').timeago('update', new Date(marketsData[0].timestamp * 1000).toISOString()); @@ -408,8 +415,18 @@

Payments

updateText('yourHashrateHolder', (data.stats.hashrate || '0 H') + '/sec'); updateText('yourHashes', (data.stats.hashes || 0).toString()); - updateText('yourPaid', getReadableCoins(data.stats.paid)); - updateText('yourPendingBalance', getReadableCoins(data.stats.balance)); + var earningsPaid = (data.stats.paid || 0); + var convertedPaid = Math.round(100 * parseFloat(getReadableCoins(earningsPaid,0,false)) * conversionRate) / 100; + var earningsBalance = (data.stats.balance || 0); + var convertedBalance = Math.round(100 * parseFloat(getReadableCoins(earningsBalance,0,false)) * conversionRate) / 100; + if (conversionUnit) { + updateText('yourPaid', getReadableCoins(earningsPaid) + " (" + convertedPaid + " " + conversionUnit + ")"); + updateText('yourPendingBalance', getReadableCoins(earningsBalance) + " (" + convertedBalance + " " + conversionUnit + ")"); + } + else { + updateText('yourPaid', getReadableCoins(earningsPaid)); + updateText('yourPendingBalance', getReadableCoins(earningsBalance)); + } renderPayments(data.payments); From 8d456a81aa7e9d1f53c40eaa375b0afdae9837dd Mon Sep 17 00:00:00 2001 From: Mikel Fernandez Date: Mon, 16 Oct 2017 13:46:41 +0200 Subject: [PATCH 4/4] Added pool to README: moneropool.us --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index a1b87abc0..285ae0608 100644 --- a/README.md +++ b/README.md @@ -73,6 +73,7 @@ Comes with lightweight example front-end script which uses the pool's AJAX API. * https://moneropool.com * http://monero.crypto-pool.fr * https://minexmr.com +* https://moneropool.us Usage