Browse Source

Clone object before anonymizing

pull/1/head
webworker01 5 years ago
parent
commit
cd64ff943e
  1. 22
      libs/api.js
  2. 27
      libs/website.js

22
libs/api.js

@ -33,21 +33,23 @@ module.exports = function(logger, portalConfig, poolConfigs){
case 'getblocksstats': case 'getblocksstats':
portalStats.getBlocks(function(data){ portalStats.getBlocks(function(data){
//Anonymize //Anonymize
filterIterate(data, {split:{by:':', index:3}}, 'miner-'); let anonData = JSON.parse(JSON.stringify(data));
filterIterate(anonData, {split:{by:':', index:3}}, 'miner-');
res.header('Content-Type', 'application/json'); res.header('Content-Type', 'application/json');
res.end(JSON.stringify(data)); res.end(JSON.stringify(anonData));
}); });
break; break;
case 'payments': case 'payments':
var poolBlocks = []; var poolBlocks = [];
for(var pool in portalStats.stats.pools) { let anonPortalStats = JSON.parse(JSON.stringify(portalStats.stats));
filterIterate(portalStats.stats.pools[pool].pending.blocks, {split:{by:':', index:3}}, 'miner-'); for(var pool in anonPortalStats.pools) {
for (payment in portalStats.stats.pools[pool].payments) { filterIterate(anonPortalStats.pools[pool].pending.blocks, {split:{by:':', index:3}}, 'miner-');
filterIterate(portalStats.stats.pools[pool].payments[payment].amounts, {key: true}, 'miner-', ); for (payment in anonPortalStats.pools[pool].payments) {
filterIterate(portalStats.stats.pools[pool].payments[payment].balances, {key: true}, 'miner-', ); filterIterate(anonPortalStats.pools[pool].payments[payment].amounts, {key: true}, 'miner-', );
filterIterate(portalStats.stats.pools[pool].payments[payment].work, {key: true}, 'miner-', ); filterIterate(anonPortalStats.pools[pool].payments[payment].balances, {key: true}, 'miner-', );
} filterIterate(anonPortalStats.pools[pool].payments[payment].work, {key: true}, 'miner-', );
poolBlocks.push({name: pool, pending: portalStats.stats.pools[pool].pending, payments: portalStats.stats.pools[pool].payments}); }
poolBlocks.push({name: pool, pending: anonPortalStats.pools[pool].pending, payments: anonPortalStats.pools[pool].payments});
} }
res.header('Content-Type', 'application/json'); res.header('Content-Type', 'application/json');
res.end(JSON.stringify(poolBlocks)); res.end(JSON.stringify(poolBlocks));

27
libs/website.js

@ -118,22 +118,23 @@ module.exports = function(logger){
processTemplates(); processTemplates();
//Anonymize //Anonymize
for (pool in portalStats.stats.pools) { let anonPortalStats = JSON.parse(JSON.stringify(portalStats.stats));
filterIterate(portalStats.stats.pools[pool].confirmed.blocks, {split:{by:':', index:3}}, 'miner-'); for (pool in anonPortalStats.pools) {
filterIterate(portalStats.stats.pools[pool].currentRoundShares, {key: true}, 'miner-'); filterIterate(anonPortalStats.pools[pool].confirmed.blocks, {split:{by:':', index:3}}, 'miner-');
filterIterate(portalStats.stats.pools[pool].currentRoundTimes, {key: true}, 'miner-'); filterIterate(anonPortalStats.pools[pool].currentRoundShares, {key: true}, 'miner-');
filterIterate(portalStats.stats.pools[pool].miners, {key: true, prop: ['name']}, 'miner-', ); filterIterate(anonPortalStats.pools[pool].currentRoundTimes, {key: true}, 'miner-');
filterIterate(portalStats.stats.pools[pool].pending.blocks, {split:{by:':', index:3}}, 'miner-'); filterIterate(anonPortalStats.pools[pool].miners, {key: true, prop: ['name']}, 'miner-', );
filterIterate(portalStats.stats.pools[pool].workers, {key: true, prop: ['name']}, 'worker-', ); filterIterate(anonPortalStats.pools[pool].pending.blocks, {split:{by:':', index:3}}, 'miner-');
filterIterate(anonPortalStats.pools[pool].workers, {key: true, prop: ['name']}, 'worker-', );
for (payment in portalStats.stats.pools[pool].payments) {
filterIterate(portalStats.stats.pools[pool].payments[payment].amounts, {key: true}, 'miner-', ); for (payment in anonPortalStats.pools[pool].payments) {
filterIterate(portalStats.stats.pools[pool].payments[payment].balances, {key: true}, 'miner-', ); filterIterate(anonPortalStats.pools[pool].payments[payment].amounts, {key: true}, 'miner-', );
filterIterate(portalStats.stats.pools[pool].payments[payment].work, {key: true}, 'miner-', ); filterIterate(anonPortalStats.pools[pool].payments[payment].balances, {key: true}, 'miner-', );
filterIterate(anonPortalStats.pools[pool].payments[payment].work, {key: true}, 'miner-', );
} }
} }
var statData = 'data: ' + JSON.stringify(portalStats.stats) + '\n\n'; var statData = 'data: ' + JSON.stringify(anonPortalStats) + '\n\n';
for (var uid in portalApi.liveStatConnections) { for (var uid in portalApi.liveStatConnections) {
var res = portalApi.liveStatConnections[uid]; var res = portalApi.liveStatConnections[uid];
res.write(statData); res.write(statData);

Loading…
Cancel
Save