Merge pull request #248 from cubedro/gasLimit

Gas limit
This commit is contained in:
Marian OANCΞA 2015-08-06 13:59:52 +03:00
commit a234329103
5 changed files with 99 additions and 62 deletions

View File

@ -436,6 +436,25 @@ History.prototype.getBlockTimes = function()
return blockTimes; return blockTimes;
} }
History.prototype.getGasLimit = function()
{
var gasLimitHistory = _( this._items )
.sortByOrder( 'height', false )
// .filter(function (item)
// {
// return item.block.trusted;
// })
.slice(0, MAX_BINS)
.reverse()
.map(function (item)
{
return item.block.gasLimit;
})
.value();
return gasLimitHistory;
}
History.prototype.getDifficulty = function() History.prototype.getDifficulty = function()
{ {
var difficultyHistory = _( this._items ) var difficultyHistory = _( this._items )
@ -540,7 +559,7 @@ History.prototype.getMinersCount = function()
return _(minerCount) return _(minerCount)
.sortByOrder( 'blocks', false ) .sortByOrder( 'blocks', false )
.slice(0, 5) .slice(0, 2)
.value(); .value();
} }
@ -570,6 +589,7 @@ History.prototype.getCharts = function()
uncles: item.block.uncles.length, uncles: item.block.uncles.length,
transactions: item.block.transactions.length, transactions: item.block.transactions.length,
gasSpending: item.block.gasUsed, gasSpending: item.block.gasUsed,
gasLimit: item.block.gasLimit,
miner: item.block.miner miner: item.block.miner
}; };
}) })
@ -583,6 +603,7 @@ History.prototype.getCharts = function()
uncles : _.pluck( chartHistory, 'uncles' ), uncles : _.pluck( chartHistory, 'uncles' ),
transactions : _.pluck( chartHistory, 'transactions' ), transactions : _.pluck( chartHistory, 'transactions' ),
gasSpending : _.pluck( chartHistory, 'gasSpending' ), gasSpending : _.pluck( chartHistory, 'gasSpending' ),
gasLimit : _.pluck( chartHistory, 'gasLimit' ),
miners : this.getMinersCount(), miners : this.getMinersCount(),
propagation : this.getBlockPropagation(), propagation : this.getBlockPropagation(),
uncleCount : this.getUncleCount(), uncleCount : this.getUncleCount(),

View File

@ -343,7 +343,7 @@ nodepropagchart {
position: relative; position: relative;
display: block; display: block;
width: 100%; width: 100%;
height: 282px; height: 242px;
overflow: hidden; overflow: hidden;
} }

View File

@ -21,6 +21,7 @@ netStatsApp.controller('StatsCtrl', function($scope, $filter, $localStorage, soc
$scope.uncleCount = 0; $scope.uncleCount = 0;
$scope.bestStats = {}; $scope.bestStats = {};
$scope.lastGasLimit = _.fill(Array(MAX_BINS), 2);
$scope.lastBlocksTime = _.fill(Array(MAX_BINS), 2); $scope.lastBlocksTime = _.fill(Array(MAX_BINS), 2);
$scope.difficultyChart = _.fill(Array(MAX_BINS), 2); $scope.difficultyChart = _.fill(Array(MAX_BINS), 2);
$scope.transactionDensity = _.fill(Array(MAX_BINS), 2); $scope.transactionDensity = _.fill(Array(MAX_BINS), 2);
@ -327,6 +328,9 @@ netStatsApp.controller('StatsCtrl', function($scope, $filter, $localStorage, soc
if( !_.isEqual($scope.avgHashrate, data.avgHashrate) ) if( !_.isEqual($scope.avgHashrate, data.avgHashrate) )
$scope.avgHashrate = data.avgHashrate; $scope.avgHashrate = data.avgHashrate;
if( !_.isEqual($scope.lastGasLimit, data.gasLimit) && data.gasLimit.length >= MAX_BINS )
$scope.lastGasLimit = data.gasLimit;
if( !_.isEqual($scope.lastBlocksTime, data.blocktime) && data.blocktime.length >= MAX_BINS ) if( !_.isEqual($scope.lastBlocksTime, data.blocktime) && data.blocktime.length >= MAX_BINS )
$scope.lastBlocksTime = data.blocktime; $scope.lastBlocksTime = data.blocktime;

View File

@ -211,13 +211,13 @@ angular.module('netStatsApp.directives', [])
element.empty(); element.empty();
var width = 628, var width = 628,
height = 244; height = 202;
scope.map = new Datamap({ scope.map = new Datamap({
element: element[0], element: element[0],
scope: 'world', scope: 'world',
width: width, width: width,
height: 300, height: 242,
fills: { fills: {
success: '#7BCC3A', success: '#7BCC3A',
info: '#10A0DE', info: '#10A0DE',

View File

@ -60,93 +60,104 @@ block content
div.row(ng-cloak) div.row(ng-cloak)
div.col-xs-8.stats-boxes(style="padding-top: 0px;") div.col-xs-12.stats-boxes(style="padding-top: 0px;")
div.row.second-row div.row.second-row
div.col-xs-3.stat-holder.box div.col-xs-2.stat-holder.box
div.active-nodes(class="{{ nodesActive | nodesActiveClass : nodesTotal }}") div.active-nodes(class="{{ nodesActive | nodesActiveClass : nodesTotal }}")
i.icon-node i.icon-node
span.small-title active nodes span.small-title active nodes
span.small-value {{nodesActive}}/{{nodesTotal}} span.small-value {{nodesActive}}/{{nodesTotal}}
//- div.col-xs-3.stat-holder.box div.col-xs-2.stat-holder.box
//- div.difficulty.text-info
//- i.icon-difficulty
//- span.small-title difficulty
//- span.small-value {{ lastDifficulty | number }}
div.col-xs-3.stat-holder.box
div.gasprice.text-info div.gasprice.text-info
i.icon-gasprice i.icon-gasprice
span.small-title gas price span.small-title gas price
span.small-value {{ bestStats.gasPrice.toString() | gasPriceFilter }} span.small-value {{ bestStats.gasPrice.toString() | gasPriceFilter }}
div.col-xs-3.stat-holder.box div.col-xs-2.stat-holder.box
div.gasprice.text-info
i.icon-gasprice
span.small-title gas limit
span.small-value {{ bestStats.block.gasLimit }} gas
div.col-xs-2.stat-holder.box
div.page-latency(class="{{ {active: true, latency: latency} | latencyClass }}") div.page-latency(class="{{ {active: true, latency: latency} | latencyClass }}")
i.icon-clock i.icon-clock
span.small-title page latency span.small-title page latency
span.small-value {{latency}} ms span.small-value {{latency}} ms
div.col-xs-3.stat-holder.box div.col-xs-2.stat-holder.box
div.uptime(class="{{ upTimeTotal | upTimeClass : true }}") div.uptime(class="{{ upTimeTotal | upTimeClass : true }}")
i.icon-bulb i.icon-bulb
span.small-title uptime span.small-title uptime
span.small-value {{ upTimeTotal | upTimeFilter }} span.small-value {{ upTimeTotal | upTimeFilter }}
div.col-xs-2.stat-holder.box
div.row div.row
div.col-xs-3.stat-holder div.col-xs-8
div.big-info.chart(class="{{ avgBlockTime | avgTimeClass }}") div.row
//- i.icon-time div.col-xs-3.stat-holder
span.small-title block time div.big-info.chart(class="{{ avgBlockTime | avgTimeClass }}")
//- span.small-value {{ avgBlockTime | avgTimeFilter }} //- i.icon-time
sparkchart.big-details.spark-blocktimes(data="{{lastBlocksTime.join(',')}}", tooltipsuffix="s") span.small-title block time
//- span.small-value {{ avgBlockTime | avgTimeFilter }}
sparkchart.big-details.spark-blocktimes(data="{{lastBlocksTime.join(',')}}", tooltipsuffix="s")
div.col-xs-3.stat-holder div.col-xs-3.stat-holder
div.big-info.chart.text-info div.big-info.chart.text-info
//- i.icon-difficulty //- i.icon-difficulty
span.small-title difficulty span.small-title difficulty
//- span.small-value {{ lastDifficulty | number }} //- span.small-value {{ lastDifficulty | number }}
sparkchart.big-details.spark-difficulty(data="{{difficultyChart.join(',')}}") sparkchart.big-details.spark-difficulty(data="{{difficultyChart.join(',')}}")
div.col-xs-3.stat-holder.xpull-right div.col-xs-3.stat-holder.xpull-right
div.big-info.chart.xdouble-chart(class="{{ blockPropagationAvg | propagationAvgTimeClass : true }}") div.big-info.chart.xdouble-chart(class="{{ blockPropagationAvg | propagationAvgTimeClass : true }}")
//- i.icon-gas //- i.icon-gas
span.small-title block propagation span.small-title block propagation
//- span.small-value {{ blockPropagationAvg | blockPropagationFilter : '' }} //- span.small-value {{ blockPropagationAvg | blockPropagationFilter : '' }}
histogram.big-details.d3-blockpropagation(data="blockPropagationChart") histogram.big-details.d3-blockpropagation(data="blockPropagationChart")
div.col-xs-3.stat-holder.pull-right div.col-xs-3.stat-holder.xpull-right
div.big-info.chart.double-chart div.big-info.chart.xdouble-chart
span.small-title last blocks miners span.small-title last blocks miners
div.blocks-holder(ng-repeat='miner in miners track by miner.miner', data-toggle="tooltip", data-placement="right", data-original-title="{{miner.blocks}}") div.blocks-holder(ng-repeat='miner in miners track by miner.miner', data-toggle="tooltip", data-placement="right", data-original-title="{{miner.blocks}}")
div.block-count(class="{{miner.blocks | minerBlocksClass : 'text-'}}") {{miner.blocks}} div.block-count(class="{{miner.blocks | minerBlocksClass : 'text-'}}") {{miner.blocks}}
//- div.small-title-miner {{miner.miner | minerNameFilter : miner.name}} //- div.small-title-miner {{miner.miner | minerNameFilter : miner.name}}
div.small-title-miner {{miner.miner}} div.small-title-miner {{miner.miner}}
minerblock(blocks="{{miner.blocks}}") minerblock(blocks="{{miner.blocks}}")
div.clearfix div.clearfix
div.col-xs-3.stat-holder div.col-xs-3.stat-holder
div.big-info.chart.text-info div.big-info.chart.text-info
//- i.icon-uncle //- i.icon-uncle
span.small-title uncle count  span.small-title uncle count 
span.small (25 blocks per bar) span.small (25 blocks per bar)
//- span.small-value {{ bestStats.block.uncles.length }}/{{ uncleCount }} //- span.small-value {{ bestStats.block.uncles.length }}/{{ uncleCount }}
sparkchart.big-details.spark-uncles(data="{{uncleCountChart.join(',')}}") sparkchart.big-details.spark-uncles(data="{{uncleCountChart.join(',')}}")
div.col-xs-3.stat-holder div.col-xs-3.stat-holder
div.big-info.chart.text-info div.big-info.chart.text-info
//- i.icon-uncle //- i.icon-uncle
span.small-title transactions span.small-title transactions
sparkchart.big-details.spark-transactions(data="{{transactionDensity.join(',')}}") sparkchart.big-details.spark-transactions(data="{{transactionDensity.join(',')}}")
div.col-xs-3.stat-holder div.col-xs-3.stat-holder
div.big-info.chart.text-info div.big-info.chart.text-info
//- i.icon-gasprice //- i.icon-gasprice
span.small-title gas spending span.small-title gas spending
sparkchart.big-details.spark-gasspending(data="{{gasSpending.join(',')}}") sparkchart.big-details.spark-gasspending(data="{{gasSpending.join(',')}}")
div.col-xs-3.stat-holder
div.big-info.chart.text-info
//- i.icon-difficulty
span.small-title gas limit
//- span.small-value {{ lastDifficulty | number }}
sparkchart.big-details.spark-difficulty(data="{{lastGasLimit.join(',')}}")
div.col-xs-4.stat-holder.map-holder div.col-xs-4.stat-holder.map-holder
//- div.col-xs-12 //- div.col-xs-12
nodemap#mapHolder(data="map") nodemap#mapHolder(data="map")
//- div.col-xs-12.stats-boxes //- div.row
div.col-xs-12.stats-boxes
div.row.second-row div.row.second-row
div.col-xs-12.stat-holder.box div.col-xs-12.stat-holder.box
div.active-nodes.text-orange div.active-nodes.text-orange
@ -154,6 +165,7 @@ block content
span.small-title Block #1028201 hash span.small-title Block #1028201 hash
span.small-value {{frontierHash}} span.small-value {{frontierHash}}
//- div.clearfix //- div.clearfix
div.row(ng-cloak, style="padding-top: 10px") div.row(ng-cloak, style="padding-top: 10px")