From 03aef003671254e24b83ca3d1e488d407aaa349c Mon Sep 17 00:00:00 2001 From: root Date: Mon, 28 Oct 2013 20:42:39 +0100 Subject: [PATCH 1/2] [IMPROVED] Added some block stats to Pool Statistics --- public/include/classes/statistics.class.php | 58 +++++++++++++++++++ public/include/pages/statistics/pool.inc.php | 18 ++++++ .../mmcFE/statistics/pool/default.tpl | 24 +++++++- .../mobile/statistics/pool/general_stats.tpl | 24 +++++++- .../mpos/statistics/pool/general_stats.tpl | 22 ++++++- 5 files changed, 141 insertions(+), 5 deletions(-) diff --git a/public/include/classes/statistics.class.php b/public/include/classes/statistics.class.php index 650fa288..233e3580 100644 --- a/public/include/classes/statistics.class.php +++ b/public/include/classes/statistics.class.php @@ -52,6 +52,64 @@ class Statistics { return true; } + + + + + /** + * Fetch last found orphaned / valid + **/ + function getBlockCountStatistics($aSearch) { + $this->debug->append("STA " . __METHOD__, 4); + if ($data = $this->memcache->get(__FUNCTION__ . $aSearch)) return $data; + + if ($aSearch == 1) + { + $stmt = $this->mysqli->prepare(" + SELECT COUNT(id) AS count FROM " . $this->block->getTableName() . " + WHERE confirmations > 0 + "); + } else { + $stmt = $this->mysqli->prepare(" + SELECT COUNT(id) AS count FROM " . $this->block->getTableName() . " + WHERE confirmations = -1 + "); + } + if ($this->checkStmt($stmt) && $stmt->execute() && $result = $stmt->get_result()) + if ($aSearch == 1) return $this->memcache->setCache(BLOCKSTATSVALID, $result->fetch_object()->count); + if ($aSearch == 0) return $this->memcache->setCache(BLOCKSTATSORPHAN, $result->fetch_object()->count); + $this->debug->append("Failed to get Blocks by time: ". $this->mysqli->error); + return false; + } + + + + + + /** + * Fetch last found blocks by time + **/ + function getLastFoundBlocksbyTime($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; + $stmt = $this->mysqli->prepare(" + SELECT COUNT(id) AS count FROM " . $this->block->getTableName() . " + WHERE time > ? + "); + + if ($this->checkStmt($stmt) && $stmt->bind_param('i', $aTimeDiff) && $stmt->execute() && $result = $stmt->get_result()) + if ($aTimeFrame == 3600) return $this->memcache->setCache(FOUNDLASTHOUR, $result->fetch_object()->count); + if ($aTimeFrame == 86400) return $this->memcache->setCache(FOUNDLAST24HOURS, $result->fetch_object()->count); + if ($aTimeFrame == 604800) return $this->memcache->setCache(FOUNDLAST7DAYS, $result->fetch_object()->count); + if ($aTimeFrame == 2419200) return $this->memcache->setCache(FOUNDLAST4WEEKS, $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..d2dbf664 100644 --- a/public/include/pages/statistics/pool.inc.php +++ b/public/include/pages/statistics/pool.inc.php @@ -42,7 +42,25 @@ if (!$smarty->isCached('master.tpl', $smarty_cache_key)) { $dTimeSinceLast = 0; } + $iFoundLastHour = $statistics->getLastFoundBlocksbyTime(3600); + $iFoundLastDay = $statistics->getLastFoundBlocksbyTime(86400); + $iFoundLastWeek = $statistics->getLastFoundBlocksbyTime(604800); + $iFoundLastMonth = $statistics->getLastFoundBlocksbyTime(2419200); + + $iFoundValidBlock = $statistics->getBlockCountStatistics(1); + $iFoundOrphanBlock = $statistics->getBlockCountStatistics(0); + // Propagate content our template + + $smarty->assign("FOUNDLASTHOUR", $iFoundLastHour); + $smarty->assign("FOUNDLAST24HOURS", $iFoundLastDay); + $smarty->assign("FOUNDLAST7DAYS", $iFoundLastWeek); + $smarty->assign("FOUNDLAST4WEEKS", $iFoundLastMonth); + + $smarty->assign("BLOCKSTATSVALID", $iFoundValidBlock); + $smarty->assign("BLOCKSTATSORPHAN", $iFoundOrphanBlock); + + $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..d8d992e4 100644 --- a/public/templates/mmcFE/statistics/pool/default.tpl +++ b/public/templates/mmcFE/statistics/pool/default.tpl @@ -50,8 +50,28 @@ Est. Shares this Round {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"} %) - - + + + Found / Valid / Orphan + {$BLOCKSTATSVALID + $BLOCKSTATSORPHAN} / {$BLOCKSTATSVALID} / {$BLOCKSTATSORPHAN} + + + Blocks found last hour + {$FOUNDLASTHOUR} + + + Blocks found last 24 hours + {$FOUNDLAST24HOURS} + + + Blocks found last 7 days + {$FOUNDLAST7DAYS} + + + Blocks found last 4 weeks + {$FOUNDLAST4WEEKS} + + Time Since Last Block {$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..c9a6f4ac 100644 --- a/public/templates/mobile/statistics/pool/general_stats.tpl +++ b/public/templates/mobile/statistics/pool/general_stats.tpl @@ -40,8 +40,28 @@ Est. Shares this Round {((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"} %) - - + + + Found / Valid / Orphan + {$BLOCKSTATSVALID + $BLOCKSTATSORPHAN} / {$BLOCKSTATSVALID} / {$BLOCKSTATSORPHAN} + + + Blocks found last hour + {$FOUNDLASTHOUR} + + + Blocks found last 24 hours + {$FOUNDLAST24HOURS} + + + Blocks found last 7 days + {$FOUNDLAST7DAYS} + + + Blocks found last 4 weeks + {$FOUNDLAST4WEEKS} + + Time Since Last Block {$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..4a4f1619 100644 --- a/public/templates/mpos/statistics/pool/general_stats.tpl +++ b/public/templates/mpos/statistics/pool/general_stats.tpl @@ -1,4 +1,4 @@ -
+

General Statistics

@@ -46,6 +46,26 @@ + + + + + + + + + + + + + + + From b0f4edbc13e663b94336700b2b925dbdccbafdfe Mon Sep 17 00:00:00 2001 From: root Date: Mon, 28 Oct 2013 21:29:48 +0100 Subject: [PATCH 2/2] [IMPROVED] Added Found/Valid/Orphaned to Stats --- public/include/classes/statistics.class.php | 74 +++++++++---------- public/include/pages/statistics/pool.inc.php | 38 ++++++---- .../mmcFE/statistics/pool/default.tpl | 44 +++++------ .../mobile/statistics/pool/general_stats.tpl | 44 +++++------ .../mpos/statistics/pool/general_stats.tpl | 63 +++++++++------- 5 files changed, 139 insertions(+), 124 deletions(-) diff --git a/public/include/classes/statistics.class.php b/public/include/classes/statistics.class.php index 233e3580..8795ebbd 100644 --- a/public/include/classes/statistics.class.php +++ b/public/include/classes/statistics.class.php @@ -52,59 +52,53 @@ class Statistics { return true; } - - - - - /** - * Fetch last found orphaned / valid - **/ - function getBlockCountStatistics($aSearch) { - $this->debug->append("STA " . __METHOD__, 4); - if ($data = $this->memcache->get(__FUNCTION__ . $aSearch)) return $data; - - if ($aSearch == 1) - { - $stmt = $this->mysqli->prepare(" - SELECT COUNT(id) AS count FROM " . $this->block->getTableName() . " - WHERE confirmations > 0 - "); - } else { - $stmt = $this->mysqli->prepare(" - SELECT COUNT(id) AS count FROM " . $this->block->getTableName() . " - WHERE confirmations = -1 - "); - } - if ($this->checkStmt($stmt) && $stmt->execute() && $result = $stmt->get_result()) - if ($aSearch == 1) return $this->memcache->setCache(BLOCKSTATSVALID, $result->fetch_object()->count); - if ($aSearch == 0) return $this->memcache->setCache(BLOCKSTATSORPHAN, $result->fetch_object()->count); - $this->debug->append("Failed to get Blocks by time: ". $this->mysqli->error); - return false; - } - - - - - /** * Fetch last found blocks by time **/ - function getLastFoundBlocksbyTime($aTimeFrame) { + 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 time > ? + WHERE confirmations > 0 + AND time >= ? "); if ($this->checkStmt($stmt) && $stmt->bind_param('i', $aTimeDiff) && $stmt->execute() && $result = $stmt->get_result()) - if ($aTimeFrame == 3600) return $this->memcache->setCache(FOUNDLASTHOUR, $result->fetch_object()->count); - if ($aTimeFrame == 86400) return $this->memcache->setCache(FOUNDLAST24HOURS, $result->fetch_object()->count); - if ($aTimeFrame == 604800) return $this->memcache->setCache(FOUNDLAST7DAYS, $result->fetch_object()->count); - if ($aTimeFrame == 2419200) return $this->memcache->setCache(FOUNDLAST4WEEKS, $result->fetch_object()->count); + 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; } diff --git a/public/include/pages/statistics/pool.inc.php b/public/include/pages/statistics/pool.inc.php index d2dbf664..e5f76f79 100644 --- a/public/include/pages/statistics/pool.inc.php +++ b/public/include/pages/statistics/pool.inc.php @@ -42,23 +42,33 @@ if (!$smarty->isCached('master.tpl', $smarty_cache_key)) { $dTimeSinceLast = 0; } - $iFoundLastHour = $statistics->getLastFoundBlocksbyTime(3600); - $iFoundLastDay = $statistics->getLastFoundBlocksbyTime(86400); - $iFoundLastWeek = $statistics->getLastFoundBlocksbyTime(604800); - $iFoundLastMonth = $statistics->getLastFoundBlocksbyTime(2419200); - - $iFoundValidBlock = $statistics->getBlockCountStatistics(1); - $iFoundOrphanBlock = $statistics->getBlockCountStatistics(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("FOUNDLASTHOUR", $iFoundLastHour); - $smarty->assign("FOUNDLAST24HOURS", $iFoundLastDay); - $smarty->assign("FOUNDLAST7DAYS", $iFoundLastWeek); - $smarty->assign("FOUNDLAST4WEEKS", $iFoundLastMonth); + $smarty->assign("FOUNDALLVALID", $iFoundLastValid); + $smarty->assign("FOUNDLASTHOURVALID", $iFoundLastHourValid); + $smarty->assign("FOUNDLAST24HOURSVALID", $iFoundLastDayValid); + $smarty->assign("FOUNDLAST7DAYSVALID", $iFoundLastWeekValid); + $smarty->assign("FOUNDLAST4WEEKSVALID", $iFoundLastMonthValid); - $smarty->assign("BLOCKSTATSVALID", $iFoundValidBlock); - $smarty->assign("BLOCKSTATSORPHAN", $iFoundOrphanBlock); + $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); diff --git a/public/templates/mmcFE/statistics/pool/default.tpl b/public/templates/mmcFE/statistics/pool/default.tpl index d8d992e4..9b2f86b3 100644 --- a/public/templates/mmcFE/statistics/pool/default.tpl +++ b/public/templates/mmcFE/statistics/pool/default.tpl @@ -50,28 +50,28 @@ {assign var=estshares value=(65536 * $DIFFICULTY) / pow(2, ($GLOBAL.config.targetdiff - 16))} - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + diff --git a/public/templates/mobile/statistics/pool/general_stats.tpl b/public/templates/mobile/statistics/pool/general_stats.tpl index c9a6f4ac..9498d9f3 100644 --- a/public/templates/mobile/statistics/pool/general_stats.tpl +++ b/public/templates/mobile/statistics/pool/general_stats.tpl @@ -40,28 +40,28 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + diff --git a/public/templates/mpos/statistics/pool/general_stats.tpl b/public/templates/mpos/statistics/pool/general_stats.tpl index 4a4f1619..56aa9e13 100644 --- a/public/templates/mpos/statistics/pool/general_stats.tpl +++ b/public/templates/mpos/statistics/pool/general_stats.tpl @@ -4,7 +4,7 @@
Est. Shares this Round
Found / Valid / Orphan + {$BLOCKSTATSVALID + $BLOCKSTATSORPHAN} / {$BLOCKSTATSVALID} / {$BLOCKSTATSORPHAN}
Blocks found last hour + {$FOUNDLASTHOUR}
Blocks found last 24 hours + {$FOUNDLAST24HOURS}
Blocks found last 7 days + {$FOUNDLAST7DAYS}
Blocks found last 4 weeks + {$FOUNDLAST4WEEKS}
Time Since Last Block {$TIMESINCELAST|seconds_to_words}Est. Shares this Round{$estshares|number_format:"0"} (done: {(100 / $estshares * $GLOBAL.roundshares.valid)|number_format:"2"} %)
Found / Valid / Orphan - {$BLOCKSTATSVALID + $BLOCKSTATSORPHAN} / {$BLOCKSTATSVALID} / {$BLOCKSTATSORPHAN}
Blocks found last hour - {$FOUNDLASTHOUR}
Blocks found last 24 hours - {$FOUNDLAST24HOURS}
Blocks found last 7 days - {$FOUNDLAST7DAYS}
Blocks found last 4 weeks - {$FOUNDLAST4WEEKS}
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}
Est. Shares this Round {((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"} %)
Found / Valid / Orphan - {$BLOCKSTATSVALID + $BLOCKSTATSORPHAN} / {$BLOCKSTATSVALID} / {$BLOCKSTATSORPHAN}
Blocks found last hour - {$FOUNDLASTHOUR}
Blocks found last 24 hours - {$FOUNDLAST24HOURS}
Blocks found last 7 days - {$FOUNDLAST7DAYS}
Blocks found last 4 weeks - {$FOUNDLAST4WEEKS}
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}
- + @@ -15,21 +15,6 @@ - {if ! $GLOBAL.website.blockexplorer.disabled} - - - - {else} - - - - {/if} - - - + + +
Pool Hash RatePool Hash Rate {$GLOBAL.hashunits.pool}
Current Active Workers
Next Network Block - {$CURRENTBLOCK + 1}    (Current: {$CURRENTBLOCK})
Next Network Block - {$CURRENTBLOCK + 1}    (Current: {$CURRENTBLOCK})
Last Block Found - {$LASTBLOCK|default:"0"}
Current Difficulty {if ! $GLOBAL.website.chaininfo.disabled} @@ -46,25 +31,49 @@ Est. Shares this Round
+
+ +

Block Statistics

+
+ + + {if ! $GLOBAL.website.blockexplorer.disabled} - + + + {else} + + + + {/if} + + - + - + - + - + + + +
Found / Valid / Orphan - {$BLOCKSTATSVALID + $BLOCKSTATSORPHAN} / {$BLOCKSTATSVALID} / {$BLOCKSTATSORPHAN}Next Network Block + {$CURRENTBLOCK + 1}    (Current: {$CURRENTBLOCK})
Next Network Block + {$CURRENTBLOCK + 1}    (Current: {$CURRENTBLOCK})
Last Block Found + {$LASTBLOCK|default:"0"}
Blocks found last hour - {$FOUNDLASTHOUR}All Blocks - Found / Valid / Orphan + {$FOUNDALLVALID + $FOUNDALLORPHAN} / {$FOUNDALLVALID} / {$FOUNDALLORPHAN}
Blocks found last 24 hours - {$FOUNDLAST24HOURS}Blocks last hour - Found / Valid / Orphan + {$FOUNDLASTHOURVALID + $FOUNDLASTHOURORPHAN} / {$FOUNDLASTHOURVALID} / {$FOUNDLASTHOURORPHAN}
Blocks found last 7 days - {$FOUNDLAST7DAYS}Blocks last 24 hours - Found / Valid / Orphan + {$FOUNDLAST24HOURSVALID + $FOUNDLAST24HOURSORPHAN} / {$FOUNDLAST24HOURSVALID} / {$FOUNDLAST24HOURSORPHAN}
Blocks found last 4 weeks - {$FOUNDLAST4WEEKS}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 @@ -72,6 +81,8 @@
+ +