Commit Graph

363 Commits

Author SHA1 Message Date
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
8808913ca5 Fixing Sidebar estimations on PPLNS
This will address a new issue in #143, estimates where not displayed
properly when pplns was active.

Fixes #143
2013-07-09 22:02:12 +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
da1649f319 Merge pull request #411 from TheSerapher/issue-405
Issue 405
2013-07-09 12:18:21 -07:00
Sebastian Grewe
9e878b06d5 Ensure people know what the memcache setting does
Even though memcache can be disabled, the memcache library is a
requirement as listed in the README.md. I clarified that in the
configuration file itself to ensure people install it even though they
might be disabling it for debugging purpose.

Fixes #409
2013-07-09 16:29:00 +02:00
Sebastian Grewe
5acebc37d3 Allow guest access to pages with config options
This will allow pool owners to make certain pages public accessible
without user registration or login. Please check the config dist file
for details.

Fixes #408
2013-07-09 16:13:43 +02:00
Sebastian Grewe
b33f572774 adding missing PHP closing tag 2013-07-09 16:13:30 +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
7f32bbb7ba Adding more descriptive message for txfee
Fixes #400
2013-07-09 08:58:46 +02:00
Sebastian Grewe
4c531360c1 fixing empty variable when using cache 2013-07-09 08:54:20 +02:00
Sebastian Grewe
0f69032fd3 Adding 3rd party Scrypt library
This will allow us to start checking a blockhash against a solution
submitted to the database.

Details on this in the ticket. Just a WIP to save file states.

Addresses #405
2013-07-08 17:10:58 +02:00
Sebastian Grewe
d25387f0b5 Disable caching check on Smarty globals
This will ensure data is available for those pages relying on global
data. A better step might be to load template specific data always on
the pages that require the data instead of relying on global data to be
available.

Fixes #309
2013-07-08 14:41:52 +02:00
Sebastian Grewe
bb0e9dff39 disable smarty cache by default in dist 2013-07-08 14:41:52 +02:00
Sebastian Grewe
4ea33a5e50 Adding cache detection to many pages
This will allow pages to skip loading data from backends like the
database or the wallet RPC server. If a cached page is detected and
valid, all dynamic content generation will be skipped completely.

Other pages that have not been adjusted in this commit will still fetch
backend data all the time. This will ensure clients always see the most
recent data, like worker information or account changes.

This should fix #309 completely but needs some testing.
2013-07-08 14:41:52 +02:00
Sebastian Grewe
87ecfc5598 Add detailed smarty cache documentation to config
Instead of just making it availble document the smarty cache feature.

It might work for users, but it's advised to rely on the memcache
instead.

Fixes #309
2013-07-08 14:39:22 +02:00
Sebastian Grewe
da0ab75d5d adjust smarty configurations 2013-07-08 14:39:06 +02:00
Sebastian Grewe
3449d5c29c Adding cache lifetime option to smarty config
* Renamed configuration array to `smarty` => `cache`
* Added `smarty` => `cache_lifetime` to expire cache files properly

This should be safe to use, be aware that each page request is cached!
That includes any POST/GET calls to the site.

It does help in speeding up the site, up to 100% on some requests. For a
high traffic site it probably makes sense to enable this option with a
low cache lifetime to ensure most recent data.

Addresses #309
2013-07-08 14:39:06 +02:00
Sebastian Grewe
420ae332b5 Add detailed smarty cache documentation to config
Instead of just making it availble document the smarty cache feature.

It might work for users, but it's advised to rely on the memcache
instead.

Fixes #309
2013-07-08 14:38:45 +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
103dd51d42 Merge pull request #397 from TheSerapher/issue-388
More descriptive error message exceeding LTC threshold
2013-07-07 10:41:37 -07: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
32d764127e More descriptive error message exceeding LTC threshold
Fixes #388
2013-07-06 18:56:35 +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
9412107b53 Hard coded block limit for pool statistics
This should fix a potential DoS like attack when fetching a random
amount of blocks continously.

Fixes #387
2013-07-06 17:38:23 +02:00
Sebastian Grewe
a6c7d5eaa9 Merge pull request #390 from TheSerapher/issue-383
Fixing PHP Warning on admin->user panel
2013-07-06 08:34:52 -07: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
2a47fbba4f Fixing PHP Warning on admin->user panel
This fixes #383
2013-07-05 23:45:32 +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
7099b2cc04 Use poolhash rate if nethash is smaller
This should avoid some confusion for coins where the network hashrate
drops under the pool hashrate due to slow block finding rates.

Fixes #378
2013-07-05 22:02:16 +02:00
Sebastian Grewe
57ce619ac2 updated dist config 2013-07-05 09:57:00 +02:00
Sebastian Grewe
a012fc2ee5 catch PHP warning 2013-07-04 16:06:59 +02:00
Sebastian Grewe
3d942e8434 Adding getpoolstatus API Method
Fixes #369
2013-07-04 13:26:58 +02:00
Sebastian Grewe
c6e6c4dee6 Changed error catching in pools page 2013-07-04 13:25:41 +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
f3dd9caa2c Added 8 digit estimates precision and balance
This expands the prevision for LTC estimates to 8 digits. Since the
sidebar was widened, they should fit for most resolutions.
2013-07-04 12:17:09 +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
4a8cc8f884 Merge pull request #362 from TheSerapher/issue-336
Remove link on mobile if chaininfo empty
2013-07-04 01:40:39 -07:00
Sebastian Grewe
3ab9d5252f Merge pull request #341 from TheSerapher/issue-308
Adding dynamic block value support in PPS
2013-07-03 23:53:24 -07:00
Sebastian Grewe
d848e3fe70 Fix PHP warning on empty news table
Fixes #358
2013-07-04 08:51:13 +02: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
24473ee98f Remove link on mobile if chaininfo empty
* Remove URL from Difficulty on stats page if chaininfo is empty
* Added note to global dist configuration file

Fixes #336
2013-07-03 07:52:38 +02:00
Sebastian Grewe
35131aa71b enable memcache by default 2013-07-02 21:27:41 +02:00
Sebastian Grewe
1cfc66e748 fixing low confirmations limit in dist config 2013-07-02 21:26:33 +02:00
Sebastian Grewe
591fc3733b removing error reporting for debugging 2013-07-02 21:10:12 +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
f3caa80d80 Merge pull request #334 from TheSerapher/issue-327
Potential fix for PHP Warning
2013-07-02 02:00:15 -07: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
9e306bf06e Potential fix for PHP Warning
This should fix #327
2013-07-02 09:00:01 +02:00
Sebastian Grewe
c157a76551 Adding network hashrate to ministats header
Fixes #325
2013-07-01 18:41:18 +02:00
Sebastian Grewe
e0c1c3edf1 Adding reference for API documentation
This is a simple version since API documentation is already documented
on the GitHub Wiki.

Fixes #323
2013-07-01 18:34:08 +02:00
Sebastian Grewe
cb7f114cbc Adding dynamic block value support in PPS
This will add the block reward typw to PPS systems. Prior to this, each
PPS value was hard coded to 50. Not only are other coins not based on
this but changing it would require code. Changed it that

* Default for fixed type is config reward
* Default for block type is **previous** blocks amount
** Fallback for first round is the fixed reward value

See in-line documentation of dist configuration. This should help new
pool owners to get setup and clarify things.

Fixes #308
2013-07-01 17:45:23 +02:00
Sebastian Grewe
31d898cbc1 Adding configurable website title
Fixes #310
2013-07-01 17:21:12 +02:00
Sebastian Grewe
2dd333b5d8 Changing wallet error message from litecoind
Since plenty scrypt based currencies are supported, changed error
message to say `wallet` instead of `litecoind` when failing to connect
to RPC service.
2013-07-01 12:47:33 +02:00
Sebastian Grewe
e3c1d7e0d0 Modfied templates to support empty trade currency
This will remove any template content related to the trade currency if
that one is left empty in the configuration.

While going through the templates I also cleaned up the PHP Warnings
left. The code and templates should now process without throwing any PHP
warnings.

Fixes #305 and further addresses #301
2013-07-01 12:32:59 +02:00
Sebastian Grewe
54371ffe11 Updated inline config documentation
Added reference to trade header removal. This allows users to disable
the trade header at the top of the page by setting currency to an empty
string.

Addresses #305
2013-07-01 12:12:04 +02:00
Sebastian Grewe
f333982698 Merge pull request #304 from TheSerapher/issue-275-pos-support
Issue 275 pos support
2013-07-01 01:38:34 -07:00
Sebastian Grewe
01afd2f02f Properly display estimates on 0 valid shares
If pool has no valid shares, display 0 as the estimated payout. This
will avoid a PHP Warning devision by zero.

Fixes #296, do not run into Divide by zero error when missing round
shares
2013-07-01 01:55:29 +02:00
Sebastian Grewe
4be963d7be Detect if we use POS difficulties or not
Fixes #275
2013-06-30 19:35:49 +02:00
Sebastian Grewe
af70a194c9 Adding support for POS coin
This will fix #275 and add proper support for a different implementation
of network difficulty.
2013-06-30 19:35:49 +02:00
Sebastian Grewe
cfb209a425 removed debug output 2013-06-30 13:43:05 +02:00
Sebastian Grewe
5436be049d Improved dist configuration file
* Added more inline documentation
* Removed array notation for config
* Added defaults to documentation

This should help newcomers get setup. All options are now documented and
explained throughout the configuration file.
2013-06-30 13:35:04 +02:00
Sebastian Grewe
3e07263ae9 Removed registration configuration option
* Removed old registration configuration option from config file
* Changed database registration option to allow registrations by default
* Changed admin settings template for new DB option
* Changed registration controllers for new DB option

Fixes an issue with registrations not working if settings table is
empty.
2013-06-30 12:29:52 +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
f6242f2c74 Adding swipable sidebar
* Login to mobile version to enable sidebar
* Swipe right to display your old dashboard
* Modified `home.inc.php` to default to news at all times again
* Modified sidebar implementation to change via config setting
* Modified mobile navigation bar and header
* Added `sidebar_prop.tpl` file for both themes

Some breaking changes might be introduced here if you are running your
own template implementation. Please ensure that `home/default.tpl` will
display the news posts. `sidebar.tpl` is now `sidebar_prop.tpl`.

If the files are missing you will get a PHP error. Check your logs what
file is missing and create them from my original samples.

Fixes #283
2013-06-29 21:26:58 +02:00
Sebastian Grewe
f9f776a015 Display newspage on Mobile if not authed
* Do not show dashboard if user is not logged in
* Show news on Mobile and Desktop by default
* Show Dasboard on mobile once logged in
* Make News Navbar item default for unauthed users on mobile
* Add Dash Navbar item for authed users on mobile
2013-06-29 15:26:16 +02:00
Sebastian Grewe
c66c448836 Adding mobile dashboard and news page
* Adding mobile detection to home page
* Allow home page to default to news for desktops
* Use payout specific sidebar for mobile homescreen
* Added News navigation option to mobile

Fixes #278
Fixes #279
2013-06-29 15:11:57 +02:00
Sebastian Grewe
3421cf63b6 Allow regular users to check their own workers
Fixes #270
2013-06-28 21:38:03 +02:00
Sebastian Grewe
8f20009475 Distinguish between admin and user API call
Fixes #268
2013-06-28 21:32:59 +02:00
Sebastian Grewe
7b0ae8d86e reduced blocks count to fixed 20 2013-06-28 20:29:51 +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
36acc858ed Fixing global dist config
Defined THEME must be removed for mobile device themes to work.
2013-06-28 13:50:22 +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