Browse Source

Clone object before anonymizing

dev
webworker01 5 years ago
parent
commit
cd64ff943e
  1. 20
      libs/api.js
  2. 27
      libs/website.js

20
libs/api.js

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

27
libs/website.js

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

Loading…
Cancel
Save