Merge pull request #39 from cubedro/develop

Moved popagation to backend fixes #38
This commit is contained in:
Marian OANCΞA 2015-04-05 00:59:43 +03:00
commit 391c0269e2
5 changed files with 44 additions and 16 deletions

View File

@ -4,6 +4,7 @@ var Node = require('./node');
var Collection = function Collection()
{
this._list = [];
this._bestBlock = null;
return this;
}
@ -23,6 +24,35 @@ Collection.prototype.update = function(id, stats)
if(!node)
return false;
if(this._bestBlock === null)
{
stats.block.received = (new Date()).getTime();
stats.block.propagation = 0;
this._bestBlock = stats.block;
}
else
{
var oldStats = node.getStats();
if(stats.block.number !== oldStats.stats.block.number)
{
stats.block.received = (new Date()).getTime();
if(this._bestBlock.number < oldStats.stats.block.number)
{
stats.block.propagation = 0;
this._bestBlock = stats.block;
}
else
{
stats.block.propagation = stats.block.received - this._bestBlock.received;
}
} else {
stats.block.received = oldStats.stats.block.received;
stats.block.propagation = oldStats.stats.block.propagation;
}
}
return node.setStats(stats);
}

View File

@ -90,11 +90,12 @@ Node.prototype.setStats = function(stats)
{
if(typeof stats !== 'undefined' && typeof stats.block !== 'undefined' && typeof stats.block.number !== 'undefined')
{
if(stats.block.number !== this.stats.block.number) {
stats.block.received = (new Date()).getTime();
} else {
stats.block.received = this.stats.block.received;
}
// if(stats.block.number !== this.stats.block.number) {
// stats.block.received = (new Date()).getTime();
// } else {
// stats.block.received = this.stats.block.received;
// }
stats.block.hash = stats.block.hash.replace('0x', '');
this.stats = stats;

View File

@ -76,11 +76,11 @@ function StatsCtrl($scope, $filter, socket, _, toastr) {
case "update":
var index = findIndex({id: data.id});
if(data.stats.block.number > $scope.nodes[index].stats.block.number) {
data.stats.block.firstarrived = (data.stats.block.number > $scope.bestBlock ? data.stats.block.received : $scope.lastBlock);
} else {
data.stats.block.firstarrived = $scope.nodes[index].stats.block.firstarrived;
}
// if(data.stats.block.number > $scope.nodes[index].stats.block.number) {
// data.stats.block.firstarrived = (data.stats.block.number > $scope.bestBlock ? data.stats.block.received : $scope.lastBlock);
// } else {
// data.stats.block.firstarrived = $scope.nodes[index].stats.block.firstarrived;
// }
$scope.nodes[index].stats = data.stats;

View File

@ -75,9 +75,7 @@ angular.module('netStatsApp.filters', [])
};
})
.filter('propagationTimeClass', function() {
return function(arrival, best) {
var propagation = arrival - best;
return function(propagation) {
if(propagation <= 3000)
return 'text-success';
@ -125,8 +123,7 @@ angular.module('netStatsApp.filters', [])
};
})
.filter('blockPropagationFilter', function() {
return function(arrival, best) {
var ms = arrival - best;
return function(ms) {
var result = 0;
if(ms < 1000) {

View File

@ -140,5 +140,5 @@ block content
//- div.small Difficulty: {{node.stats.block.difficulty | gasFilter}} | Gas used: {{node.stats.block.gasUsed | gasFilter}} | Min gas price: {{node.stats.block.minGasPrice | gasFilter}} | Gas limit: {{node.stats.block.gasLimit | gasFilter}}
td(style="padding-left: 18px;") {{node.stats.block.transactions.length || 0}}
td(class="{{ node.stats.block.timestamp | timeClass }}") {{node.stats.block.received | blockTimeFilter }}
td(class="{{ node.stats.block.received | propagationTimeClass : node.stats.block.firstarrived }}") {{node.stats.block.received | blockPropagationFilter : node.stats.block.firstarrived}}
td(class="{{ node.stats.block.propagation | propagationTimeClass }}") {{node.stats.block.propagation | blockPropagationFilter}}
td(class="{{ node.stats.uptime | upTimeClass }}") {{ node.stats.uptime | upTimeFilter }}