Skip to content
Sebastian Grewe edited this page May 24, 2018 · 23 revisions

A quick FAQ of things we have encountered so far. If you have a question that you'd like answered and that is not listed here, please create an issue and we will see if it is a generic question valid for anyone. Then it shall be added to this document.

What does MPOS even stand for

Mining Portal Open Source

Is MySQL 5.7+ Supported?

Yes and no. When I wrote MPOS my queries were not the best, with the newest version a new restriction was added that will cause some queries using GROUP BY to fail. They were fuzzy at best and worked all the time, but with the new version MySQL rejects them. Since I have no time to go through MPOS and fix all queries affected, here a quick workaround for your database server:

mysql> set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

This setting is lost so either make it permanent via you my.cnf or re-run the query to reactivate this option.

If you are running MPOS > 1.1.0 you will have a notification in your Admin Setup page. This will lead you do this FAQ entry so run that query if you are on MySQL 5.7 to fix the issue.

How do I add some custom JavaScript code?

You can edit the templates/mmcFE/global/header.tpl file to add your own custom JavaScript code. Either by using the smarty {literal} flag so JS code is not parsed by smarty or including your own HTML template. See Smarty Literal and Smarty Include. Question taken from Issue 493.

What coins are supported?

Please check the README and POOLS file in this project. You will get a general idea which coins have been tested with MPOS.

Coin XZY uses a different reward per block, can I change that?

Please check your configuration file. You have to set the block reward to your coins reward value. It defaults to 50 for LTC.

Can I run multiple payout systems at the same time or per worker?

No, this is not supported by MPOS. You define one payout process which is applied to everyone in the pool. You may change the code as you see fit to make it work for yourself.

The website sometimes takes a long time to load, why is that?

You are probably not running the statistics cron. It fetches data and pre-caches it for the website. If the website is not able to fetch cached data, it will run queries by itself. On long rounds this will be very noticeable on the frontend. Enable the cron to fix that.

Why does stratum seem to be off when using MPOS?

This is a rather complex answer so please read along.

@pooler was nice enough to explain it to me in detail:

pushpoold uses a target bits terminology and stratum a difficulty setting. These are different. When running pushpoold at a target bit of 20 you will match the default setting of 16 in startum-mining. This will ensure that hashrates on MPOS match up! If you'd think you could set pushpoold to 16 and match it with stratum you will be off.

He devised a formula that can be used to change startum difficulty and match pushpoold and MPOS to it:

(stratum diff) ~= 2^((target bits in pushpool) - 16)

Example, you are running MPOS and pushpoold with a setting of 20:

16 ~= 2^(20 - 16)

And vice-versa, here an example to go from a custom difficulty in stratum back to the proper difficulty setting in MPOS (useful if you wish to migrate somehow and keep your diff):

(log(16)/log(2)) + 16 = 20;

Stratum Target Bits
16 20
32 21
64 22
128 23
256 24
512 25
1024 26
2048 27
4096 28
8192 29
16384 30
32768 31
65536 32
131072 33
262144 34
524288 35
1048576 36
2097152 37
4194304 38
8388608 39
16777216 40

How do I change my POOL_TARGET properly?

  • Stop stratum (we have to update the shares table!)
  • Stop Webserver (so we don’t deal with live queries)
  • Stop crons (so they don’t update)
  • Flush Memcache (so we drop old stats)
  • e.g. telnet localhost 11211 then flush_all<enter>
  • Increase POOL_TARGET (went 16 => 64)
  • Increase MPOS difficulty (went 20 => 22)
  • Update Tables
  • UPDATE shares SET difficulty = 16
  • UPDATE blocks SET shares = shares / 4
  • UPDATE statistics_shares SET valid = valid / 4, invalid = invalid / 4, pplns_valid = pplns_valid / 4, pplns_invalid = pplns_invalid / 4 Start stratum, webserver, crons

"Configuration file version and/or Database version mismatch" after git pull

This means you have pulled some recent updates from git that included some configuration update or newly added SQL update file:

  • Ensure you have imported those outstanding files in the sql folder. They will update the database schema version for you too, so that error will disappear.
  • Compare your local MPOS configuration with the supplied global.inc.dist.php file. Recently added configuration options should be merged into your local global.inc.php configuration. Then you can increment the $config['version'] to the expected value. Do that after you have confirmed all changes were migrated (diff file1 file2 is your friend).

How can i prevent Search engines to index Statistic Pages

Create a file called robots.txt to your Root Folder of MPOS and add the following lines

User-agent: *
Disallow: /*?page=

with this settings, no more Pages are indexed by Search Engines

PHP Fatal error: Call to undefined method mysqli_stmt::get_result()

See requirement, install php-mysqlnd - you are running a different library not supporting the get_result method.

Multiple popups of the same kind

This is caused by SQL or file based template changes which cause smarty not to run properly anymore. You can find a ticket and my comment explaining this here: https://github.com/MPOS/php-mpos/issues/1880#issuecomment-36606715