fixed nodes propagation chart and average for nodes out of date

This commit is contained in:
cubedro 2015-05-19 07:55:51 +03:00
parent 88ca0b1d50
commit 64e7ca085e
6 changed files with 52 additions and 7 deletions

2
dist/index.html vendored

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -158,22 +158,33 @@ History.prototype.getNodePropagation = function(id)
{
var propagation = new Array( MAX_PEER_PROPAGATION );
var bestBlock = this.bestBlockNumber();
var lastBlocktime = _.now();
_.fill(propagation, -1);
var sorted = _( this._items )
.sortByOrder( 'height', false )
.slice( 0, MAX_PEER_PROPAGATION )
.reverse()
.forEach(function (item, key)
{
var index = MAX_PEER_PROPAGATION - 1 - bestBlock + item.height;
if(index > 0)
if(index >= 0)
{
propagation[index] = _.result(_.find(item.propagTimes, 'node', id), 'propagation', -1);
var tmpPropagation = _.result(_.find(item.propagTimes, 'node', id), 'propagation', false);
if (_.result(_.find(item.propagTimes, 'node', id), 'propagation', false) !== false)
{
propagation[index] = tmpPropagation;
lastBlocktime = item.block.arrived;
}
else
{
propagation[index] = Math.max(0, lastBlocktime - item.block.arrived);
}
}
})
.reverse()
.value();
return propagation;

View File

@ -356,6 +356,40 @@ angular.module('netStatsApp.filters', [])
return prefix + Math.round(result) + " days";
};
})
.filter('blockPropagationAvgFilter', function() {
return function(stats, bestBlock) {
var ms = stats.propagationAvg;
if(bestBlock - stats.block.number > 40)
ms = _.now() - stats.block.received;
prefix = '';
var result = 0;
if(ms < 1000) {
return (ms === 0 ? "" : prefix) + ms + " ms";
}
if(ms < 1000*60) {
result = ms/1000;
return prefix + result.toFixed(1) + " s";
}
if(ms < 1000*60*60) {
result = ms/1000/60;
return prefix + Math.round(result) + " min";
}
if(ms < 1000*60*60*24) {
result = ms/1000/60/60;
return prefix + Math.round(result) + " h";
}
result = ms/1000/60/60/24;
return prefix + Math.round(result) + " days";
};
})
.filter('avgTimeFilter', function() {
return function(time) {
if(time < 60)

View File

@ -209,5 +209,5 @@ block content
div.propagationBox
span {{node.stats.block.propagation | blockPropagationFilter}}
td.peerPropagationChart(class="{{node.id}}")
td(class="{{ node.stats | propagationNodeAvgTimeClass : bestBlock }}") {{ node.stats.propagationAvg | blockPropagationFilter : '' }}
td(class="{{ node.stats | propagationNodeAvgTimeClass : bestBlock }}") {{ node.stats | blockPropagationAvgFilter : bestBlock }}
td(class="{{ node.stats.uptime | upTimeClass : node.stats.active }}") {{ node.stats.uptime | upTimeFilter }}