Commit Graph

265 Commits

Author SHA1 Message Date
Sebastian Grewe
7d801a561c Fixing Orphan showing as unconfirmed
* Fixes orphaned transactions showing as unconfirmed too
* Fixes transaction tables to show orphaned credits in green, not red

Fixes #490
2013-07-21 08:20:53 +02:00
Sebastian Grewe
440ca027a2 Fixing PPLNS target calculation on blockavg
This will fix #492 with PPLNS targets not taking the blocks in proper
order.
2013-07-21 08:12:40 +02:00
Sebastian Grewe
d492b532b7 Adding ability to disable the sites API functions
Addresses #467 and will fix upon merge.
2013-07-17 09:43:02 +02:00
Sebastian Grewe
b7ffbd0bfd fixing issue for first created admin user 2013-07-16 16:02:52 +02:00
Sebastian Grewe
41ec58ea16 Adding inline docuemtation to invitation class
Adding proper inline documentation to invitation class.
2013-07-15 16:28:22 +02:00
Sebastian Grewe
501f369b4e Further fixes to PHP warnings
Addresses #330 and further cleans up the PHP log.
2013-07-15 15:31:18 +02:00
Sebastian Grewe
525c0ab009 Fixing PHP Warning on unsert token on register
Addresses #330 and cleans up PHP Log
2013-07-15 14:28:54 +02:00
Sebastian Grewe
bf3cd25326 removing unused token methods 2013-07-15 12:52:55 +02:00
Sebastian Grewe
bd32dfa9f8 Adding invitation system to mmcfe-ng core
This will allow users to send invitations to other people via email.
Each account will still need to confirm the email address if the option
is enabled.

Addresses #330, will need to allow pool operators to enable this feature
even with registrations turned off.
2013-07-15 12:26:31 +02:00
Sebastian Grewe
7cc1e2543c fixing syntax error 2013-07-15 12:26:31 +02:00
Sebastian Grewe
be9a8d3fda Go through activiation even for admin accounts
Fixes an issue with accounts being locked after trying to activate it.

Addresses #330
2013-07-15 12:26:31 +02:00
Sebastian Grewe
0ede05a6fd Adding email verification
* Adding mail verification during account registration
* Added new dist file option for mail verification
* Added account confirmation page using tokens
* Added mail class into user class for password resets
* Moved password reset template
* Adjusted account registration page
* Adjusted user class for email confirmation

Also fixed a bug with smarty_cache_key not being used properly if smarty
is disabled. Key still needs to be available even if caching is disabled

Addresses #330 and prepare the ticket for invitation only system.
2013-07-15 12:26:31 +02:00
Sebastian Grewe
29d5d36a7e WiP for one time tokens
* Added token type class
* Storing Token Type as ID not varchar
* Added new system to user class and fixed issues with it
* Started on mail verification process in user class
* Updated autoloader
* Updated change password template

Addresses #330
2013-07-15 12:26:31 +02:00
Sebastian Grewe
253d6e8a47 Fixing username regexp during registration
Fixes wrong regext of #453
2013-07-14 21:08:03 +02:00
Sebastian Grewe
15753f5eca Merge pull request #455 from typal/issue-452
fucked up...
2013-07-14 01:15:21 -07:00
typ
ed5e320ff6 fucked up... 2013-07-14 02:43:44 +02:00
Sebastian Grewe
d190866315 Merge pull request #454 from TheSerapher/issue-419
Adding anonymous account support
2013-07-13 10:43:21 -07:00
typ
0775eaf8c1 add check for non alpa/-/_ chars 2013-07-13 16:41:51 +02:00
Sebastian Grewe
8ec1d2cab3 Adding anonymous account support
* Added anonymous flag to accounts table
* Added checkbox for anonymous flag in edit account page
* Updated user class to support new flag
* Updated statistics class to support anonymous and donations
* Updated all templates showing usernames to show anonymous instead
* Added new SQL `ALTER TABLE` file for upgrading the table

Fixes #419 once merged.
2013-07-12 10:33:42 +02:00
Sebastian Grewe
ab620f1fe0 Merge pull request #443 from TheSerapher/issue-432
Get rid of Orphan transaction types
2013-07-12 00:46:45 -07:00
Sebastian Grewe
a9ae72cd50 Merge pull request #445 from IainKay/issue-434
Issue 434
2013-07-11 13:06:41 -07:00
Iain Kay
dfbaf621de When destroying a users session on the server we now also remove all session data immediately, rather than relying on garbage collection, and we destroy the cookie on the users browser. 2013-07-11 19:41:50 +00:00
Ilya Stromberg
8f4b4ed970 Fix code style 2013-07-11 19:35:23 +04:00
Ilya Stromberg
15e89ad4d3 (#409) Do not use Memcached if it switched off via config 2013-07-11 19:11:03 +04:00
Sebastian Grewe
5b50422675 Fixing XSS for user registration 2013-07-11 15:49:08 +02:00
Sebastian Grewe
dfde017267 Get rid of Orphan transaction types
This fixes #432 and puts orphans on the same system as unconfirmed
transactions.
2013-07-11 14:26:53 +02:00
Sebastian Grewe
1344f39f96 Ensure we set workers to 0
If no workers are found false is returned. Smarty is not able to set a
default on `false` values so we have to set it to 0 if the query failed.

Fixes #418
2013-07-11 11:43:48 +02:00
Sebastian Grewe
fdf97c8832 fixing config access in share class for archive purge 2013-07-10 14:24:15 +02:00
Sebastian Grewe
94d9c1eb4c Added cronjob monitoring to admin panel
* Added monitoring class to deal with monitoring events
* Added event calls to all important cronjobs
* Added cron_end include file for monitoring cleanups on successful runs
* Added Monitoring to autoloader
* Modified account page to check for running auto_payout in monitoring
* Added monitoring to Navigation bar
* Added monitoring controller page

Fixes #415
2013-07-10 10:40:11 +02:00
Sebastian Grewe
b4b6b118bf Ensure to return 0 if no valid/invalid shares are found 2013-07-09 23:19:36 +02:00
Sebastian Grewe
ecf3db3a5b Removed BETWEEN call for round shares
Now shares are calculated proper with

`id > ? AND id <= ?`

as boundaries. This will ensure the upstream result is also calculated
for the round.

Addresses #143
2013-07-09 22:41:21 +02:00
Sebastian Grewe
ba240000ab Latest version for PPLNS payouts
* Rebased with next to add logging functions
* Added block method to fetch specific block
* Modified getArchive shares method to be more constistent
* Added new global configuration
* Adjusted smarty globals with new configuration
* More verbose pplns cron with logging
* Re-target the round in case of PPLNS not being matched by archive

Fixes #143
2013-07-09 21:59:44 +02:00
Sebastian Grewe
2f2acdad6d First working version of PPLNS payouts
* Based PPLNS on Prop Payout script
* Using defaults from prop payout, no class adjustments
* Added more methods required for PPLNS
* Added block methods for dynamic payout calculations
* Added PPLNS Sidebar that also displays the PPLNS Target
 * Shares beyond this target will not be included in payouts
 * Shares missing to this target will be added from archives
* Enabled archiving by default for PPLNS
* Added configuration options for PPLNS
 * Documented the usage for PPLNS, defaults are sane
* Added pplns_payout to run-crons

Addresses #143 and if accepted will fix it
2013-07-09 21:59:44 +02:00
Sebastian Grewe
dc51d874a7 Adding block height to blockupdate output
This should make tracing block updates easier.
2013-07-09 21:26:06 +02:00
Sebastian Grewe
52e02a545b fixing issue with upstream shares not being found 2013-07-09 15:43:42 +02:00
Sebastian Grewe
abef09b08c Added blockhash solution checking
Stratum of @moopless supports blockhash as a solution. Check for that
one first.

Addresses #405
2013-07-09 14:50:23 +02:00
Sebastian Grewe
7f759708c8 Adding share type to log output
This will display which detection mechanism caught the share.
Fixed stratum detection

Fixes #405
2013-07-09 11:43:12 +02:00
Sebastian Grewe
e4f8537165 removing debug output 2013-07-09 11:34:49 +02:00
Sebastian Grewe
f6b350370d Adding solution detections for blocks
This will finally fix all block finding issues with a 4 way detection.
The find upstream method will continue to try other ways to find a
proper share until they are all exhausted or a match was found.

* Use stratum solution, create scrypt hash from block header
* Use pushpoold solution, create solution string from block header
* Use first available upstream share in timerange of block time
* Use *any* first available valid share older than time of block

This will fix #405 - no more unknown blocks. Ever.
2013-07-09 11:27:20 +02:00
Sebastian Grewe
c9df482683 Merge branch 'next' into issue-392 2013-07-08 08:47:35 +02:00
Sebastian Grewe
6193604598 Fallback call if upstream share not found properly
Implemented a fallback method in case no upstream share can be found for
a block. This will result in same strange behaviour especially if a
later block has properly added a valid share and this will be used for a
previous block. At least now even the last block will be properly found
and marked as discovered by a user, even though no actual upstream share
was involved in this.

This is a dirty workaround for pools having payout issues. After all
blocks are processed and assuming upstream shares continue to work as
expected, this will *skip* broken blocks/shares.

Workaround fix for #392
2013-07-07 22:24:52 +02:00
Sebastian Grewe
6dc795fd77 Improved cron logging via logfiles
* Added 3rd party logger library KLogger
* Adjusted all cronjobs from verbose output to logging
* Added new logs folder for crons to write to
* Added new .gitignore for logs folder data
* Updated blocks class to only fetch blocks with no share_id
* Adjusted findblocks to use no blocks class method
2013-07-07 22:04:43 +02:00
Sebastian Grewe
6f3c5bb95e Merge pull request #398 from TheSerapher/issue-312-24h-hashrates
Issue 312 24h hashrates
2013-07-07 11:54:26 -07:00
Sebastian Grewe
2586aca34e Revert "Fixing issue with delayed inserts for shares"
This reverts commit 752b3e810f.
2013-07-07 19:52:24 +02:00
Sebastian Grewe
748b63d908 Merge pull request #395 from TheSerapher/issue-389
Enforce unique account emails

Fixes #389
2013-07-07 10:40:47 -07:00
Sebastian Grewe
9d50c9a222 User proper archive table for union
Addresses #312
2013-07-07 19:39:58 +02:00
Sebastian Grewe
752b3e810f Fixing issue with delayed inserts for shares
When shares are inserted with a delay for performance optimizations,
this will cause block timestamps to be completely off with share
timestamps. Hence the timestamp limited search is now removed, it would
cause too many issues for Stratum users/pools.

Addresses #392
2013-07-06 23:11:28 +02:00
Sebastian Grewe
307c7ee23f Enforce unique account emails
* display an error if user tries to re-use an email address
* moved SQL files to indicate the order of SQL import
* added unique email index SQL file

This will address #389, still needs email validation.
2013-07-06 17:47:50 +02:00
Sebastian Grewe
89af793a28 Fixing pool hashrate graph
Should fix #312 completely.
2013-07-06 17:32:58 +02:00
Sebastian Grewe
380e802c75 fixing stmt issue 2013-07-06 08:34:41 +02:00
Sebastian Grewe
ab85af19a1 Re-add shares archive table for 24h hashrates
This should fix #312 and fix #256 where hashrates are reset on quick rounds.
Users are not able to properly view their past 24h hashrates.

Will be merged once confirmed working.
2013-07-05 23:23:19 +02:00
Sebastian Grewe
9b81d48e72 Fix PHP Warning on user login
While at it, I also extracted the hash function into it's own getHash
method. This will allow easy changes to hashing for string in the
future.

Fixes #382
2013-07-05 22:56:22 +02:00
Sebastian Grewe
b3479a9c04 Adding further IFNULL checks to statistics class 2013-07-04 13:25:11 +02:00
Sebastian Grewe
e963072740 Merge pull request #368 from TheSerapher/issue-367
Issue 367
2013-07-04 04:03:11 -07:00
Sebastian Grewe
c9915ce628 Removed var_dump debug output 2013-07-04 13:02:36 +02:00
Sebastian Grewe
463b97ea50 Do not return null on empty valid/invalid shares 2013-07-04 13:01:29 +02:00
Sebastian Grewe
dfa8d285ce Properly allow '0' as a workername or password
This fixes #347 as recommended at

http://de3.php.net/manual/en/function.empty.php

We allow anything else than an empty string.
2013-07-04 12:50:17 +02:00
Sebastian Grewe
8056ce9f87 Adding input check for AP and Donation
Fixes #354
2013-07-04 12:42:03 +02:00
Sebastian Grewe
acba30a888 Merge pull request #363 from TheSerapher/issue-331
Adding shares archive table back in for hash calcs
2013-07-04 01:41:50 -07:00
Sebastian Grewe
f4ce22bee8 Skip bogus upstream shares
This will fix an issue with blocks being assigned upstream shares that
are marked as valid but are not the actual solution for a block.

Only shares inserted when or after the block timestamp are now looked
at. This will ensure other shares inserted earlier and marked as
upstream valid are skipped.

This will not fix edge cases where many shares are inserted at the same
time and are all in the same timeframe of the block. Then the first
valid share in that time is used.

This worked fine on a testnet with a number of blocks found and false
shares inserted by hand.

Fixes #352
2013-07-03 15:01:08 +02:00
Sebastian Grewe
4c3c690f1c Merge pull request #351 from TheSerapher/issue-346
Fix PHP warning in notification class
2013-07-03 05:27:04 -07:00
Sebastian Grewe
ce5a8f7240 Fix PHP Warnings on Password Reset page
* Added HTML5 required to username field
* Added empty string check to resetPassword method

Fixes #348
2013-07-03 14:25:14 +02:00
Sebastian Grewe
382fddb528 Remove PHP Warnings from worker page
* Added HTML5 required flags for username/passwords
* Added empty string check in addWorker method

Fixes #347
2013-07-03 14:21:05 +02:00
Sebastian Grewe
4f2402e6ed Fix PHP warning in notification class
* Fix PHP Warning if no notification settings exist yet

Fixes #346
2013-07-03 08:09:09 +02:00
Sebastian Grewe
7e4938f279 Fixing PHP warnings on account workers page
* Fixes PHP Warning if no workers are updated
* Fixes PHP Warning in worker class if data is empty

Fixes #339
2013-07-02 21:08:26 +02:00
Sebastian Grewe
e1c5761cf4 Fixing strict PHP warnings when registering a user
Fixes #329
2013-07-02 20:59:03 +02:00
Sebastian Grewe
306162a1da Adding shares archive table back in for hash calcs
If the shares archive table is used via config option, those shares are
included when calculating the users hashrate. This will help on very
short rounds where each round end deletes all shares and users will not
be able to track their hashrates. They will be very jumpy and change to
0 all the time.

Still missing this implementation for the hourly hashrate function to
ensure the graphs are always kept up-to-date.

Addresses #331
2013-07-02 14:02:13 +02:00
Sebastian Grewe
535f13c184 Fixing PHP Warnings in Registration page
* Fix API Key generation not using SALT when creating hash
 * This should not affect existing API keys since hashes are compared
* Fix PHP Warning for RECAPTCHA if disabled

Fixes #328
2013-07-02 10:38:23 +02:00
Sebastian Grewe
cfb209a425 removed debug output 2013-06-30 13:43:05 +02:00
Sebastian Grewe
7390ca38e5 Enable or Disable maintenance and registrations
This will allow any admin to enable or disable a pool maintenance mode.
Regular users that are still logged in will not be kicked out (yet). New
users that are trying to login and are not admins will be denied access.

Also added registration option to Admin Settings via WebUI. You can now
disable new accounts via web option or configuration setting.

Fixes #259 but also adds an additional feature.
2013-06-30 12:03:46 +02:00
Sebastian Grewe
483e554259 Adding SQL based pagination to admin transactions
This will prevent PHP OOM errors due to a large amount of transactions.
You can find navigation arrows at the top and fetch 30 transactions at a
time.

Fixes #267
2013-06-30 11:04:12 +02:00
Sebastian Grewe
5c6e872867 Fixing false shares result in API call
Fixes #262
2013-06-28 15:54:30 +02:00
Sebastian Grewe
92f2243cfb Fixing getuserstatus API call
Fixes #257
2013-06-28 15:47:21 +02:00
Sebastian Grewe
d4f4b9073f Working jQuery Mobile frontend for mobile devices
* Added mobile device detection PHP library
* Call PHP library to decide which theme to use
* Added theme as a configuration option into global config
 * Selectable Desktop theme (default: mmcFE)
 * Selectable Mobile theme (default: mobile)
 * Disable mobile theme support entirely

**NOTE**: This requires updates to the `global.inc.php` so please check
the dist file and update your config before filing a new issue!

Addresses #25
2013-06-28 13:45:14 +02:00
Sebastian Grewe
1126118cb9 Fetch all user shares in one query
This will fetch all user shares in a single run, not user by user as
done previously. Saves one query and can possibly increase SQL execution
time.

Addresses #246
2013-06-26 10:54:10 +02:00
Sebastian Grewe
416d52078d Adding an optimized valid/invalid shares query
* This should speed up the process of finding shares for round and users

Addresses #246
2013-06-26 10:00:06 +02:00
Sebastian Grewe
a09bd1470e Adding account name to all transactions
Fixes #251
2013-06-25 11:39:44 +02:00
Sebastian Grewe
370b3475b9 Adding transactions admin panel
* Lists all transactions for all users

Addresses #251
2013-06-25 10:57:56 +02:00
Sebastian Grewe
2095b09d69 More verbose output on cron updates
* Added more verbosity to crons
* Made the output look better on consoles
* Added another error message to notifications class
2013-06-24 10:36:59 +02:00
Sebastian Grewe
d630329055 Display error message to user on failed logins
Warn a user with an error that there have been failed login attempts
for their account. Login errors can be cleared by clicking on the URL in
the message itself.

Fixes #240
2013-06-23 20:58:42 +02:00
Sebastian Grewe
4113e05a10 Adding multi-API support
This will allow users to change the API url, added coinchose as an
example as pointed out by @vias79 .

* tools class detects the API type
* getPrice returns the price based on API URL parsed

Fixes #236
2013-06-23 20:41:43 +02:00
Sebastian Grewe
2e7a4a8092 Adding donors page to About dropdown
Lists all donors, their donation setting and total donated amount.
This will allow people to see who is contributing to the pool.

Fixes #223
2013-06-23 20:12:34 +02:00
Sebastian Grewe
bfcf14a74c Sort news by time, newest first
Fixes #231
2013-06-21 20:29:21 +02:00
Sebastian Grewe
2e566f6e97 Only use valid shares for worker status
Fixes #229
2013-06-21 16:30:08 +02:00
Sebastian Grewe
84ababe9f7 Adding support for post time and author
* Added new SQL upgrade and structure
* Added post time and author to admin panel
* Added post time and author to news list

Fixes #226
2013-06-21 12:11:13 +02:00
Sebastian Grewe
e4e88e5226 Adding custom news posts via admin panel
* Adding dynamic news posts from DB
* Support Adding, Editing, Activating, Deactivating through admin panel
* Display all active posts on news page
* Implemented Markdown Library by Michelf

Fixes #61
2013-06-21 11:16:02 +02:00
Sebastian Grewe
5f271e3f67 Fixing issues with application using BASEPATH
Fixes #217
2013-06-19 14:50:13 +02:00
Sebastian Grewe
3f0c3884aa Adding some more information for PPS to sidebar
* Added user share rate to sidebar for PPS
* Added estimated 24h LTC payout based on PPS value and share rate

Addresses #160
2013-06-18 09:35:01 +02:00
Sebastian Grewe
68d874b15a Merge pull request #208 from TheSerapher/issue-189
Issue 189
2013-06-18 00:31:51 -07:00
Sebastian Grewe
34509051e2 Properly detect if we did find an upstream share
Avoid returning true even if no share was found.

Addresses #189
2013-06-18 09:30:13 +02:00
Sebastian Grewe
b532bbca51 Do not mark PPS transactions as unconfirmed
Fixes #206
2013-06-17 16:42:17 +02:00
Sebastian Grewe
fa7f61c436 Adding transaction fees to transaction class
This will add back the transaction fees. Prior to this commit the pool
had to cover the transaction fees. Now for each transaction the full
balance is transferred (RPC Daemon will remove the TX Fee) but two
transactions are added. One for the Debig and one TXFee.

Fixes #203.

**Requires database upgrade with supplied SQL file**
2013-06-17 11:17:15 +02:00
Sebastian Grewe
91ef2caaab Added cronjob to pre-cache statistics
This will fix #199 and help on loading times for the website in case
caches are empty. Caches are pre-filled by a cron so the website only
does it as a fall back. Check Ticket for details.
2013-06-17 10:07:40 +02:00
Sebastian Grewe
0817befaaa Further cleanup to reduce PHP notice warnings 2013-06-14 13:51:06 +02:00
Sebastian Grewe
6f858188ad Adding pool and combined hashrate graphs
* Moving from My Graph to its own section: Hashrate Graphs
* Adding pool hashrate graph
* Adding combined hashrate graph and piechart

Fixes #187
2013-06-13 22:59:19 +02:00
Sebastian Grewe
5d356b5c4f Adding counter for failed login attempts
* Track failed login attempts of a user
* Reset failed attempts as soon as the login succeeded

Fixes #182
2013-06-13 15:26:23 +02:00
Sebastian Grewe
bfaa0a67ef Enforce session logout if IP address changed
Fixes #179
2013-06-13 13:59:45 +02:00
Sebastian Grewe
6a5f938895 Store Users IP address in accounts after login
Fixes #177
2013-06-13 13:46:32 +02:00
Sebastian Grewe
44851e35df Add admin/lock changes to admin panel
* Add clickable boxes for Admin and Locked status for all users
* Change status via Ajax call, script embedded to the admin page

Fixes #147
2013-06-13 11:36:28 +02:00
Sebastian Grewe
42b6d4b3b2 Adding support for user locking
* Currently no GUI, use DB access to change the row entry
* Upgraded Database table `accounts` with upgrade SQL
* Updated `admin` field to `is_admin` as boolean
* Modified pages, classes, templates to support is_admin and is_locked

Addresses #147
2013-06-13 11:36:28 +02:00