added clean blocks higher than best block

This commit is contained in:
cubedro 2015-06-09 06:25:34 +03:00
parent c26ba17cd4
commit d9ae085890
5 changed files with 32 additions and 17 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -28,6 +28,8 @@ Collection.prototype.update = function(id, stats, callback)
}
else
{
this._blockchain.clean(this.getBestBlockFromItems());
var block = this._blockchain.add(stats.block, id);
if (!block)
@ -57,6 +59,8 @@ Collection.prototype.addBlock = function(id, stats, callback)
}
else
{
this._blockchain.clean(this.getBestBlockFromItems());
var block = this._blockchain.add(stats, id);
if (!block)
@ -113,6 +117,8 @@ Collection.prototype.addHistory = function(id, blocks, callback)
{
blocks = blocks.reverse();
this._blockchain.clean(this.getBestBlockFromItems());
for (var i = 0; i <= blocks.length - 1; i++)
{
this._blockchain.add(blocks[i], id);
@ -254,6 +260,13 @@ Collection.prototype.getHistory = function()
return this._blockchain;
}
Collection.prototype.getBestBlockFromItems = function()
{
return _.result(_.max(this._items, function(item) {
return item.stats.block.number;
}), 'stats.block.number', 0);
}
Collection.prototype.canNodeUpdate = function(id)
{
var node = this.getNode({id: id});

View File

@ -126,20 +126,6 @@ History.prototype.add = function(block, id)
this._save(item);
changed = true;
}
else if(this._items.length > 0 && block.arrived - this.bestBlock().arrived > 10*60*1000)
{
this._items.splice(0,1);
item.propagTimes.push({
node: id,
received: now,
propagation: block.propagation
});
this._save(item);
changed = true;
}
}
@ -165,6 +151,22 @@ History.prototype._save = function(block)
}
}
History.prototype.clean = function(max)
{
if(max > 0 && this._items.length > 0 && max < this.bestBlockNumber())
{
console.log("MAX:", max);
console.log("History items before:", this._items.length);
this._items = _(this._items).filter(function(item) {
return item.height <= max;
}).value();
console.log("History items after:", this._items.length);
}
}
History.prototype.search = function(number)
{
var index = _.findIndex( this._items, { height: number } );

View File

@ -485,7 +485,7 @@ netStatsApp.controller('StatsCtrl', function($scope, $filter, $localStorage, soc
return parseInt(node.stats.block.number);
}).stats.block.number;
if( bestBlock > $scope.bestBlock )
if( bestBlock !== $scope.bestBlock )
{
$scope.bestBlock = bestBlock;
$scope.bestStats = _.max($scope.nodes, function (node) {