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.
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
* 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
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
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
* 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
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
* 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.
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.
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
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
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
* 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
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
Since plenty scrypt based currencies are supported, changed error
message to say `wallet` instead of `litecoind` when failing to connect
to RPC service.
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
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
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
* 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.
* 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.
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.
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
* 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
* 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
* 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#278Fixes#279
* 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
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
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
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
* 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
* Warn user if they exceeded the configured AP max thresholds for their
account balance
This will address #220. There does not seem a perfect solution for this
but this should help.
* Adding PPS sidebar to seperate the HTML code
* Added PPS specific globals section if need be some day
* Added payout detection to master template for sidebar
* Added 7 days and 14 days estimates
Fixes#160