Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
11 changed files
with
288 additions
and
157 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
<?php | ||
$defflip = (!cfip()) ? exit(header('HTTP/1.1 401 Unauthorized')) : 1; | ||
|
||
// check if daemon can connect -> error | ||
try { | ||
if ($bitcoin->can_connect() !== true) { | ||
$newerror = array(); | ||
$newerror['name'] = "Coin daemon"; | ||
$newerror['description'] = "Unable to connect to coin daemon using provided credentials."; | ||
$newerror['configvalue'] = "wallet.*"; | ||
$newerror['helplink'] = "https://github.com/MPOS/php-mpos/wiki/Config-Setup#wiki-local-wallet-rpc"; | ||
$error[] = $newerror; | ||
$newerror = null; | ||
} | ||
else { | ||
// validate that the wallet service is not in test mode | ||
if ($bitcoin->is_testnet() == true) { | ||
$newerror = array(); | ||
$newerror['name'] = "Coin daemon"; | ||
$newerror['description'] = "The coin daemon service is running as a testnet. Check the TESTNET setting in your coin daemon config and make sure the correct port is set in the MPOS config."; | ||
$newerror['configvalue'] = "wallet.host"; | ||
$newerror['helplink'] = "https://github.com/MPOS/php-mpos/wiki/Config-Setup#wiki-local-wallet-rpc"; | ||
$error[] = $newerror; | ||
$newerror = null; | ||
} | ||
// check if there is more than one account set on wallet | ||
$accounts = $bitcoin->listaccounts(); | ||
if (count($accounts) > 1 && $accounts[''] <= 0) { | ||
$newerror = array(); | ||
$newerror['name'] = "Coin daemon"; | ||
$newerror['description'] = "There are " . count($accounts) . " Accounts set in local Wallet and Default Account has no liquid funds to pay your miners!"; | ||
$newerror['configvalue'] = "wallet.host"; | ||
$newerror['helplink'] = "https://github.com/MPOS/php-mpos/wiki/Config-Setup#wiki-local-wallet-rpc"; | ||
$error[] = $newerror; | ||
$newerror = null; | ||
} | ||
} | ||
} catch (Exception $e) {} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
<?php | ||
$defflip = (!cfip()) ? exit(header('HTTP/1.1 401 Unauthorized')) : 1; | ||
|
||
// check if fees are 0 and ap/mp tx fees are also set to 0 -> issue #2424 | ||
if ($config['fees'] == 0 && ($config['txfee_auto'] == 0 || $config['txfee_manual'] == 0)) { | ||
$newerror = array(); | ||
$newerror['name'] = "Fees and TX Fees 0"; | ||
$newerror['description'] = "Having your pool fees set to 0 and tx fees also set to 0 can cause a problem where the wallet cannot payout, consider setting the txfee to a very low amount, ie. 0.0001 to avoid this."; | ||
$newerror['configvalue'] = "fees"; | ||
$newerror['helplink'] = "https://github.com/MPOS/php-mpos/issues/2424"; | ||
$error[] = $newerror; | ||
$newerror = null; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
<?php | ||
$defflip = (!cfip()) ? exit(header('HTTP/1.1 401 Unauthorized')) : 1; | ||
|
||
// check if memcache isn't available but enabled in config -> error | ||
if (!class_exists('Memcached') && $config['memcache']['enabled']) { | ||
$newerror = array(); | ||
$newerror['name'] = "Memcache Config"; | ||
$newerror['description'] = "You have memcached enabled in your config and it's not available as a PHP module. Install the package on your system."; | ||
$newerror['configvalue'] = "memcache.enabled"; | ||
$newerror['helplink'] = "https://github.com/MPOS/php-mpos/wiki/Config-Setup#wiki-memcache"; | ||
$error[] = $newerror; | ||
$newerror = null; | ||
} | ||
|
||
// if it's not enabled, test it if it exists, if it works -> error tell them to enable, -> otherwise notice it's disabled | ||
if (!$config['memcache']['enabled']) { | ||
if (PHP_OS == 'WINNT') { | ||
require_once(CLASS_DIR . 'memcached.class.php'); | ||
} | ||
if (class_exists('Memcached')) { | ||
$memcache_test = @new Memcached(); | ||
if ($config['memcache']['sasl'] === true) { | ||
$memcache_test->setOption(Memcached::OPT_BINARY_PROTOCOL, true); | ||
$memcache_test->setSaslAuthData($config['memcache']['sasl']['username'], $config['memcache']['sasl']['password']); | ||
} | ||
$memcache_test_add = @$memcache_test->addServer($config['memcache']['host'], $config['memcache']['port']); | ||
$randmctv = rand(5,10); | ||
$memcache_test_set = @$memcache_test->set('test_mpos_setval', $randmctv); | ||
$memcache_test_get = @$memcache_test->get('test_mpos_setval'); | ||
} | ||
if (class_exists('Memcached') && $memcache_test_get == $randmctv) { | ||
$newerror = array(); | ||
$newerror['name'] = "Memcache Config"; | ||
$newerror['description'] = "You have memcache disabled in the config but it's available and works! Enable it for best performance."; | ||
$newerror['configvalue'] = "memcache.enabled"; | ||
$newerror['helplink'] = "https://github.com/MPOS/php-mpos/wiki/Config-Setup#wiki-memcache"; | ||
$error[] = $newerror; | ||
$newerror = null; | ||
} else { | ||
$newerror = array(); | ||
$newerror['name'] = "Memcache Config"; | ||
$newerror['description'] = "Memcache is disabled; Almost every linux distro has packages for it, you should be using it if you can."; | ||
$newerror['configvalue'] = "memcache.enabled"; | ||
$newerror['helplink'] = "https://github.com/MPOS/php-mpos/wiki/Config-Setup#wiki-memcache"; | ||
$error[] = $newerror; | ||
$newerror = null; | ||
} | ||
} | ||
|
||
// check anti DOS protection, we need memcache for that | ||
if ($config['mc_antidos'] && !$config['memcache']['enabled']) { | ||
$newerror = array(); | ||
$newerror['name'] = "Memcache Config"; | ||
$newerror['description'] = "mc_antidos is enabled and memcache is not, <u>memcache is required</u> to use this."; | ||
$newerror['configvalue'] = "memcache.enabled"; | ||
$newerror['helplink'] = "https://github.com/MPOS/php-mpos/wiki/Config-Setup#memcache-rate-limiting"; | ||
$error[] = $newerror; | ||
$newerror = null; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
<?php | ||
$defflip = (!cfip()) ? exit(header('HTTP/1.1 401 Unauthorized')) : 1; | ||
|
||
if ($config['logging']['enabled']) { | ||
// checks to see that the logging path is writable | ||
if (!is_writable($config['logging']['path'])) { | ||
$newerror = array(); | ||
$newerror['name'] = "Log path permissions"; | ||
$newerror['description'] = "Logging is enabled but we can't write in the logfile path."; | ||
$newerror['configvalue'] = "logging.path"; | ||
$newerror['helplink'] = "https://github.com/MPOS/php-mpos/wiki/Quick-Start-Guide#configuration-1"; | ||
$error[] = $newerror; | ||
$newerror = null; | ||
} | ||
} | ||
|
||
// check if we can write templates/cache and templates/compile -> error | ||
if (!is_writable(TEMPLATE_DIR . '/cache')) { | ||
$newerror = array(); | ||
$newerror['name'] = "templates/cache permissions"; | ||
$newerror['description'] = "templates/cache folder is not writable for uid {$apache_user['name']}"; | ||
$newerror['configvalue'] = "templates/cache folder"; | ||
$newerror['helplink'] = "https://github.com/MPOS/php-mpos/wiki/Quick-Start-Guide#configuration-1"; | ||
$error[] = $newerror; | ||
$newerror = null; | ||
} | ||
if (!is_writable(TEMPLATE_DIR . '/compile')) { | ||
$newerror = array(); | ||
$newerror['name'] = "templates/compile permissions"; | ||
$newerror['description'] = "templates/compile folder is not writable for uid {$apache_user['name']}"; | ||
$newerror['configvalue'] = "templates/compile folder"; | ||
$newerror['helplink'] = "https://github.com/MPOS/php-mpos/wiki/Quick-Start-Guide#configuration-1"; | ||
$error[] = $newerror; | ||
$newerror = null; | ||
} | ||
|
||
// check if we can write the config files, we should NOT be able to -> error | ||
if (is_writable(INCLUDE_DIR.'/config/global.inc.php') || is_writable(INCLUDE_DIR.'/config/global.inc.dist.php') || | ||
is_writable(INCLUDE_DIR.'/config/security.inc.php') || is_writable(INCLUDE_DIR.'/config/security.inc.dist.php')) { | ||
$newerror = array(); | ||
$newerror['name'] = "Config permissions"; | ||
$newerror['description'] = "Your config files <b>SHOULD NOT be writable to this user</b>!"; | ||
$newerror['configvalue'] = "global.inc.php and security.inc.php"; | ||
$newerror['helplink'] = "https://github.com/MPOS/php-mpos/wiki/Quick-Start-Guide#configuration-1"; | ||
$error[] = $newerror; | ||
$newerror = null; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
<?php | ||
$defflip = (!cfip()) ? exit(header('HTTP/1.1 401 Unauthorized')) : 1; | ||
|
||
// check if password salts are sane | ||
if (strlen($config['SALT']) < 24 || strlen($config['SALTY']) < 24 || $config['SALT'] == 'PLEASEMAKEMESOMETHINGRANDOM' || $config['SALTY'] == 'THISSHOULDALSOBERRAANNDDOOM') { | ||
$newerror = array(); | ||
$newerror['name'] = "Password Salts"; | ||
if ($config['SALT'] == 'PLEASEMAKEMESOMETHINGRANDOM' || $config['SALTY'] == 'THISSHOULDALSOBERRAANNDDOOM') { | ||
$newerror['description'] = "You absolutely <u>SHOULD NOT leave your SALT or SALTY default</u> changing them will require registering again."; | ||
} else { | ||
$newerror['description'] = "SALT or SALTY is too short, they should be more than 24 characters and changing them will require registering again.</p>"; | ||
} | ||
$newerror['configvalue'] = "SALT"; | ||
$newerror['helplink'] = "https://github.com/MPOS/php-mpos/wiki/Config-Setup#wiki-defines--salts"; | ||
$error[] = $newerror; | ||
$newerror = null; | ||
} | ||
|
||
// check if htaccess exists | ||
if (!file_exists(BASEPATH.".htaccess")) { | ||
$newerror = array(); | ||
$newerror['name'] = ".htaccess"; | ||
$htaccess_link = "<a href='https://github.com/MPOS/php-mpos/blob/next/public/.htaccess'>.htaccess</a>"; | ||
$newerror['description'] = "You don't seem to have a .htaccess in your public folder, if you're using Apache set it up: $htaccess_link"; | ||
$newerror['configvalue'] = ".htaccess"; | ||
$newerror['helplink'] = "https://github.com/MPOS/php-mpos/wiki"; | ||
$error[] = $newerror; | ||
$newerror = null; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
<?php | ||
$defflip = (!cfip()) ? exit(header('HTTP/1.1 401 Unauthorized')) : 1; | ||
|
||
// poke stratum using gettingstarted details -> enotice | ||
if (function_exists('socket_create')) { | ||
$host = @gethostbyname($config['gettingstarted']['stratumurl']); | ||
$port = $config['gettingstarted']['stratumport']; | ||
if (isset($host) and | ||
isset($port) and | ||
($socket=socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) and | ||
(socket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO, array('sec' => 3, 'usec' => 0))) and | ||
(@socket_connect($socket, $host, $port))) | ||
{ | ||
socket_close($socket); | ||
} else { | ||
$newerror = array(); | ||
$newerror['name'] = "Stratum information"; | ||
$newerror['description'] = "We tried to poke your Stratum server using your \$config['gettingstarted'] settings but it didn't respond - " . socket_strerror(socket_last_error()) . "."; | ||
$newerror['configvalue'] = "gettingstarted"; | ||
$newerror['helplink'] = "https://github.com/MPOS/php-mpos/wiki/Config-Setup#wiki-getting-started"; | ||
$error[] = $newerror; | ||
$newerror = null; | ||
} | ||
} else { | ||
// Connect via fsockopen as fallback | ||
if (! $fp = @fsockopen($config['gettingstarted']['stratumurl'], $config['gettingstarted']['stratumport'], $errCode, $errStr, 1)) { | ||
$newerror = array(); | ||
$newerror['name'] = "Stratum information"; | ||
$newerror['description'] = "We tried to poke your Stratum server using your \$config['gettingstarted'] settings but it didn't respond."; | ||
$newerror['configvalue'] = "gettingstarted"; | ||
$newerror['helplink'] = "https://github.com/MPOS/php-mpos/wiki/Config-Setup#wiki-getting-started"; | ||
$error[] = $newerror; | ||
$newerror = null; | ||
} | ||
@fclose($fp); | ||
} |
Oops, something went wrong.