diff --git a/public/include/classes/statistics.class.php b/public/include/classes/statistics.class.php
index 650fa288..8795ebbd 100644
--- a/public/include/classes/statistics.class.php
+++ b/public/include/classes/statistics.class.php
@@ -52,6 +52,58 @@ class Statistics {
return true;
}
+ /**
+ * Fetch last found blocks by time
+ **/
+ function getLastValidBlocksbyTime($aTimeFrame) {
+ $this->debug->append("STA " . __METHOD__, 4);
+ if ($data = $this->memcache->get(__FUNCTION__ . $aTimeFrame)) return $data;
+ $date = new DateTime();
+ $actualTime = $date->getTimestamp();
+ $aTimeDiff = $actualTime - $aTimeFrame;
+ if ($aTimeFrame == 0) $aTimeDiff = 0;
+ $stmt = $this->mysqli->prepare("
+ SELECT COUNT(id) AS count FROM " . $this->block->getTableName() . "
+ WHERE confirmations > 0
+ AND time >= ?
+ ");
+
+ if ($this->checkStmt($stmt) && $stmt->bind_param('i', $aTimeDiff) && $stmt->execute() && $result = $stmt->get_result())
+ if ($aTimeFrame == 0) return $this->memcache->setCache(FOUNDALLVALID, $result->fetch_object()->count);
+ if ($aTimeFrame == 3600) return $this->memcache->setCache(FOUNDLASTHOURVALID, $result->fetch_object()->count);
+ if ($aTimeFrame == 86400) return $this->memcache->setCache(FOUNDLAST24HOURSVALID, $result->fetch_object()->count);
+ if ($aTimeFrame == 604800) return $this->memcache->setCache(FOUNDLAST7DAYSVALID, $result->fetch_object()->count);
+ if ($aTimeFrame == 2419200) return $this->memcache->setCache(FOUNDLAST4WEEKSVALID, $result->fetch_object()->count);
+ $this->debug->append("Failed to get Blocks by time: ". $this->mysqli->error);
+ return false;
+ }
+
+
+
+ function getLastOrphanBlocksbyTime($aTimeFrame) {
+ $this->debug->append("STA " . __METHOD__, 4);
+ if ($data = $this->memcache->get(__FUNCTION__ . $aTimeFrame)) return $data;
+ $date = new DateTime();
+ $actualTime = $date->getTimestamp();
+ $aTimeDiff = $actualTime - $aTimeFrame;
+ if ($aTimeFrame == 0) $aTimeDiff = 0;
+ $stmt = $this->mysqli->prepare("
+ SELECT COUNT(id) AS count FROM " . $this->block->getTableName() . "
+ WHERE confirmations = -1
+ AND time >= ?
+ ");
+
+ if ($this->checkStmt($stmt) && $stmt->bind_param('i', $aTimeDiff) && $stmt->execute() && $result = $stmt->get_result())
+ if ($aTimeFrame == 0) return $this->memcache->setCache(FOUNDALLORPHAN, $result->fetch_object()->count);
+ if ($aTimeFrame == 3600) return $this->memcache->setCache(FOUNDLASTHOURORPHAN, $result->fetch_object()->count);
+ if ($aTimeFrame == 86400) return $this->memcache->setCache(FOUNDLAST24HOURSORPHAN, $result->fetch_object()->count);
+ if ($aTimeFrame == 604800) return $this->memcache->setCache(FOUNDLAST7DAYSORPHAN, $result->fetch_object()->count);
+ if ($aTimeFrame == 2419200) return $this->memcache->setCache(FOUNDLAST4WEEKSORPHAN, $result->fetch_object()->count);
+ $this->debug->append("Failed to get Blocks by time: ". $this->mysqli->error);
+ return false;
+ }
+
+
/**
* Get our last $limit blocks found
* @param limit int Last limit blocks
diff --git a/public/include/pages/statistics/pool.inc.php b/public/include/pages/statistics/pool.inc.php
index 5416b984..e5f76f79 100644
--- a/public/include/pages/statistics/pool.inc.php
+++ b/public/include/pages/statistics/pool.inc.php
@@ -42,7 +42,35 @@ if (!$smarty->isCached('master.tpl', $smarty_cache_key)) {
$dTimeSinceLast = 0;
}
+
+ $iFoundLastValid = $statistics->getLastValidBlocksbyTime(0);
+ $iFoundLastHourValid = $statistics->getLastValidBlocksbyTime(3600);
+ $iFoundLastDayValid = $statistics->getLastValidBlocksbyTime(86400);
+ $iFoundLastWeekValid = $statistics->getLastValidBlocksbyTime(604800);
+ $iFoundLastMonthValid = $statistics->getLastValidBlocksbyTime(2419200);
+
+ $iFoundLastOrphan = $statistics->getLastOrphanBlocksbyTime(0);
+ $iFoundLastHourOrphan = $statistics->getLastOrphanBlocksbyTime(3600);
+ $iFoundLastDayOrphan = $statistics->getLastOrphanBlocksbyTime(86400);
+ $iFoundLastWeekOrphan = $statistics->getLastOrphanBlocksbyTime(604800);
+ $iFoundLastMonthOrphan = $statistics->getLastOrphanBlocksbyTime(2419200);
+
+
// Propagate content our template
+
+ $smarty->assign("FOUNDALLVALID", $iFoundLastValid);
+ $smarty->assign("FOUNDLASTHOURVALID", $iFoundLastHourValid);
+ $smarty->assign("FOUNDLAST24HOURSVALID", $iFoundLastDayValid);
+ $smarty->assign("FOUNDLAST7DAYSVALID", $iFoundLastWeekValid);
+ $smarty->assign("FOUNDLAST4WEEKSVALID", $iFoundLastMonthValid);
+
+ $smarty->assign("FOUNDALLORPHAN", $iFoundLastOrphan);
+ $smarty->assign("FOUNDLASTHOURORPHAN", $iFoundLastHourOrphan);
+ $smarty->assign("FOUNDLAST24HOURSORPHAN", $iFoundLastDayOrphan);
+ $smarty->assign("FOUNDLAST7DAYSORPHAN", $iFoundLastWeekOrphan);
+ $smarty->assign("FOUNDLAST4WEEKSORPHAN", $iFoundLastMonthOrphan);
+
+ $smarty->assign("ESTTIME", $iEstTime);
$smarty->assign("ESTTIME", $iEstTime);
$smarty->assign("TIMESINCELAST", $dTimeSinceLast);
$smarty->assign("BLOCKSFOUND", $aBlocksFoundData);
diff --git a/public/templates/mmcFE/statistics/pool/default.tpl b/public/templates/mmcFE/statistics/pool/default.tpl
index de72be1f..9b2f86b3 100644
--- a/public/templates/mmcFE/statistics/pool/default.tpl
+++ b/public/templates/mmcFE/statistics/pool/default.tpl
@@ -51,6 +51,26 @@
{assign var=estshares value=(65536 * $DIFFICULTY) / pow(2, ($GLOBAL.config.targetdiff - 16))}
{$estshares|number_format:"0"} (done: {(100 / $estshares * $GLOBAL.roundshares.valid)|number_format:"2"} %) |
+
+ | All Blocks - Found / Valid / Orphan
+ | {$FOUNDALLVALID + $FOUNDALLORPHAN} / {$FOUNDALLVALID} / {$FOUNDALLORPHAN} |
+
+
+ | Blocks last hour - Found / Valid / Orphan
+ | {$FOUNDLASTHOURVALID + $FOUNDLASTHOURORPHAN} / {$FOUNDLASTHOURVALID} / {$FOUNDLASTHOURORPHAN} |
+
+
+ | Blocks last 24 hours - Found / Valid / Orphan
+ | {$FOUNDLAST24HOURSVALID + $FOUNDLAST24HOURSORPHAN} / {$FOUNDLAST24HOURSVALID} / {$FOUNDLAST24HOURSORPHAN} |
+
+
+ | Blocks last 7 days - Found / Valid / Orphan
+ | {$FOUNDLAST7DAYSVALID + $FOUNDLAST7DAYSORPHAN} / {$FOUNDLAST7DAYSVALID} / {$FOUNDLAST7DAYSORPHAN} |
+
+
+ | Blocks last 4 weeks - Found / Valid / Orphan
+ | {$FOUNDLAST4WEEKSVALID + $FOUNDLAST4WEEKSORPHAN} / {$FOUNDLAST4WEEKSVALID} / {$FOUNDLAST4WEEKSORPHAN} |
+
| {$TIMESINCELAST|seconds_to_words} |
diff --git a/public/templates/mobile/statistics/pool/general_stats.tpl b/public/templates/mobile/statistics/pool/general_stats.tpl
index d4677f3a..9498d9f3 100644
--- a/public/templates/mobile/statistics/pool/general_stats.tpl
+++ b/public/templates/mobile/statistics/pool/general_stats.tpl
@@ -41,6 +41,26 @@
{((65536 * $DIFFICULTY) / pow(2, ($GLOBAL.config.targetdiff - 16)))|number_format:"0"} (done: {(100 / ((65536 * $DIFFICULTY) / pow(2, ($GLOBAL.config.targetdiff - 16))) * $GLOBAL.roundshares.valid)|number_format:"2"} %) |
+
+ | All Blocks - Found / Valid / Orphan
+ | {$FOUNDALLVALID + $FOUNDALLORPHAN} / {$FOUNDALLVALID} / {$FOUNDALLORPHAN} |
+
+
+ | Blocks last hour - Found / Valid / Orphan
+ | {$FOUNDLASTHOURVALID + $FOUNDLASTHOURORPHAN} / {$FOUNDLASTHOURVALID} / {$FOUNDLASTHOURORPHAN} |
+
+
+ | Blocks last 24 hours - Found / Valid / Orphan
+ | {$FOUNDLAST24HOURSVALID + $FOUNDLAST24HOURSORPHAN} / {$FOUNDLAST24HOURSVALID} / {$FOUNDLAST24HOURSORPHAN} |
+
+
+ | Blocks last 7 days - Found / Valid / Orphan
+ | {$FOUNDLAST7DAYSVALID + $FOUNDLAST7DAYSORPHAN} / {$FOUNDLAST7DAYSVALID} / {$FOUNDLAST7DAYSORPHAN} |
+
+
+ | Blocks last 4 weeks - Found / Valid / Orphan
+ | {$FOUNDLAST4WEEKSVALID + $FOUNDLAST4WEEKSORPHAN} / {$FOUNDLAST4WEEKSVALID} / {$FOUNDLAST4WEEKSORPHAN} |
+
| {$TIMESINCELAST|seconds_to_words} |
diff --git a/public/templates/mpos/statistics/pool/general_stats.tpl b/public/templates/mpos/statistics/pool/general_stats.tpl
index c8619fe5..56aa9e13 100644
--- a/public/templates/mpos/statistics/pool/general_stats.tpl
+++ b/public/templates/mpos/statistics/pool/general_stats.tpl
@@ -1,10 +1,10 @@
-
+
- | Pool Hash Rate |
+ Pool Hash Rate |
{$GLOBAL.hashunits.pool} |
@@ -15,21 +15,6 @@
| Current Active Workers
| |
- {if ! $GLOBAL.website.blockexplorer.disabled}
-
- | Next Network Block
- | {$CURRENTBLOCK + 1} (Current: {$CURRENTBLOCK}) |
-
- {else}
-
- | Next Network Block
- | {$CURRENTBLOCK + 1} (Current: {$CURRENTBLOCK}) |
-
- {/if}
-
- | Last Block Found
- | {$LASTBLOCK|default:"0"} |
-
| Current Difficulty
{if ! $GLOBAL.website.chaininfo.disabled}
@@ -46,12 +31,58 @@
| Est. Shares this Round
| |
+
+
+
+
+
+
+
+
+
+ {if ! $GLOBAL.website.blockexplorer.disabled}
+
+ | Next Network Block
+ | {$CURRENTBLOCK + 1} (Current: {$CURRENTBLOCK}) |
+
+ {else}
+
+ | Next Network Block
+ | {$CURRENTBLOCK + 1} (Current: {$CURRENTBLOCK}) |
+
+ {/if}
+
+ | Last Block Found
+ | {$LASTBLOCK|default:"0"} |
+
+
+ | All Blocks - Found / Valid / Orphan
+ | {$FOUNDALLVALID + $FOUNDALLORPHAN} / {$FOUNDALLVALID} / {$FOUNDALLORPHAN} |
+
+
+ | Blocks last hour - Found / Valid / Orphan
+ | {$FOUNDLASTHOURVALID + $FOUNDLASTHOURORPHAN} / {$FOUNDLASTHOURVALID} / {$FOUNDLASTHOURORPHAN} |
+
+
+ | Blocks last 24 hours - Found / Valid / Orphan
+ | {$FOUNDLAST24HOURSVALID + $FOUNDLAST24HOURSORPHAN} / {$FOUNDLAST24HOURSVALID} / {$FOUNDLAST24HOURSORPHAN} |
+
+
+ | Blocks last 7 days - Found / Valid / Orphan
+ | {$FOUNDLAST7DAYSVALID + $FOUNDLAST7DAYSORPHAN} / {$FOUNDLAST7DAYSVALID} / {$FOUNDLAST7DAYSORPHAN} |
+
+
+ | Blocks last 4 weeks - Found / Valid / Orphan
+ | {$FOUNDLAST4WEEKSVALID + $FOUNDLAST4WEEKSORPHAN} / {$FOUNDLAST4WEEKSVALID} / {$FOUNDLAST4WEEKSORPHAN} |
+
| Time Since Last Block
| {$TIMESINCELAST|seconds_to_words} |
+
+