Merge pull request #186 from cubedro/develop

Added clean blocks higher than best block
This commit is contained in:
Marian OANCΞA 2015-06-09 06:27:13 +03:00
commit 05a23d1f3e
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 else
{ {
this._blockchain.clean(this.getBestBlockFromItems());
var block = this._blockchain.add(stats.block, id); var block = this._blockchain.add(stats.block, id);
if (!block) if (!block)
@ -57,6 +59,8 @@ Collection.prototype.addBlock = function(id, stats, callback)
} }
else else
{ {
this._blockchain.clean(this.getBestBlockFromItems());
var block = this._blockchain.add(stats, id); var block = this._blockchain.add(stats, id);
if (!block) if (!block)
@ -113,6 +117,8 @@ Collection.prototype.addHistory = function(id, blocks, callback)
{ {
blocks = blocks.reverse(); blocks = blocks.reverse();
this._blockchain.clean(this.getBestBlockFromItems());
for (var i = 0; i <= blocks.length - 1; i++) for (var i = 0; i <= blocks.length - 1; i++)
{ {
this._blockchain.add(blocks[i], id); this._blockchain.add(blocks[i], id);
@ -254,6 +260,13 @@ Collection.prototype.getHistory = function()
return this._blockchain; 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) Collection.prototype.canNodeUpdate = function(id)
{ {
var node = this.getNode({id: id}); var node = this.getNode({id: id});

View File

@ -126,20 +126,6 @@ History.prototype.add = function(block, id)
this._save(item); 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; 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) History.prototype.search = function(number)
{ {
var index = _.findIndex( this._items, { height: 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); return parseInt(node.stats.block.number);
}).stats.block.number; }).stats.block.number;
if( bestBlock > $scope.bestBlock ) if( bestBlock !== $scope.bestBlock )
{ {
$scope.bestBlock = bestBlock; $scope.bestBlock = bestBlock;
$scope.bestStats = _.max($scope.nodes, function (node) { $scope.bestStats = _.max($scope.nodes, function (node) {