From ae46d2496da31d0bdad8662f856e6e6741097a2f Mon Sep 17 00:00:00 2001 From: Sebastian Grewe Date: Thu, 7 Nov 2013 17:00:30 +0100 Subject: [PATCH] [IMPROVE] Merged block statistics * Removed 24 Hour Shares totals * Expanded Block Overview with shares stats --- public/include/classes/statistics.class.php | 26 +++- .../statistics/blocks/block_overview_time.tpl | 135 ++++++++++++++++-- .../statistics/blocks/block_shares_time.tpl | 27 ---- .../mpos/statistics/blocks/default.tpl | 1 - 4 files changed, 146 insertions(+), 43 deletions(-) delete mode 100644 public/templates/mpos/statistics/blocks/block_shares_time.tpl diff --git a/public/include/classes/statistics.class.php b/public/include/classes/statistics.class.php index fcb72531..30bdb078 100644 --- a/public/include/classes/statistics.class.php +++ b/public/include/classes/statistics.class.php @@ -49,21 +49,45 @@ class Statistics extends Base { COUNT(id) AS Total, IFNULL(SUM(IF(confirmations > 0, 1, 0)), 0) AS TotalValid, IFNULL(SUM(IF(confirmations = -1, 1, 0)), 0) AS TotalOrphan, + IFNULL(SUM(IF(confirmations > 0, difficulty, 0)), 0) AS TotalDifficulty, + IFNULL(ROUND(SUM(IF(confirmations > -1, shares, 0))), 0) AS TotalShares, + IFNULL(ROUND(SUM(IF(confirmations > -1, POW(2, ( 32 - " . $this->config['target_bits'] . " )) * difficulty / POW(2, (" . $this->config['difficulty'] . " -16)), 0))), 0) AS TotalEstimatedShares, + IFNULL(SUM(IF(confirmations > -1, amount, 0)), 0) AS TotalAmount, IFNULL(SUM(IF(FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 3600 SECOND), 1, 0)), 0) AS 1HourTotal, IFNULL(SUM(IF(confirmations > 0 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 3600 SECOND), 1, 0)), 0) AS 1HourValid, IFNULL(SUM(IF(confirmations = -1 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 3600 SECOND), 1, 0)), 0) AS 1HourOrphan, + IFNULL(SUM(IF(confirmations > 0 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 3600 SECOND), difficulty, 0)), 0) AS 1HourDifficulty, + IFNULL(ROUND(SUM(IF(confirmations > -1 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 3600 SECOND), shares, 0))), 0) AS 1HourShares, + IFNULL(ROUND(SUM(IF(confirmations > -1 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 3600 SECOND), POW(2, ( 32 - " . $this->config['target_bits'] . " )) * difficulty / POW(2, (" . $this->config['difficulty'] . " -16)), 0))), 0) AS 1HourEstimatedShares, + IFNULL(SUM(IF(confirmations > -1 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 3600 SECOND), amount, 0)), 0) AS 1HourAmount, IFNULL(SUM(IF(FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 86400 SECOND), 1, 0)), 0) AS 24HourTotal, IFNULL(SUM(IF(confirmations > 0 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 86400 SECOND), 1, 0)), 0) AS 24HourValid, IFNULL(SUM(IF(confirmations = -1 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 86400 SECOND), 1, 0)), 0) AS 24HourOrphan, + IFNULL(SUM(IF(confirmations > 0 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 86400 SECOND), difficulty, 0)), 0) AS 24HourDifficulty, + IFNULL(ROUND(SUM(IF(confirmations > -1 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 86400 SECOND), shares, 0))), 0) AS 24HourShares, + IFNULL(ROUND(SUM(IF(confirmations > -1 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 86400 SECOND), POW(2, ( 32 - " . $this->config['target_bits'] . " )) * difficulty / POW(2, (" . $this->config['difficulty'] . " -16)), 0))), 0) AS 24HourEstimatedShares, + IFNULL(SUM(IF(confirmations > -1 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 86400 SECOND), amount, 0)), 0) AS 24HourAmount, IFNULL(SUM(IF(FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 604800 SECOND), 1, 0)), 0) AS 7DaysTotal, IFNULL(SUM(IF(confirmations > 0 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 604800 SECOND), 1, 0)), 0) AS 7DaysValid, IFNULL(SUM(IF(confirmations = -1 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 604800 SECOND), 1, 0)), 0) AS 7DaysOrphan, + IFNULL(SUM(IF(confirmations > 0 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 604800 SECOND), difficulty, 0)), 0) AS 7DaysDifficulty, + IFNULL(ROUND(SUM(IF(confirmations > -1 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 604800 SECOND), shares, 0))), 0) AS 7DaysShares, + IFNULL(ROUND(SUM(IF(confirmations > -1 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 604800 SECOND), POW(2, ( 32 - " . $this->config['target_bits'] . " )) * difficulty / POW(2, (" . $this->config['difficulty'] . " -16)), 0))), 0) AS 7DaysEstimatedShares, + IFNULL(SUM(IF(confirmations > -1 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 604800 SECOND), amount, 0)), 0) AS 7DaysAmount, IFNULL(SUM(IF(FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 2419200 SECOND), 1, 0)), 0) AS 4WeeksTotal, IFNULL(SUM(IF(confirmations > 0 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 2419200 SECOND), 1, 0)), 0) AS 4WeeksValid, IFNULL(SUM(IF(confirmations = -1 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 2419200 SECOND), 1, 0)), 0) AS 4WeeksOrphan, + IFNULL(SUM(IF(confirmations > 0 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 2419200 SECOND), difficulty, 0)), 0) AS 4WeeksDifficulty, + IFNULL(ROUND(SUM(IF(confirmations > -1 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 2419200 SECOND), shares, 0))), 0) AS 4WeeksShares, + IFNULL(ROUND(SUM(IF(confirmations > -1 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 2419200 SECOND), POW(2, ( 32 - " . $this->config['target_bits'] . " )) * difficulty / POW(2, (" . $this->config['difficulty'] . " -16)), 0))), 0) AS 4WeeksEstimatedShares, + IFNULL(SUM(IF(confirmations > -1 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 2419200 SECOND), amount, 0)), 0) AS 4WeeksAmount, IFNULL(SUM(IF(FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 29030400 SECOND), 1, 0)), 0) AS 12MonthTotal, IFNULL(SUM(IF(confirmations > 0 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 29030400 SECOND), 1, 0)), 0) AS 12MonthValid, - IFNULL(SUM(IF(confirmations = -1 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 29030400 SECOND), 1, 0)), 0) AS 12MonthOrphan + IFNULL(SUM(IF(confirmations = -1 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 29030400 SECOND), 1, 0)), 0) AS 12MonthOrphan, + IFNULL(SUM(IF(confirmations > 0 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 29030400 SECOND), difficulty, 0)), 0) AS 12MonthDifficulty, + IFNULL(ROUND(SUM(IF(confirmations > -1 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 29030400 SECOND), shares, 0))), 0) AS 12MonthShares, + IFNULL(ROUND(SUM(IF(confirmations > -1 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 29030400 SECOND), POW(2, ( 32 - " . $this->config['target_bits'] . " )) * difficulty / POW(2, (" . $this->config['difficulty'] . " -16)), 0))), 0) AS 12MonthEstimatedShares, + IFNULL(SUM(IF(confirmations > -1 AND FROM_UNIXTIME(time) >= DATE_SUB(now(), INTERVAL 29030400 SECOND), amount, 0)), 0) AS 12MonthAmount FROM " . $this->block->getTableName()); if ($this->checkStmt($stmt) && $stmt->execute() && $result = $stmt->get_result()) return $this->memcache->setCache(__FUNCTION__, $result->fetch_assoc()); diff --git a/public/templates/mpos/statistics/blocks/block_overview_time.tpl b/public/templates/mpos/statistics/blocks/block_overview_time.tpl index 434fb140..18088b14 100644 --- a/public/templates/mpos/statistics/blocks/block_overview_time.tpl +++ b/public/templates/mpos/statistics/blocks/block_overview_time.tpl @@ -1,4 +1,4 @@ -
+

Block Overview

@@ -8,58 +8,165 @@ + + + + + + - + + + + + + + - + + + + + + + - + + + + + + + - + + + + + + + - + + + + + + + - + + + + + +
Found Valid OrphanAvg DiffShares Est.SharesPercentageAmount Rate Est.
All Time - {($FIRSTBLOCKFOUND / $COINGENTIME|default:"150")|number_format:"0"}{($FIRSTBLOCKFOUND / $COINGENTIME)|number_format:"0"} {$LASTBLOCKSBYTIME.Total} {$LASTBLOCKSBYTIME.TotalValid} {$LASTBLOCKSBYTIME.TotalOrphan}{($LASTBLOCKSBYTIME.Total|default:"0.00" / ($FIRSTBLOCKFOUND / $COINGENTIME|default:"150") * 100)|number_format:"2"} % + {if $LASTBLOCKSBYTIME.TotalValid > 0} + {($LASTBLOCKSBYTIME.TotalDifficulty / $LASTBLOCKSBYTIME.TotalValid)|number_format:"4"} + {else} + 0 + {/if} + {$LASTBLOCKSBYTIME.TotalEstimatedShares}{$LASTBLOCKSBYTIME.TotalShares} + {if $LASTBLOCKSBYTIME.TotalEstimatedShares > 0} + {($LASTBLOCKSBYTIME.TotalShares / $LASTBLOCKSBYTIME.TotalEstimatedShares * 100)|number_format:"2"}% + {else} + 0.00% + {/if} + {$LASTBLOCKSBYTIME.TotalAmount}{($LASTBLOCKSBYTIME.Total|default:"0.00" / ($FIRSTBLOCKFOUND / $COINGENTIME) * 100)|number_format:"2"} %
Last Hour - {(3600 / $COINGENTIME|default:"150")}{(3600 / $COINGENTIME)} {$LASTBLOCKSBYTIME.1HourTotal} {$LASTBLOCKSBYTIME.1HourValid} {$LASTBLOCKSBYTIME.1HourOrphan}{($LASTBLOCKSBYTIME.1HourTotal|default:"0.00" / (3600 / $COINGENTIME|default:"150") * 100)|number_format:"2"} % + {if $LASTBLOCKSBYTIME.1HourValid > 0} + {($LASTBLOCKSBYTIME.1HourDifficulty / $LASTBLOCKSBYTIME.1HourValid)|number_format:"4"} + {else} + 0 + {/if} + {$LASTBLOCKSBYTIME.1HourEstimatedShares}{$LASTBLOCKSBYTIME.1HourShares} + {if $LASTBLOCKSBYTIME.1HourEstimatedShares > 0} + {($LASTBLOCKSBYTIME.1HourShares / $LASTBLOCKSBYTIME.1HourEstimatedShares * 100)|number_format:"2"}% + {else} + 0.00% + {/if} + {$LASTBLOCKSBYTIME.1HourAmount}{($LASTBLOCKSBYTIME.1HourTotal|default:"0.00" / (3600 / $COINGENTIME) * 100)|number_format:"2"} %
Last 24 Hours - {(86400 / $COINGENTIME|default:"150")}{(86400 / $COINGENTIME)} {$LASTBLOCKSBYTIME.24HourTotal} {$LASTBLOCKSBYTIME.24HourValid} {$LASTBLOCKSBYTIME.24HourOrphan}{($LASTBLOCKSBYTIME.24HourTotal|default:"0.00" / (86400 / $COINGENTIME|default:"150") * 100)|number_format:"2"} % + {if $LASTBLOCKSBYTIME.24HourValid > 0} + {($LASTBLOCKSBYTIME.24HourDifficulty / $LASTBLOCKSBYTIME.24HourValid)|number_format:"4"} + {else} + 0 + {/if} + {$LASTBLOCKSBYTIME.24HourEstimatedShares}{$LASTBLOCKSBYTIME.24HourShares} + {if $LASTBLOCKSBYTIME.24HourEstimatedShares > 0} + {($LASTBLOCKSBYTIME.24HourShares / $LASTBLOCKSBYTIME.24HourEstimatedShares * 100)|number_format:"2"}% + {else} + 0.00% + {/if} + {$LASTBLOCKSBYTIME.24HourAmount}{($LASTBLOCKSBYTIME.24HourTotal|default:"0.00" / (86400 / $COINGENTIME) * 100)|number_format:"2"} %
Last 7 Days - {(604800 / $COINGENTIME|default:"150")}{(604800 / $COINGENTIME)} {$LASTBLOCKSBYTIME.7DaysTotal} {$LASTBLOCKSBYTIME.7DaysValid} {$LASTBLOCKSBYTIME.7DaysOrphan}{($LASTBLOCKSBYTIME.7DaysTotal|default:"0.00" / (604800 / $COINGENTIME|default:"150") * 100)|number_format:"2"} % + {if $LASTBLOCKSBYTIME.7DaysValid > 0} + {($LASTBLOCKSBYTIME.7DaysDifficulty / $LASTBLOCKSBYTIME.7DaysValid)|number_format:"4"} + {else} + 0 + {/if} + {$LASTBLOCKSBYTIME.7DaysEstimatedShares}{$LASTBLOCKSBYTIME.7DaysShares} + {if $LASTBLOCKSBYTIME.7DaysEstimatedShares > 0} + {($LASTBLOCKSBYTIME.7DaysShares / $LASTBLOCKSBYTIME.7DaysEstimatedShares * 100)|number_format:"2"}% + {else} + 0.00% + {/if} + {$LASTBLOCKSBYTIME.7DaysAmount}{($LASTBLOCKSBYTIME.7DaysTotal|default:"0.00" / (604800 / $COINGENTIME) * 100)|number_format:"2"} %
Last 4 Weeks - {(2419200 / $COINGENTIME|default:"150")}{(2419200 / $COINGENTIME)} {$LASTBLOCKSBYTIME.4WeeksTotal} {$LASTBLOCKSBYTIME.4WeeksValid} {$LASTBLOCKSBYTIME.4WeeksOrphan}{($LASTBLOCKSBYTIME.4WeeksTotal|default:"0.00" / (2419200 / $COINGENTIME|default:"150") * 100)|number_format:"2"} % + {if $LASTBLOCKSBYTIME.4WeeksValid > 0} + {($LASTBLOCKSBYTIME.4WeeksDifficulty / $LASTBLOCKSBYTIME.4WeeksValid)|number_format:"4"} + {else} + 0 + {/if} + {$LASTBLOCKSBYTIME.4WeeksEstimatedShares}{$LASTBLOCKSBYTIME.4WeeksShares} + {if $LASTBLOCKSBYTIME.4WeeksEstimatedShares > 0} + {($LASTBLOCKSBYTIME.4WeeksShares / $LASTBLOCKSBYTIME.4WeeksEstimatedShares * 100)|number_format:"2"}% + {else} + 0.00% + {/if} + {$LASTBLOCKSBYTIME.4WeeksAmount}{($LASTBLOCKSBYTIME.4WeeksTotal|default:"0.00" / (2419200 / $COINGENTIME) * 100)|number_format:"2"} %
Last 12 Month - {(29030400 / $COINGENTIME|default:"150")}{(29030400 / $COINGENTIME)} {$LASTBLOCKSBYTIME.12MonthTotal} {$LASTBLOCKSBYTIME.12MonthValid} {$LASTBLOCKSBYTIME.12MonthOrphan}{($LASTBLOCKSBYTIME.12MonthTotal|default:"0.00" / (29030400 / $COINGENTIME|default:"150") * 100)|number_format:"2"} % + {if $LASTBLOCKSBYTIME.12MonthValid > 0} + {($LASTBLOCKSBYTIME.12MonthDifficulty / $LASTBLOCKSBYTIME.12MonthValid)|number_format:"4"} + {else} + 0 + {/if} + {$LASTBLOCKSBYTIME.12MonthEstimatedShares}{$LASTBLOCKSBYTIME.12MonthShares} + {if $LASTBLOCKSBYTIME.12MonthEstimatedShares > 0} + {($LASTBLOCKSBYTIME.12MonthShares / $LASTBLOCKSBYTIME.12MonthEstimatedShares * 100)|number_format:"2"}% + {else} + 0.00% + {/if} + {$LASTBLOCKSBYTIME.12MonthAmount}{($LASTBLOCKSBYTIME.12MonthTotal|default:"0.00" / (29030400 / $COINGENTIME) * 100)|number_format:"2"} %
-
\ No newline at end of file +
diff --git a/public/templates/mpos/statistics/blocks/block_shares_time.tpl b/public/templates/mpos/statistics/blocks/block_shares_time.tpl deleted file mode 100644 index e73a7565..00000000 --- a/public/templates/mpos/statistics/blocks/block_shares_time.tpl +++ /dev/null @@ -1,27 +0,0 @@ -
-

Last 24 hour totals

- - - - - - - - - - - - - {assign var=percentage1 value=0} - - - - - - - - - -
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 5137defd..aa72aefc 100644 --- a/public/templates/mpos/statistics/blocks/default.tpl +++ b/public/templates/mpos/statistics/blocks/default.tpl @@ -1,4 +1,3 @@ {include file="statistics/blocks/block_shares_graph.tpl"} {include file="statistics/blocks/block_overview_time.tpl"} -{include file="statistics/blocks/block_shares_time.tpl"} {include file="statistics/blocks/blocks_found_details.tpl"}