diff --git a/cronjobs/findblock.php b/cronjobs/findblock.php
old mode 100755
new mode 100644
index 782ed92a..2ce27efd
--- a/cronjobs/findblock.php
+++ b/cronjobs/findblock.php
@@ -75,13 +75,12 @@ if (empty($aAllBlocks)) {
$log->logDebug('No new blocks without share_id found in database');
} else {
// Loop through our unaccounted blocks
- $log->logInfo("Block ID\tHeight\t\tAmount\tShare ID\tShares\tFinder\t\tType");
+ $log->logInfo("Block ID\tHeight\t\tAmount\tShare ID\tShares\tFinder\tWorker\t\tType");
foreach ($aAllBlocks as $iIndex => $aBlock) {
if (empty($aBlock['share_id'])) {
// Fetch share information
if ( !$iPreviousShareId = $block->getLastShareId())
$iPreviousShareId = 0;
-
// Fetch this blocks upstream ID
$aBlockRPCInfo = $bitcoin->query('getblock', $aBlock['blockhash']);
if ($share->findUpstreamShare($aBlockRPCInfo, $iPreviousShareId)) {
@@ -117,6 +116,7 @@ if (empty($aAllBlocks)) {
} else {
$iRoundShares = $share->getRoundShares($iPreviousShareId, $iCurrentUpstreamId);
$iAccountId = $user->getUserId($share->getUpstreamFinder());
+ $iWorker = $share->getUpstreamWorker();
}
} else {
$log->logFatal('E0005: Unable to fetch blocks upstream share, aborted:' . $share->getCronError());
@@ -130,6 +130,7 @@ if (empty($aAllBlocks)) {
. $iCurrentUpstreamId . "\t\t"
. $iRoundShares . "\t"
. "[$iAccountId] " . $user->getUserName($iAccountId) . "\t"
+ . $iWorker . "\t"
. $share->share_type
);
@@ -138,6 +139,8 @@ if (empty($aAllBlocks)) {
$log->logError('Failed to update share ID in database for block ' . $aBlock['height'] . ': ' . $block->getCronError());
if (!$block->setFinder($aBlock['id'], $iAccountId))
$log->logError('Failed to update finder account ID in database for block ' . $aBlock['height'] . ': ' . $block->getCronError());
+ if (!$block->setFindingWorker($aBlock['id'], $iWorker))
+ $log->logError('Failed to update worker ID in database for block ' . $aBlock['height'] . ': ' . $block->getCronError());
if (!$block->setShares($aBlock['id'], $iRoundShares))
$log->logError('Failed to update share count in database for block ' . $aBlock['height'] . ': ' . $block->getCronError());
if ($config['block_bonus'] > 0 && !$transaction->addTransaction($iAccountId, $config['block_bonus'], 'Bonus', $aBlock['id'])) {
diff --git a/public/include/classes/block.class.php b/public/include/classes/block.class.php
index 1edfb3b4..3ed11d1f 100644
--- a/public/include/classes/block.class.php
+++ b/public/include/classes/block.class.php
@@ -197,6 +197,17 @@ class Block extends Base {
$field = array( 'name' => 'account_id', 'value' => $account_id, 'type' => 'i' );
return $this->updateSingle($block_id, $field);
}
+
+ /**
+ * Set finding worker of a block
+ * @param block_id int Block ID
+ * @param worker_id int Worker ID of finder
+ * @return bool
+ **/
+ public function setFindingWorker($block_id, $worker=NULL) {
+ $field = array( 'name' => 'worker_name', 'value' => $worker, 'type' => 's' );
+ return $this->updateSingle($block_id, $field);
+ }
/**
* Set finding share for a block
diff --git a/public/include/classes/share.class.php b/public/include/classes/share.class.php
index bbf378cf..30ab344c 100644
--- a/public/include/classes/share.class.php
+++ b/public/include/classes/share.class.php
@@ -231,6 +231,9 @@ class Share Extends Base {
public function getUpstreamFinder() {
return @$this->oUpstream->account;
}
+ public function getUpstreamWorker() {
+ return @$this->oUpstream->worker;
+ }
public function getUpstreamShareId() {
return @$this->oUpstream->id;
}
@@ -254,39 +257,39 @@ class Share Extends Base {
$header_hex = implode(unpack("H*", $header_bin));
// Stratum supported blockhash solution entry
- $stmt = $this->mysqli->prepare("SELECT SUBSTRING_INDEX( `username` , '.', 1 ) AS account, id FROM $this->table WHERE solution = ? LIMIT 1");
+ $stmt = $this->mysqli->prepare("SELECT SUBSTRING_INDEX( `username` , '.', 1 ) AS account, username as worker, id FROM $this->table WHERE solution = ? LIMIT 1");
if ($this->checkStmt($stmt) && $stmt->bind_param('s', $aBlock['hash']) && $stmt->execute() && $result = $stmt->get_result()) {
$this->oUpstream = $result->fetch_object();
$this->share_type = 'stratum_blockhash';
- if (!empty($this->oUpstream->account) && is_int($this->oUpstream->id))
+ if (!empty($this->oUpstream->account) && !empty($this->oUpstream->worker) && is_int($this->oUpstream->id))
return true;
}
// Stratum scrypt hash check
$scrypt_hash = swapEndian(bin2hex(Scrypt::calc($header_bin, $header_bin, 1024, 1, 1, 32)));
- $stmt = $this->mysqli->prepare("SELECT SUBSTRING_INDEX( `username` , '.', 1 ) AS account, id FROM $this->table WHERE solution = ? LIMIT 1");
+ $stmt = $this->mysqli->prepare("SELECT SUBSTRING_INDEX( `username` , '.', 1 ) AS account, username as worker, id FROM $this->table WHERE solution = ? LIMIT 1");
if ($this->checkStmt($stmt) && $stmt->bind_param('s', $scrypt_hash) && $stmt->execute() && $result = $stmt->get_result()) {
$this->oUpstream = $result->fetch_object();
$this->share_type = 'stratum_solution';
- if (!empty($this->oUpstream->account) && is_int($this->oUpstream->id))
+ if (!empty($this->oUpstream->account) && !empty($this->oUpstream->worker) && is_int($this->oUpstream->id))
return true;
}
// Failed to fetch via startum solution, try pushpoold
// Fallback to pushpoold solution type
$ppheader = sprintf('%08d', $aBlock['version']) . word_reverse($aBlock['previousblockhash']) . word_reverse($aBlock['merkleroot']) . dechex($aBlock['time']) . $aBlock['bits'] . dechex($aBlock['nonce']);
- $stmt = $this->mysqli->prepare("SELECT SUBSTRING_INDEX( `username` , '.', 1 ) AS account, id FROM $this->table WHERE solution LIKE CONCAT(?, '%') LIMIT 1");
+ $stmt = $this->mysqli->prepare("SELECT SUBSTRING_INDEX( `username` , '.', 1 ) AS account, username as worker, id FROM $this->table WHERE solution LIKE CONCAT(?, '%') LIMIT 1");
if ($this->checkStmt($stmt) && $stmt->bind_param('s', $ppheader) && $stmt->execute() && $result = $stmt->get_result()) {
$this->oUpstream = $result->fetch_object();
$this->share_type = 'pp_solution';
- if (!empty($this->oUpstream->account) && is_int($this->oUpstream->id))
+ if (!empty($this->oUpstream->account) && !empty($this->oUpstream->worker) && is_int($this->oUpstream->id))
return true;
}
// Still no match, try upstream result with timerange
$stmt = $this->mysqli->prepare("
SELECT
- SUBSTRING_INDEX( `username` , '.', 1 ) AS account, id
+ SUBSTRING_INDEX( `username` , '.', 1 ) AS account, username as worker, id
FROM $this->table
WHERE upstream_result = 'Y'
AND id > ?
@@ -296,14 +299,14 @@ class Share Extends Base {
if ($this->checkStmt($stmt) && $stmt->bind_param('iii', $last, $aBlock['time'], $aBlock['time']) && $stmt->execute() && $result = $stmt->get_result()) {
$this->oUpstream = $result->fetch_object();
$this->share_type = 'upstream_share';
- if (!empty($this->oUpstream->account) && is_int($this->oUpstream->id))
+ if (!empty($this->oUpstream->account) && !empty($this->oUpstream->worker) && is_int($this->oUpstream->id))
return true;
}
// We failed again, now we take ANY result matching the timestamp
$stmt = $this->mysqli->prepare("
SELECT
- SUBSTRING_INDEX( `username` , '.', 1 ) AS account, id
+ SUBSTRING_INDEX( `username` , '.', 1 ) AS account, username as worker, id
FROM $this->table
WHERE our_result = 'Y'
AND id > ?
@@ -312,7 +315,7 @@ class Share Extends Base {
if ($this->checkStmt($stmt) && $stmt->bind_param('ii', $last, $aBlock['time']) && $stmt->execute() && $result = $stmt->get_result()) {
$this->oUpstream = $result->fetch_object();
$this->share_type = 'any_share';
- if (!empty($this->oUpstream->account) && is_int($this->oUpstream->id))
+ if (!empty($this->oUpstream->account) && !empty($this->oUpstream->worker) && is_int($this->oUpstream->id))
return true;
}
$this->setErrorMessage($this->getErrorMsg('E0052', $aBlock['height']));
diff --git a/public/include/classes/statistics.class.php b/public/include/classes/statistics.class.php
index 4f9e0278..8d4803eb 100644
--- a/public/include/classes/statistics.class.php
+++ b/public/include/classes/statistics.class.php
@@ -122,7 +122,7 @@ class Statistics extends Base {
**/
public function getBlocksFoundHeight($iHeight=0, $limit=10) {
$this->debug->append("STA " . __METHOD__, 4);
- if ($data = $this->memcache->get(__FUNCTION__ . $iHeight . $limit)) return $data;
+ if ($data = $this->memcache->get(__FUNCTION__ . $iHeight . $limit)) return $data;
$stmt = $this->mysqli->prepare("
SELECT
b.*,
@@ -139,6 +139,54 @@ class Statistics extends Base {
return $this->sqlError();
}
+ /**
+ * Get SUM of blocks found and generated Coins for each Account
+ * @param limit int Last limit blocks
+ * @return array
+ **/
+ public function getBlocksSolvedbyAccount($limit=25) {
+ $this->debug->append("STA " . __METHOD__, 4);
+ if ($data = $this->memcache->get(__FUNCTION__ . $limit)) return $data;
+ $stmt = $this->mysqli->prepare("
+ SELECT
+ b.*,
+ a.username AS finder,
+ a.is_anonymous AS is_anonymous,
+ COUNT(b.id) AS solvedblocks,
+ SUM(b.amount) AS generatedcoins
+ FROM " . $this->block->getTableName() . " AS b
+ LEFT JOIN " . $this->user->getTableName() . " AS a
+ ON b.account_id = a.id
+ WHERE confirmations > 0
+ GROUP BY finder
+ ORDER BY solvedblocks DESC LIMIT ?");
+ if ($this->checkStmt($stmt) && $stmt->bind_param("i", $limit) && $stmt->execute() && $result = $stmt->get_result())
+ return $this->memcache->setCache(__FUNCTION__ . $limit, $result->fetch_all(MYSQLI_ASSOC), 5);
+ return $this->sqlError();
+ }
+
+ /**
+ * Get SUM of blocks found and generated Coins for each worker
+ * @param limit int Last limit blocks
+ * @return array
+ **/
+ public function getBlocksSolvedbyWorker($account_id, $limit=25) {
+ $this->debug->append("STA " . __METHOD__, 4);
+ if ($data = $this->memcache->get(__FUNCTION__ . $account_id . $limit)) return $data;
+ $stmt = $this->mysqli->prepare("
+ SELECT
+ worker_name AS finder,
+ COUNT(id) AS solvedblocks,
+ SUM(amount) AS generatedcoins
+ FROM " . $this->block->getTableName() . "
+ WHERE account_id = ? AND worker_name != 'unknown'
+ GROUP BY finder
+ ORDER BY solvedblocks DESC LIMIT ?");
+ if ($this->checkStmt($stmt) && $stmt->bind_param("ii", $account_id, $limit) && $stmt->execute() && $result = $stmt->get_result())
+ return $this->memcache->setCache(__FUNCTION__ . $account_id . $limit, $result->fetch_all(MYSQLI_ASSOC), 5);
+ return $this->sqlError();
+ }
+
/**
* Currently the only function writing to the database
* Stored per block user statistics of valid and invalid shares
diff --git a/public/include/config/admin_settings.inc.php b/public/include/config/admin_settings.inc.php
index f9c96b91..37769bd5 100644
--- a/public/include/config/admin_settings.inc.php
+++ b/public/include/config/admin_settings.inc.php
@@ -187,6 +187,13 @@ $aSettings['acl'][] = array(
'name' => 'acl_round_statistics', 'value' => $setting->getValue('acl_round_statistics'),
'tooltip' => 'Make the round statistics page private (users only) or public.'
);
+$aSettings['acl'][] = array(
+ 'display' => 'Block Finder Statistics', 'type' => 'select',
+ 'options' => array( 0 => 'Private', 1 => 'Public'),
+ 'default' => 1,
+ 'name' => 'acl_blockfinder_statistics', 'value' => $setting->getValue('acl_blockfinder_statistics'),
+ 'tooltip' => 'Make the Block Finder Statistics page private (users only) or public.'
+);
$aSettings['acl'][] = array(
'display' => 'Uptime Statistics', 'type' => 'select',
'options' => array( 0 => 'Private', 1 => 'Public'),
diff --git a/public/include/pages/statistics/blockfinder.inc.php b/public/include/pages/statistics/blockfinder.inc.php
new file mode 100644
index 00000000..dcf75226
--- /dev/null
+++ b/public/include/pages/statistics/blockfinder.inc.php
@@ -0,0 +1,26 @@
+isCached('master.tpl', $smarty_cache_key)) {
+ $debug->append('No cached version available, fetching from backend', 3);
+
+ $getBlocksSolvedbyAccount = $statistics->getBlocksSolvedbyAccount();
+ $smarty->assign("BLOCKSSOLVEDBYACCOUNT", $getBlocksSolvedbyAccount);
+} else {
+ $debug->append('Using cached page', 3);
+}
+
+if ($setting->getValue('acl_blockfinder_statistics')) {
+ $smarty->assign("CONTENT", "finder.tpl");
+} else if ($user->isAuthenticated()) {
+ $getBlocksSolvedbyWorker = $statistics->getBlocksSolvedbyWorker($_SESSION['USERDATA']['id']);
+ $smarty->assign("BLOCKSSOLVEDBYWORKER", $getBlocksSolvedbyWorker);
+ $smarty->assign("CONTENT", "finder.tpl");
+} else {
+ $_SESSION['POPUP'][] = array('CONTENT' => 'Block Finders are currently disabled. Please try again later.', 'TYPE' => 'errormsg');
+ $smarty->assign("CONTENT", "default.tpl");
+}
+?>
diff --git a/public/include/smarty_globals.inc.php b/public/include/smarty_globals.inc.php
index 93987c4c..806349dd 100644
--- a/public/include/smarty_globals.inc.php
+++ b/public/include/smarty_globals.inc.php
@@ -104,6 +104,7 @@ $aGlobal['statistics']['analytics']['code'] = $setting->getValue('statistics_ana
$aGlobal['acl']['pool']['statistics'] = $setting->getValue('acl_pool_statistics');
$aGlobal['acl']['block']['statistics'] = $setting->getValue('acl_block_statistics');
$aGlobal['acl']['round']['statistics'] = $setting->getValue('acl_round_statistics');
+$aGlobal['acl']['blockfinder']['statistics'] = $setting->getValue('acl_blockfinder_statistics');
$aGlobal['acl']['uptime']['statistics'] = $setting->getValue('acl_uptime_statistics');
// We don't want these session infos cached
diff --git a/public/site_assets/mpos/css/fontello-codes.css b/public/site_assets/mpos/css/fontello-codes.css
index 5e87a41e..a39c72df 100644
--- a/public/site_assets/mpos/css/fontello-codes.css
+++ b/public/site_assets/mpos/css/fontello-codes.css
@@ -1,6 +1,7 @@
.icon-dollar:before { content: '\e818'; } /* '' */
.icon-doc:before { content: '\e81b'; } /* '' */
+.icon-login:before { content: '\e81c'; } /* '' */
.icon-exchange:before { content: '\e81a'; } /* '' */
.icon-money:before { content: '\e819'; } /* '' */
.icon-mail:before { content: '\e814'; } /* '' */
@@ -18,7 +19,7 @@
.icon-bell:before { content: '\e817'; } /* '' */
.icon-trash:before { content: '\e812'; } /* '' */
.icon-cog:before { content: '\e810'; } /* '' */
-.icon-login:before { content: '\e81c'; } /* '' */
+.icon-search:before { content: '\e827'; } /* '' */
.icon-resize-full-alt:before { content: '\e824'; } /* '' */
.icon-down-open:before { content: '\e825'; } /* '' */
.icon-left-open:before { content: '\e801'; } /* '' */
diff --git a/public/site_assets/mpos/css/fontello-config.json b/public/site_assets/mpos/css/fontello-config.json
index d0fdae41..b8fb0a0b 100644
--- a/public/site_assets/mpos/css/fontello-config.json
+++ b/public/site_assets/mpos/css/fontello-config.json
@@ -12,6 +12,12 @@
"code": 59416,
"src": "fontawesome"
},
+ {
+ "uid": "7222571caa5c15f83dcfd447c58d68d9",
+ "css": "search",
+ "code": 59431,
+ "src": "entypo"
+ },
{
"uid": "a204f0fa972408eaae5a363c444991b2",
"css": "login",
diff --git a/public/site_assets/mpos/css/fontello-embedded.css b/public/site_assets/mpos/css/fontello-embedded.css
index 054bb98f..c3967c2f 100644
--- a/public/site_assets/mpos/css/fontello-embedded.css
+++ b/public/site_assets/mpos/css/fontello-embedded.css
@@ -1,15 +1,15 @@
@font-face {
font-family: 'fontello';
- src: url('../font/fontello.eot?67777040');
- src: url('../font/fontello.eot?67777040#iefix') format('embedded-opentype'),
- url('../font/fontello.svg?67777040#fontello') format('svg');
+ src: url('../font/fontello.eot?18499504');
+ src: url('../font/fontello.eot?18499504#iefix') format('embedded-opentype'),
+ url('../font/fontello.svg?18499504#fontello') format('svg');
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'fontello';
- src: url('data:application/octet-stream;base64,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') format('woff'),
- url('data:application/octet-stream;base64,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') format('truetype');
+ src: url('data:application/octet-stream;base64,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') format('woff'),
+ url('data:application/octet-stream;base64,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sAIlRyNHI2EgsAUlsAQlRyNHI2GwBiWwBSVJsAIlYbABRWMjIFhiGyFZY7ABRWJgIy4jICA8ijgjIVktsDUssAAWILAIQyAuRyNHI2EgYLAgYGawgGIjICA8ijgtsDYsIyAuRrACJUZSWCA8WS6xJgEUKy2wNywjIC5GsAIlRlBYIDxZLrEmARQrLbA4LCMgLkawAiVGUlggPFkjIC5GsAIlRlBYIDxZLrEmARQrLbA5LLAwKyMgLkawAiVGUlggPFkusSYBFCstsDossDEriiAgPLAEI0KKOCMgLkawAiVGUlggPFkusSYBFCuwBEMusCYrLbA7LLAAFrAEJbAEJiAuRyNHI2GwBkUrIyA8IC4jOLEmARQrLbA8LLEIBCVCsAAWsAQlsAQlIC5HI0cjYSCwBCNCsAZFKyCwYFBYILBAUVizAiADIBuzAiYDGllCQiMgR7AEQ7CAYmAgsAArIIqKYSCwAkNgZCOwA0NhZFBYsAJDYRuwA0NgWbADJbCAYmGwAiVGYTgjIDwjOBshICBGI0ewACsjYTghWbEmARQrLbA9LLAwKy6xJgEUKy2wPiywMSshIyAgPLAEI0IjOLEmARQrsARDLrAmKy2wPyywABUgR7AAI0KyAAEBFRQTLrAsKi2wQCywABUgR7AAI0KyAAEBFRQTLrAsKi2wQSyxAAEUE7AtKi2wQiywLyotsEMssAAWRSMgLiBGiiNhOLEmARQrLbBELLAII0KwQystsEUssgAAPCstsEYssgABPCstsEcssgEAPCstsEgssgEBPCstsEkssgAAPSstsEossgABPSstsEsssgEAPSstsEwssgEBPSstsE0ssgAAOSstsE4ssgABOSstsE8ssgEAOSstsFAssgEBOSstsFEssgAAOystsFIssgABOystsFMssgEAOystsFQssgEBOystsFUssgAAPistsFYssgABPistsFcssgEAPistsFgssgEBPistsFkssgAAOistsFossgABOistsFsssgEAOistsFwssgEBOistsF0ssDIrLrEmARQrLbBeLLAyK7A2Ky2wXyywMiuwNystsGAssAAWsDIrsDgrLbBhLLAzKy6xJgEUKy2wYiywMyuwNistsGMssDMrsDcrLbBkLLAzK7A4Ky2wZSywNCsusSYBFCstsGYssDQrsDYrLbBnLLA0K7A3Ky2waCywNCuwOCstsGkssDUrLrEmARQrLbBqLLA1K7A2Ky2wayywNSuwNystsGwssDUrsDgrLbBtLCuwCGWwAyRQeLABFTAtAAAAS7gAyFJYsQEBjlm5CAAIAGMgsAEjRLADI3CyBCgJRVJEsgoCByqxBgFEsSQBiFFYsECIWLEGA0SxJgGIUVi4BACIWLEGAURZWVlZuAH/hbAEjbEFAEQAAA==') format('truetype');
}
/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */
/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */
@@ -17,7 +17,7 @@
@media screen and (-webkit-min-device-pixel-ratio:0) {
@font-face {
font-family: 'fontello';
- src: url('../font/fontello.svg?67777040#fontello') format('svg');
+ src: url('../font/fontello.svg?18499504#fontello') format('svg');
}
}
*/
@@ -54,6 +54,7 @@
}
.icon-dollar:before { content: '\e818'; } /* '' */
.icon-doc:before { content: '\e81b'; } /* '' */
+.icon-login:before { content: '\e81c'; } /* '' */
.icon-exchange:before { content: '\e81a'; } /* '' */
.icon-money:before { content: '\e819'; } /* '' */
.icon-mail:before { content: '\e814'; } /* '' */
@@ -71,7 +72,7 @@
.icon-bell:before { content: '\e817'; } /* '' */
.icon-trash:before { content: '\e812'; } /* '' */
.icon-cog:before { content: '\e810'; } /* '' */
-.icon-login:before { content: '\e81c'; } /* '' */
+.icon-search:before { content: '\e827'; } /* '' */
.icon-resize-full-alt:before { content: '\e824'; } /* '' */
.icon-down-open:before { content: '\e825'; } /* '' */
.icon-left-open:before { content: '\e801'; } /* '' */
diff --git a/public/site_assets/mpos/css/fontello-ie7-codes.css b/public/site_assets/mpos/css/fontello-ie7-codes.css
index 405779c6..d1bfdab6 100644
--- a/public/site_assets/mpos/css/fontello-ie7-codes.css
+++ b/public/site_assets/mpos/css/fontello-ie7-codes.css
@@ -1,6 +1,7 @@
.icon-dollar { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-doc { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
+.icon-login { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-exchange { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-money { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-mail { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
@@ -18,7 +19,7 @@
.icon-bell { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-trash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-cog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
-.icon-login { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
+.icon-search { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-resize-full-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-down-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-left-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
diff --git a/public/site_assets/mpos/css/fontello-ie7.css b/public/site_assets/mpos/css/fontello-ie7.css
index ba85b7e6..a7ac0b2d 100644
--- a/public/site_assets/mpos/css/fontello-ie7.css
+++ b/public/site_assets/mpos/css/fontello-ie7.css
@@ -12,6 +12,7 @@
.icon-dollar { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-doc { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
+.icon-login { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-exchange { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-money { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-mail { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
@@ -29,7 +30,7 @@
.icon-bell { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-trash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-cog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
-.icon-login { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
+.icon-search { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-resize-full-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-down-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
.icon-left-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
diff --git a/public/site_assets/mpos/css/fontello.css b/public/site_assets/mpos/css/fontello.css
index 39e90a43..13fb6ec4 100644
--- a/public/site_assets/mpos/css/fontello.css
+++ b/public/site_assets/mpos/css/fontello.css
@@ -1,10 +1,10 @@
@font-face {
font-family: 'fontello';
- src: url('../font/fontello.eot?25380644');
- src: url('../font/fontello.eot?25380644#iefix') format('embedded-opentype'),
- url('../font/fontello.woff?25380644') format('woff'),
- url('../font/fontello.ttf?25380644') format('truetype'),
- url('../font/fontello.svg?25380644#fontello') format('svg');
+ src: url('../font/fontello.eot?43056661');
+ src: url('../font/fontello.eot?43056661#iefix') format('embedded-opentype'),
+ url('../font/fontello.woff?43056661') format('woff'),
+ url('../font/fontello.ttf?43056661') format('truetype'),
+ url('../font/fontello.svg?43056661#fontello') format('svg');
font-weight: normal;
font-style: normal;
}
@@ -14,7 +14,7 @@
@media screen and (-webkit-min-device-pixel-ratio:0) {
@font-face {
font-family: 'fontello';
- src: url('../font/fontello.svg?25380644#fontello') format('svg');
+ src: url('../font/fontello.svg?43056661#fontello') format('svg');
}
}
*/
@@ -52,6 +52,7 @@
.icon-dollar:before { content: '\e818'; } /* '' */
.icon-doc:before { content: '\e81b'; } /* '' */
+.icon-login:before { content: '\e81c'; } /* '' */
.icon-exchange:before { content: '\e81a'; } /* '' */
.icon-money:before { content: '\e819'; } /* '' */
.icon-mail:before { content: '\e814'; } /* '' */
@@ -69,7 +70,7 @@
.icon-bell:before { content: '\e817'; } /* '' */
.icon-trash:before { content: '\e812'; } /* '' */
.icon-cog:before { content: '\e810'; } /* '' */
-.icon-login:before { content: '\e81c'; } /* '' */
+.icon-search:before { content: '\e827'; } /* '' */
.icon-resize-full-alt:before { content: '\e824'; } /* '' */
.icon-down-open:before { content: '\e825'; } /* '' */
.icon-left-open:before { content: '\e801'; } /* '' */
diff --git a/public/site_assets/mpos/font/fontello.eot b/public/site_assets/mpos/font/fontello.eot
index f5a0206b..77946028 100644
Binary files a/public/site_assets/mpos/font/fontello.eot and b/public/site_assets/mpos/font/fontello.eot differ
diff --git a/public/site_assets/mpos/font/fontello.svg b/public/site_assets/mpos/font/fontello.svg
index 547cd55b..8ce0855d 100644
--- a/public/site_assets/mpos/font/fontello.svg
+++ b/public/site_assets/mpos/font/fontello.svg
@@ -8,6 +8,7 @@
+
@@ -25,7 +26,7 @@
-
+
diff --git a/public/site_assets/mpos/font/fontello.ttf b/public/site_assets/mpos/font/fontello.ttf
index 1b026cab..a5417e26 100644
Binary files a/public/site_assets/mpos/font/fontello.ttf and b/public/site_assets/mpos/font/fontello.ttf differ
diff --git a/public/site_assets/mpos/font/fontello.woff b/public/site_assets/mpos/font/fontello.woff
index 2b52bb46..706ce384 100644
Binary files a/public/site_assets/mpos/font/fontello.woff and b/public/site_assets/mpos/font/fontello.woff differ
diff --git a/public/templates/mmcFE/global/navigation.tpl b/public/templates/mmcFE/global/navigation.tpl
index 8736f5e1..490e15f5 100644
--- a/public/templates/mmcFE/global/navigation.tpl
+++ b/public/templates/mmcFE/global/navigation.tpl
@@ -33,6 +33,7 @@
Block Stats
Hashrate Graphs
Round Stats
+ Block Finder Stats
{if $GLOBAL.config.monitoring_uptimerobot_api_keys|default:"0"}Uptime Stats{/if}
@@ -48,6 +49,9 @@
{if $GLOBAL.acl.round.statistics}
Round Stats
{/if}
+ {if $GLOBAL.acl.blockfinder.statistics}
+ Block Finder Stats
+ {/if}
{if $GLOBAL.acl.uptime.statistics}
{if $GLOBAL.config.monitoring_uptimerobot_api_keys|default:"0"}Uptime Stats{/if}
{/if}
diff --git a/public/templates/mmcFE/statistics/blockfinder/default.tpl b/public/templates/mmcFE/statistics/blockfinder/default.tpl
new file mode 100644
index 00000000..e69de29b
diff --git a/public/templates/mmcFE/statistics/blockfinder/finder.tpl b/public/templates/mmcFE/statistics/blockfinder/finder.tpl
new file mode 100644
index 00000000..5be66452
--- /dev/null
+++ b/public/templates/mmcFE/statistics/blockfinder/finder.tpl
@@ -0,0 +1,4 @@
+{include file="statistics/blockfinder/finder_top.tpl"}
+{if $smarty.session.AUTHENTICATED|default}
+{include file="statistics/blockfinder/finder_own.tpl" ALIGN="right" SHORT=true}
+{/if}
\ No newline at end of file
diff --git a/public/templates/mmcFE/statistics/blockfinder/finder_own.tpl b/public/templates/mmcFE/statistics/blockfinder/finder_own.tpl
new file mode 100644
index 00000000..37ee988d
--- /dev/null
+++ b/public/templates/mmcFE/statistics/blockfinder/finder_own.tpl
@@ -0,0 +1,25 @@
+{include file="global/block_header.tpl" ALIGN="right" BLOCK_HEADER="Blocks found by own Workers"}
+
+
+
+
+ | Rank |
+ Worker |
+ Blocks |
+ Coins Generated |
+
+
+
+{assign var=rank value=1}
+{section block $BLOCKSSOLVEDBYWORKER}
+
+ | {$rank++} |
+ {$BLOCKSSOLVEDBYWORKER[block].finder|default:"unknown/deleted"|escape} |
+ {$BLOCKSSOLVEDBYWORKER[block].solvedblocks} |
+ {$BLOCKSSOLVEDBYWORKER[block].generatedcoins|number_format} |
+
+{/section}
+
+
+
+{include file="global/block_footer.tpl"}
diff --git a/public/templates/mmcFE/statistics/blockfinder/finder_top.tpl b/public/templates/mmcFE/statistics/blockfinder/finder_top.tpl
new file mode 100644
index 00000000..aed95351
--- /dev/null
+++ b/public/templates/mmcFE/statistics/blockfinder/finder_top.tpl
@@ -0,0 +1,25 @@
+{include file="global/block_header.tpl" ALIGN="left" BLOCK_HEADER="Top 25 Blockfinder"}
+
+
+
+
+ | Rank |
+ Username |
+ Blocks |
+ Coins Generated |
+
+
+
+{assign var=rank value=1}
+{section block $BLOCKSSOLVEDBYACCOUNT}
+
+ | {$rank++} |
+ {if $BLOCKSSOLVEDBYACCOUNT[block].is_anonymous|default:"0" == 1 && $GLOBAL.userdata.is_admin|default:"0" == 0}anonymous{else}{$BLOCKSSOLVEDBYACCOUNT[block].finder|default:"unknown"|escape}{/if} |
+ {$BLOCKSSOLVEDBYACCOUNT[block].solvedblocks} |
+ {$BLOCKSSOLVEDBYACCOUNT[block].generatedcoins|number_format} |
+
+{/section}
+
+
+
+{include file="global/block_footer.tpl"}
diff --git a/public/templates/mpos/global/navigation.tpl b/public/templates/mpos/global/navigation.tpl
index 88129a87..9e8b0b08 100644
--- a/public/templates/mpos/global/navigation.tpl
+++ b/public/templates/mpos/global/navigation.tpl
@@ -33,6 +33,7 @@
Blocks
Graphs
Round
+ Finder
{if $GLOBAL.config.monitoring_uptimerobot_api_keys|default:"0"}Uptime{/if}
{else}
@@ -49,6 +50,9 @@
{if $GLOBAL.acl.round.statistics}
Round
{/if}
+ {if $GLOBAL.acl.blockfinder.statistics}
+ Finder
+ {/if}
{if $GLOBAL.acl.uptime.statistics}
{if $GLOBAL.config.monitoring_uptimerobot_api_keys|default:"0"}Uptime{/if}
{/if}
diff --git a/public/templates/mpos/statistics/blockfinder/default.tpl b/public/templates/mpos/statistics/blockfinder/default.tpl
new file mode 100644
index 00000000..e69de29b
diff --git a/public/templates/mpos/statistics/blockfinder/finder.tpl b/public/templates/mpos/statistics/blockfinder/finder.tpl
new file mode 100644
index 00000000..5be66452
--- /dev/null
+++ b/public/templates/mpos/statistics/blockfinder/finder.tpl
@@ -0,0 +1,4 @@
+{include file="statistics/blockfinder/finder_top.tpl"}
+{if $smarty.session.AUTHENTICATED|default}
+{include file="statistics/blockfinder/finder_own.tpl" ALIGN="right" SHORT=true}
+{/if}
\ No newline at end of file
diff --git a/public/templates/mpos/statistics/blockfinder/finder_own.tpl b/public/templates/mpos/statistics/blockfinder/finder_own.tpl
new file mode 100644
index 00000000..891ab3ed
--- /dev/null
+++ b/public/templates/mpos/statistics/blockfinder/finder_own.tpl
@@ -0,0 +1,25 @@
+
+ Blocks found by own Workers
+
+
+
+
+ | Rank |
+ Worker |
+ Blocks |
+ Coins Generated |
+
+
+
+{assign var=rank value=1}
+{section block $BLOCKSSOLVEDBYWORKER}
+
+ | {$rank++} |
+ {$BLOCKSSOLVEDBYWORKER[block].finder|default:"unknown/deleted"|escape} |
+ {$BLOCKSSOLVEDBYWORKER[block].solvedblocks} |
+ {$BLOCKSSOLVEDBYWORKER[block].generatedcoins|number_format} |
+
+{/section}
+
+
+
diff --git a/public/templates/mpos/statistics/blockfinder/finder_top.tpl b/public/templates/mpos/statistics/blockfinder/finder_top.tpl
new file mode 100644
index 00000000..853a3dc2
--- /dev/null
+++ b/public/templates/mpos/statistics/blockfinder/finder_top.tpl
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+ | Rank |
+ Username |
+ Blocks |
+ Coins Generated |
+
+
+
+{assign var=rank value=1}
+{section block $BLOCKSSOLVEDBYACCOUNT}
+
+ | {$rank++} |
+ {if $BLOCKSSOLVEDBYACCOUNT[block].is_anonymous|default:"0" == 1 && $GLOBAL.userdata.is_admin|default:"0" == 0}anonymous{else}{$BLOCKSSOLVEDBYACCOUNT[block].finder|default:"unknown"|escape}{/if} |
+ {$BLOCKSSOLVEDBYACCOUNT[block].solvedblocks} |
+ {$BLOCKSSOLVEDBYACCOUNT[block].generatedcoins|number_format} |
+
+{/section}
+
+
+
diff --git a/sql/000_base_structure.sql b/sql/000_base_structure.sql
index 8dee379b..220b55c9 100644
--- a/sql/000_base_structure.sql
+++ b/sql/000_base_structure.sql
@@ -40,6 +40,7 @@ CREATE TABLE IF NOT EXISTS `blocks` (
`time` int(11) NOT NULL,
`accounted` tinyint(1) NOT NULL DEFAULT '0',
`account_id` int(255) unsigned DEFAULT NULL,
+ `worker_name` varchar(50) DEFAULT 'unknown',
`shares` int(255) unsigned DEFAULT NULL,
`share_id` int(255) DEFAULT NULL,
PRIMARY KEY (`id`),
diff --git a/sql/004_blocks_worker.sql b/sql/004_blocks_worker.sql
new file mode 100644
index 00000000..bc1e147c
--- /dev/null
+++ b/sql/004_blocks_worker.sql
@@ -0,0 +1 @@
+ALTER TABLE `blocks` ADD `worker_name` varchar(50) DEFAULT 'unknown' AFTER `account_id`;
\ No newline at end of file