diff --git a/public/include/classes/statistics.class.php b/public/include/classes/statistics.class.php index eea80b71..57c5e20e 100644 --- a/public/include/classes/statistics.class.php +++ b/public/include/classes/statistics.class.php @@ -731,6 +731,32 @@ class Statistics { } return $aEstimates; } + + /** + * Get pool stats last 24 hours + * @param limit int Last number of hours + * @return array + **/ + public function getPoolStatsHours($hour=24) { + $this->debug->append("STA " . __METHOD__, 4); + if ($data = $this->memcache->get(__FUNCTION__ . $hour)) return $data; + $stmt = $this->mysqli->prepare(" + SELECT + IFNULL(COUNT(id), 0) as count, + IFNULL(AVG(difficulty), 0) as average, + IFNULL(ROUND(SUM((difficulty * 65536) / POW(2, (" . $this->config['difficulty'] . " -16))), 0), 0) AS expected, + IFNULL(ROUND(SUM(shares)), 0) as shares, + IFNULL(SUM(amount), 0) as rewards + FROM " . $this->block->getTableName() . " + WHERE FROM_UNIXTIME(time) > DATE_SUB(now(), INTERVAL ? HOUR) + AND confirmations >= 1"); + if ($this->checkStmt($stmt) && $stmt->bind_param("i", $hour) && $stmt->execute() && $result = $stmt->get_result()) + return $this->memcache->setCache(__FUNCTION__ . $hour, $result->fetch_assoc()); + // Catchall + $this->debug->append("Failed to get pool statistics:" . $this->mysqli->error); + return false; + } + } diff --git a/public/include/pages/statistics/blocks.inc.php b/public/include/pages/statistics/blocks.inc.php index c21a078b..93e1c338 100644 --- a/public/include/pages/statistics/blocks.inc.php +++ b/public/include/pages/statistics/blocks.inc.php @@ -68,11 +68,15 @@ if (!$smarty->isCached('master.tpl', $smarty_cache_key)) { } } } -//var_dump($aBlocksFoundData); + + $iHours = 24; + $aPoolStatistics = $statistics->getPoolStatsHours($iHours); + // Propagate content our template $smarty->assign("BLOCKSFOUND", $aBlocksFoundData); $smarty->assign("BLOCKLIMIT", $iLimit); $smarty->assign("USEBLOCKAVERAGE", $use_average); + $smarty->assign("POOLSTATS", $aPoolStatistics); } else { $debug->append('Using cached page', 3); } diff --git a/public/templates/mmcFE/statistics/blocks/default.tpl b/public/templates/mmcFE/statistics/blocks/default.tpl index 2d952f86..5e80d361 100644 --- a/public/templates/mmcFE/statistics/blocks/default.tpl +++ b/public/templates/mmcFE/statistics/blocks/default.tpl @@ -40,6 +40,35 @@ The graph above illustrates N shares to find a block vs. E Shares expected to find a block based on target and network difficulty and assuming a zero variance scenario.

+ + + + + + + + + + + + + + + + + {assign var=percentage1 value=0} + + + + + + + + + +
Last 24 hour totals
Blocks FoundRewardsAvg DifficultyExpected SharesActual SharesPercentage
{$POOLSTATS.count|number_format:"0"}{$POOLSTATS.rewards|number_format:"4"}{$POOLSTATS.average|number_format:"4"}{$POOLSTATS.expected|number_format:"0"}{$POOLSTATS.shares|number_format:"0"}{if $POOLSTATS.shares > 0}{math assign="percentage1" equation="shares1 / estshares1 * 100" shares1=$POOLSTATS.shares estshares1=$POOLSTATS.expected}{/if} + {$percentage1|number_format:"2"}
+ diff --git a/public/templates/mpos/statistics/blocks/default.tpl b/public/templates/mpos/statistics/blocks/default.tpl index c2587a12..0e089b4b 100644 --- a/public/templates/mpos/statistics/blocks/default.tpl +++ b/public/templates/mpos/statistics/blocks/default.tpl @@ -36,6 +36,36 @@ {/if}
+ +
+ + + + + + + + + + + + + + + + {assign var=percentage1 value=0} + + + + + + + + + +
Last 24 hour totals
Blocks FoundRewardsAvg DifficultyExpected SharesActual SharesPercentage
{$POOLSTATS.count|number_format:"0"}{$POOLSTATS.rewards|number_format:"4"}{$POOLSTATS.average|number_format:"4"}{$POOLSTATS.expected|number_format:"0"}{$POOLSTATS.shares|number_format:"0"}{if $POOLSTATS.shares > 0}{math assign="percentage1" equation="shares1 / estshares1 * 100" shares1=$POOLSTATS.shares estshares1=$POOLSTATS.expected}{/if} + {$percentage1|number_format:"2"}
+ @@ -77,7 +107,6 @@ {assign var=count value=0} {assign var=totalexpectedshares value=0} {assign var=totalshares value=0} -{assign var=totalpercentage value=0} {assign var=pplnsshares value=0} {section block $BLOCKSFOUND} {assign var="totalshares" value=$totalshares+$BLOCKSFOUND[block].shares} @@ -110,7 +139,6 @@
{$BLOCKSFOUND[block].shares|number_format} {math assign="percentage" equation="shares / estshares * 100" shares=$BLOCKSFOUND[block].shares estshares=$BLOCKSFOUND[block].estshares} -{assign var="totalpercentage" value=$totalpercentage+$percentage} {$percentage|number_format:"2"}