diff --git a/cronjobs/sharecounter.php b/cronjobs/sharecounter.php
new file mode 100644
index 00000000..77b1d6ca
--- /dev/null
+++ b/cronjobs/sharecounter.php
@@ -0,0 +1,58 @@
+getAll('ASC');
+foreach ($aAllBlocks as $iIndex => $aBlock) {
+ if (!$aBlock['accounted']) {
+ $iPrevBlockTime = @$aAllBlocks[$iIndex - 1]['time'];
+ if (!$iPrevBlockTime) {
+ $iPrevBlockTime = 0;
+ }
+ $aAccountShares = $share->getSharesForAccountsByTimeframe($aBlock['time'], $iPrevBlockTime);
+ $iRoundShares = $share->getRoundSharesByTimeframe($aBlock['time'], $iPrevBlockTime);
+ $strFinder = $share->getFinderByTimeframe($aBlock['time'], $iPrevBlockTime);
+ echo "ID\tHeight\tTime\t\tShares\tFinder\n";
+ echo $aBlock['id'] . "\t" . $aBlock['height'] . "\t" . $aBlock['time'] . "\t" . $iRoundShares . "\t" . $strFinder . "\n\n";
+ echo "ID\tUsername\tValid\tInvalid\tPercentage\tPayout\t\tStatus\n";
+ foreach ($aAccountShares as $key => $aData) {
+ $aData['percentage'] = number_format(round(( 100 / $iRoundShares ) * $aData['valid'], 10),10);
+ $aData['payout'] = number_format(round(( $aData['percentage'] / 100 ) * $config['reward'], 10), 10);
+ echo $aData['id'] . "\t" .
+ $aData['username'] . "\t" .
+ $aData['valid'] . "\t" .
+ $aData['invalid'] . "\t" .
+ $aData['percentage'] . "\t" .
+ $aData['payout'] . "\t";
+ if (!$statistics->updateShareStatistics($aData, $aBlock['id'])) {
+ echo "Stats Failed" . "\n";
+ }
+ }
+ echo "------------------------------------------------------------------------\n\n";
+
+ // Now that we have all shares counted internally let's update the tables
+ // Set shares as counted and mark block as accounted for
+ // $share->setCountedByTimeframe($aBlock['time'], $iPrevBlockTime);
+ // $block->setAccounted($aBlock['blockhash']);
+ }
+}
diff --git a/public/include/autoloader.inc.php b/public/include/autoloader.inc.php
index 936ee1c9..015d5590 100644
--- a/public/include/autoloader.inc.php
+++ b/public/include/autoloader.inc.php
@@ -7,4 +7,6 @@ require_once(INCLUDE_DIR . '/smarty.inc.php');
// Load classes that need the above as dependencies
require_once(CLASS_DIR . '/user.class.php');
require_once(CLASS_DIR . '/block.class.php');
+require_once(CLASS_DIR . '/share.class.php');
+require_once(CLASS_DIR . '/statistics.class.php');
require_once(CLASS_DIR . '/settings.class.php');
diff --git a/public/include/classes/block.class.php b/public/include/classes/block.class.php
index 83b5907d..11fa2b2c 100644
--- a/public/include/classes/block.class.php
+++ b/public/include/classes/block.class.php
@@ -62,6 +62,22 @@ class Block {
return false;
}
+ public function setAccounted($blockhash='') {
+ if ($blockhash == '') return false;
+ $stmt = $this->mysqli->prepare("UPDATE $this->table SET accounted = 1 WHERE blockhash = ?");
+ if ($this->checkStmt($stmt)) {
+ $stmt->bind_param('s', $blockhash);
+ if (!$stmt->execute()) {
+ $this->debug->append("Failed to execute statement: " . $stmt->error);
+ $stmt->close();
+ return false;
+ }
+ $stmt->close();
+ return true;
+ }
+ return false;
+ }
+
private function checkStmt($bState) {
if ($bState ===! true) {
$this->debug->append("Failed to prepare statement: " . $this->mysqli->error);
diff --git a/public/include/classes/share.class.php b/public/include/classes/share.class.php
new file mode 100644
index 00000000..b7928dd0
--- /dev/null
+++ b/public/include/classes/share.class.php
@@ -0,0 +1,137 @@
+debug = $debug;
+ $this->mysqli = $mysqli;
+ $this->debug->append("Instantiated Share class", 2);
+ }
+
+ // get and set methods
+ private function setErrorMessage($msg) {
+ $this->sError = $msg;
+ }
+ public function getError() {
+ return $this->sError;
+ }
+
+ public function getSharesForAccountsByTimeframe($current='', $old='') {
+ $stmt = $this->mysqli->prepare("SELECT
+ a.id,
+ validT.account AS username,
+ sum(validT.valid) as valid,
+ IFNULL(sum(invalidT.invalid),0) as invalid
+ FROM
+ (
+ SELECT DISTINCT
+ SUBSTRING_INDEX( `username` , '.', 1 ) as account,
+ COUNT(id) AS valid
+ FROM $this->table
+ WHERE
+ UNIX_TIMESTAMP(time) BETWEEN ? AND ?
+ AND
+ our_result = 'Y'
+ AND
+ counted = 0
+ GROUP BY account
+ ) validT
+ LEFT JOIN
+ (
+ SELECT DISTINCT
+ SUBSTRING_INDEX( `username` , '.', 1 ) as account,
+ COUNT(id) AS invalid
+ FROM $this->table
+ WHERE
+ UNIX_TIMESTAMP(time) BETWEEN ? AND ?
+ AND
+ our_result = 'N'
+ AND
+ counted = 0
+ GROUP BY account
+ ) invalidT
+ ON validT.account = invalidT.account
+ INNER JOIN accounts a ON a.username = validT.account
+ GROUP BY a.username DESC");
+ if ($this->checkStmt($stmt)) {
+ $stmt->bind_param('iiii', $old, $current, $old, $current);
+ $stmt->execute();
+ $result = $stmt->get_result();
+ $stmt->close();
+ return $result->fetch_all(MYSQLI_ASSOC);
+ }
+ return false;
+ }
+
+ public function getRoundSharesByTimeframe($current='', $old='') {
+ $stmt = $this->mysqli->prepare("SELECT
+ count(id) as total
+ FROM $this->table
+ WHERE our_result = 'Y'
+ AND UNIX_TIMESTAMP(time) BETWEEN ? AND ?
+ AND counted = 0
+ ");
+ if ($this->checkStmt($stmt)) {
+ $stmt->bind_param('ii', $old, $current);
+ $stmt->execute();
+ $result = $stmt->get_result();
+ $stmt->close();
+ return $result->fetch_object()->total;
+ }
+ return false;
+ }
+
+ public function setCountedByTimeframe($current='', $old='') {
+ $stmt = $this->mysqli->prepare("UPDATE $this->table
+ SET
+ counted = 1
+ WHERE
+ UNIX_TIMESTAMP(time) BETWEEN ? AND ?
+ AND counted = 0
+ ");
+ if ($this->checkStmt($stmt)) {
+ $stmt->bind_param('ii', $old, $current);
+ $stmt->execute();
+ $result = $stmt->get_result();
+ $stmt->close();
+ return true;
+ }
+ return false;
+ }
+
+ public function getFinderByTimeframe($current='', $old='') {
+ $stmt = $this->mysqli->prepare("SELECT
+ SUBSTRING_INDEX( `username` , '.', 1 ) AS account
+ FROM $this->table
+ WHERE upstream_result = 'Y'
+ AND UNIX_TIMESTAMP(time) BETWEEN ? AND ?
+ ORDER BY id DESC");
+ if ($this->checkStmt($stmt)) {
+ $stmt->bind_param('ii', $old, $current);
+ $stmt->execute();
+ $result = $stmt->get_result();
+ $stmt->close();
+ return @$result->fetch_object()->account;
+ }
+ return false;
+ }
+
+ private function checkStmt($bState) {
+ if ($bState ===! true) {
+ $this->debug->append("Failed to prepare statement: " . $this->mysqli->error);
+ $this->setErrorMessage('Internal application Error');
+ return false;
+ }
+ return true;
+ }
+}
+
+$share = new Share($debug, $mysqli, SALT);
diff --git a/public/include/classes/statistics.class.php b/public/include/classes/statistics.class.php
new file mode 100644
index 00000000..27a85445
--- /dev/null
+++ b/public/include/classes/statistics.class.php
@@ -0,0 +1,48 @@
+debug = $debug;
+ $this->mysqli = $mysqli;
+ $this->debug->append("Instantiated Share class", 2);
+ }
+
+ // get and set methods
+ private function setErrorMessage($msg) {
+ $this->sError = $msg;
+ }
+ public function getError() {
+ return $this->sError;
+ }
+
+ public function updateShareStatistics($aStats, $iBlockId) {
+ $stmt = $this->mysqli->prepare("INSERT INTO $this->table (account_id, valid, invalid, block_id) VALUES (?, ?, ?, ?, ?)");
+ if ($this->checkStmt($stmt)) {
+ $stmt->bind_param('iiiddi', $aStats['id'], $aStats['valid'], $aStats['invalid'], $iBlockId);
+ if ($stmt->execute()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private function checkStmt($bState) {
+ if ($bState ===! true) {
+ $this->debug->append("Failed to prepare statement: " . $this->mysqli->error);
+ $this->setErrorMessage('Failed to prepare statement');
+ return false;
+ }
+ return true;
+ }
+}
+
+$statistics = new Statistics($debug, $mysqli, SALT);
diff --git a/public/include/classes/user.class.php b/public/include/classes/user.class.php
index b64b1439..44ff027a 100644
--- a/public/include/classes/user.class.php
+++ b/public/include/classes/user.class.php
@@ -7,7 +7,7 @@ if (!defined('SECURITY'))
class User {
private $sError = '';
private $userID = false;
- private $table = 'webUsers';
+ private $table = 'accounts';
private $user = array();
private $tableAccountBalance = 'accountBalance';
private $tablePoolWorker = 'pool_worker';
diff --git a/public/include/pages/statistics/pool.inc.php b/public/include/pages/statistics/pool.inc.php
index 2434ad8d..add92cf4 100644
--- a/public/include/pages/statistics/pool.inc.php
+++ b/public/include/pages/statistics/pool.inc.php
@@ -14,16 +14,16 @@ if ($bitcoin->can_connect() === true){
$_SESSION['POPUP'][] = array('CONTENT' => 'Unable to connect to pushpool service: ' . $bitcoin->can_connect(), 'TYPE' => 'errormsg');
}
+/** Disabled Stats
// Top 15 hashrate list
-$stmt = $mysqli->prepare("SELECT username, id, hashrate FROM webUsers WHERE hashrate != '0' ORDER BY hashrate DESC LIMIT 15");
+$stmt = $mysqli->prepare("SELECT username, id, hashrate FROM accounts WHERE hashrate != '0' ORDER BY hashrate DESC LIMIT 15");
$stmt->execute();
$hashrates= $stmt->get_result();
$aHashData = $hashrates->fetch_all(MYSQLI_ASSOC);
$stmt->close();
// Top 15 Contributors
-# SELECT id, shares_this_round AS shares FROM webUsers WHERE shares_this_round > 0 ORDER BY shares DESC LIMIT
-$stmt = $mysqli->prepare("SELECT id, shares_this_round AS shares, username FROM webUsers WHERE shares_this_round > 0 ORDER BY shares DESC LIMIT 15");
+$stmt = $mysqli->prepare("SELECT id, shares_this_round AS shares, username FROM accounts WHERE shares_this_round > 0 ORDER BY shares DESC LIMIT 15");
$stmt->execute();
$contributors = $stmt->get_result();
$aContributorData = $contributors->fetch_all(MYSQLI_ASSOC);
@@ -36,8 +36,9 @@ $blocks = $stmt->get_result();
$aBlockData = $blocks->fetch_array();
$stmt->close();
+ */
// Grab the last 10 blocks found
-$stmt = $mysqli->prepare("SELECT DISTINCT w.shareCount AS shares, w.username, n.blockNumber, n.confirms, n.timestamp FROM winning_shares w, networkBlocks n WHERE w.blockNumber = n.blockNumber ORDER BY w.blockNumber DESC LIMIT 10");
+$stmt = $mysqli->prepare("SELECT DISTINCT * FROM blocks ORDER BY height DESC LIMIT 10");
$stmt->execute();
$blocksfound = $stmt->get_result();
$aBlocksFoundData = $blocksfound->fetch_all(MYSQLI_ASSOC);
diff --git a/public/templates/mmcFE/statistics/blocks/blocks_found.tpl b/public/templates/mmcFE/statistics/blocks/blocks_found.tpl
index 0f67dae8..9fabfd93 100644
--- a/public/templates/mmcFE/statistics/blocks/blocks_found.tpl
+++ b/public/templates/mmcFE/statistics/blocks/blocks_found.tpl
@@ -15,11 +15,11 @@
{section block $BLOCKSFOUND}
{assign var=user value="."|explode:$BLOCKSFOUND[block].username}
- | {$BLOCKSFOUND[block].blockNumber} |
- {if $BLOCKSFOUND[block].confirms >= 120}Confirmed{else}{$BLOCKSFOUND[block].confirms - 120} left{/if} |
- {$user.0} |
- {$BLOCKSFOUND[block].timestamp|date_format:"%d/%m/%Y %H:%M:%S"} |
- {$BLOCKSFOUND[block].shares|number_format} |
+ {$BLOCKSFOUND[block].height} |
+ {if $BLOCKSFOUND[block].confirmations >= 120}Confirmed{else}{$BLOCKSFOUND[block].confirms - 120} left{/if} |
+ {$user.0|default:"unknown"} |
+ {$BLOCKSFOUND[block].time|date_format:"%d/%m/%Y %H:%M:%S"} |
+ {$BLOCKSFOUND[block].difficulty|number_format} |
{/section}
diff --git a/sql/litecoin_structure.sql b/sql/litecoin_structure.sql
index 436c58fd..06ac1bec 100644
--- a/sql/litecoin_structure.sql
+++ b/sql/litecoin_structure.sql
@@ -1,28 +1,32 @@
--- MySQL dump 10.13 Distrib 5.5.31, for Linux (x86_64)
+-- phpMyAdmin SQL Dump
+-- version 3.5.8.1deb1
+-- http://www.phpmyadmin.net
--
--- Host: localhost Database: litecoin
--- ------------------------------------------------------
--- Server version 5.5.31-log
+-- Host: localhost
+-- Erstellungszeit: 10. Mai 2013 um 22:41
+-- Server Version: 5.5.31-0ubuntu0.13.04.1
+-- PHP-Version: 5.4.9-4ubuntu2
+
+SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
+SET time_zone = "+00:00";
+
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
-/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
-/*!40103 SET TIME_ZONE='+00:00' */;
-/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
-/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
-/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
-/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
--- Table structure for table `accountBalance`
+-- Datenbank: `mmcfe_ng`
--
-DROP TABLE IF EXISTS `accountBalance`;
-/*!40101 SET @saved_cs_client = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `accountBalance` (
+-- --------------------------------------------------------
+
+--
+-- Tabellenstruktur für Tabelle `accountBalance`
+--
+
+CREATE TABLE IF NOT EXISTS `accountBalance` (
`id` int(255) NOT NULL AUTO_INCREMENT,
`userId` int(255) NOT NULL,
`balance` varchar(40) DEFAULT NULL,
@@ -32,17 +36,53 @@ CREATE TABLE `accountBalance` (
PRIMARY KEY (`id`),
UNIQUE KEY `userId` (`userId`),
KEY `b_userId` (`userId`)
-) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
+
+-- --------------------------------------------------------
--
--- Table structure for table `ledger`
+-- Tabellenstruktur für Tabelle `accounts`
--
-DROP TABLE IF EXISTS `ledger`;
-/*!40101 SET @saved_cs_client = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `ledger` (
+CREATE TABLE IF NOT EXISTS `accounts` (
+ `id` int(255) NOT NULL AUTO_INCREMENT,
+ `admin` int(1) NOT NULL,
+ `username` varchar(40) CHARACTER SET latin1 NOT NULL,
+ `pass` varchar(255) CHARACTER SET latin1 NOT NULL,
+ `email` varchar(255) CHARACTER SET latin1 NOT NULL COMMENT 'Assocaited email: used for validating users, and re-setting passwords',
+ `loggedIp` varchar(255) CHARACTER SET latin1 NOT NULL,
+ `sessionTimeoutStamp` int(255) NOT NULL,
+ `pin` varchar(255) CHARACTER SET latin1 NOT NULL COMMENT 'four digit pin to allow account changes',
+ `donate_percent` varchar(11) CHARACTER SET latin1 DEFAULT '0',
+ PRIMARY KEY (`id`)
+) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;
+
+-- --------------------------------------------------------
+
+--
+-- Tabellenstruktur für Tabelle `blocks`
+--
+
+CREATE TABLE IF NOT EXISTS `blocks` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `height` int(10) unsigned NOT NULL,
+ `blockhash` char(64) CHARACTER SET utf8 NOT NULL,
+ `confirmations` int(10) unsigned NOT NULL,
+ `amount` float NOT NULL,
+ `time` int(11) NOT NULL,
+ `accounted` tinyint(1) NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `height` (`height`,`blockhash`),
+ KEY `timestamp` (`time`)
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='Discovered blocks persisted from Litecoin Service' AUTO_INCREMENT=25 ;
+
+-- --------------------------------------------------------
+
+--
+-- Tabellenstruktur für Tabelle `ledger`
+--
+
+CREATE TABLE IF NOT EXISTS `ledger` (
`id` int(255) NOT NULL AUTO_INCREMENT,
`userId` int(255) NOT NULL,
`transType` varchar(40) DEFAULT NULL,
@@ -52,35 +92,15 @@ CREATE TABLE `ledger` (
`assocBlock` int(255) DEFAULT '0',
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
-) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=16 ;
+
+-- --------------------------------------------------------
--
--- Table structure for table `networkBlocks`
+-- Tabellenstruktur für Tabelle `pool_worker`
--
-DROP TABLE IF EXISTS `networkBlocks`;
-/*!40101 SET @saved_cs_client = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `networkBlocks` (
- `id` int(255) NOT NULL AUTO_INCREMENT,
- `blockNumber` int(255) NOT NULL,
- `timestamp` int(255) NOT NULL,
- `accountAddress` varchar(255) NOT NULL,
- `confirms` int(255) NOT NULL,
- `difficulty` varchar(240) NOT NULL,
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM AUTO_INCREMENT=14158 DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Table structure for table `pool_worker`
---
-
-DROP TABLE IF EXISTS `pool_worker`;
-/*!40101 SET @saved_cs_client = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `pool_worker` (
+CREATE TABLE IF NOT EXISTS `pool_worker` (
`id` int(255) NOT NULL AUTO_INCREMENT,
`associatedUserId` int(255) NOT NULL,
`username` char(50) DEFAULT NULL,
@@ -89,31 +109,27 @@ CREATE TABLE `pool_worker` (
`hashrate` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `p_username` (`username`)
-) ENGINE=MyISAM AUTO_INCREMENT=21 DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
+) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=21 ;
+
+-- --------------------------------------------------------
--
--- Table structure for table `settings`
+-- Tabellenstruktur für Tabelle `settings`
--
-DROP TABLE IF EXISTS `settings`;
-/*!40101 SET @saved_cs_client = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `settings` (
+CREATE TABLE IF NOT EXISTS `settings` (
`setting` varchar(255) NOT NULL,
`value` varchar(255) DEFAULT NULL,
PRIMARY KEY (`setting`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
+
+-- --------------------------------------------------------
--
--- Table structure for table `shares`
+-- Tabellenstruktur für Tabelle `shares`
--
-DROP TABLE IF EXISTS `shares`;
-/*!40101 SET @saved_cs_client = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `shares` (
+CREATE TABLE IF NOT EXISTS `shares` (
`id` bigint(30) NOT NULL AUTO_INCREMENT,
`rem_host` varchar(255) NOT NULL,
`username` varchar(120) NOT NULL,
@@ -123,147 +139,8 @@ CREATE TABLE `shares` (
`solution` varchar(257) NOT NULL,
`time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
-) ENGINE=InnoDB AUTO_INCREMENT=1506135 DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
+) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1507278 ;
---
--- Table structure for table `shares_counted`
---
-
-DROP TABLE IF EXISTS `shares_counted`;
-/*!40101 SET @saved_cs_client = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `shares_counted` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `blockNumber` int(11) NOT NULL,
- `userId` int(11) NOT NULL,
- `count` int(11) NOT NULL,
- `invalid` int(11) NOT NULL DEFAULT '0',
- `counted` int(1) NOT NULL DEFAULT '1',
- `score` double(23,2) DEFAULT NULL,
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM AUTO_INCREMENT=27107 DEFAULT CHARSET=utf8;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Table structure for table `shares_history`
---
-
-DROP TABLE IF EXISTS `shares_history`;
-/*!40101 SET @saved_cs_client = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `shares_history` (
- `id` bigint(30) NOT NULL AUTO_INCREMENT,
- `counted` int(1) NOT NULL COMMENT 'BOOLEAN) Tells server if it used these shares for counting',
- `blockNumber` int(255) NOT NULL,
- `rem_host` varchar(255) NOT NULL,
- `username` varchar(120) NOT NULL,
- `our_result` enum('Y','N') NOT NULL,
- `upstream_result` enum('Y','N') DEFAULT NULL,
- `reason` varchar(50) DEFAULT NULL,
- `solution` varchar(257) NOT NULL,
- `time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- `score` double(23,2) DEFAULT NULL,
- PRIMARY KEY (`id`),
- KEY `sh_blocknumber` (`blockNumber`),
- KEY `sh_counted` (`counted`)
-) ENGINE=InnoDB AUTO_INCREMENT=1519630 DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Table structure for table `shares_uncounted`
---
-
-DROP TABLE IF EXISTS `shares_uncounted`;
-/*!40101 SET @saved_cs_client = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `shares_uncounted` (
- `id` bigint(30) NOT NULL AUTO_INCREMENT,
- `blockNumber` int(11) NOT NULL,
- `userId` int(11) NOT NULL,
- `count` int(11) NOT NULL,
- `invalid` int(11) NOT NULL DEFAULT '0',
- `counted` int(1) NOT NULL DEFAULT '0',
- `score` double(23,2) DEFAULT NULL,
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM AUTO_INCREMENT=27856 DEFAULT CHARSET=utf8;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Table structure for table `userHashrates`
---
-
-DROP TABLE IF EXISTS `userHashrates`;
-/*!40101 SET @saved_cs_client = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `userHashrates` (
- `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
- `userId` int(255) NOT NULL,
- `hashrate` int(11) NOT NULL DEFAULT '0',
- PRIMARY KEY (`id`),
- KEY `timestamp` (`timestamp`),
- KEY `userHashrates_id1` (`userId`),
- KEY `userId_timestamp` (`userId`,`timestamp`)
-) ENGINE=InnoDB AUTO_INCREMENT=133959 DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Table structure for table `webUsers`
---
-
-DROP TABLE IF EXISTS `webUsers`;
-/*!40101 SET @saved_cs_client = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `webUsers` (
- `id` int(255) NOT NULL AUTO_INCREMENT,
- `admin` int(1) NOT NULL,
- `username` varchar(40) NOT NULL,
- `pass` varchar(255) NOT NULL,
- `email` varchar(255) NOT NULL COMMENT 'Assocaited email: used for validating users, and re-setting passwords',
- `emailAuthPin` varchar(10) NOT NULL COMMENT 'The pin required to authorize that email address',
- `secret` varchar(10) NOT NULL,
- `loggedIp` varchar(255) NOT NULL,
- `sessionTimeoutStamp` int(255) NOT NULL,
- `accountLocked` int(255) NOT NULL COMMENT 'This is the timestamp when the account will be unlocked(usually used to lock accounts that are trying to be bruteforced)',
- `accountFailedAttempts` int(2) NOT NULL COMMENT 'This counts the number of failed attempts for web login',
- `pin` varchar(255) NOT NULL COMMENT 'four digit pin to allow account changes',
- `share_count` int(11) DEFAULT NULL,
- `stale_share_count` int(11) DEFAULT NULL,
- `shares_this_round` int(11) DEFAULT NULL,
- `api_key` varchar(255) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,
- `activeEmail` int(1) DEFAULT NULL,
- `hashrate` int(11) DEFAULT NULL,
- `donate_percent` varchar(11) DEFAULT '0',
- `round_estimate` varchar(40) DEFAULT '0',
- `account_type` int(1) NOT NULL DEFAULT '0' COMMENT '0 = normal account, 9 = early-adopter no-fee',
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-
---
--- Table structure for table `winning_shares`
---
-
-DROP TABLE IF EXISTS `winning_shares`;
-/*!40101 SET @saved_cs_client = @@character_set_client */;
-/*!40101 SET character_set_client = utf8 */;
-CREATE TABLE `winning_shares` (
- `id` int(11) NOT NULL AUTO_INCREMENT,
- `blockNumber` int(11) NOT NULL,
- `username` varchar(50) NOT NULL,
- `shareCount` int(11) NOT NULL DEFAULT '0',
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=latin1;
-/*!40101 SET character_set_client = @saved_cs_client */;
-/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
-
-/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
-/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
-/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
-/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-
--- Dump completed on 2013-05-06 14:05:24