} $start_block++; } $mn_key = $darkcoin->masternode('genkey'); $query = $db->prepare("UPDATE `hosting` SET `txid` = :txid, `address` = :address, `time` = :time, `out` = :out, `key` = :key WHERE `ip` = :ip"); $query->bindParam(':txid', $tx, PDO::PARAM_STR); $query->bindParam(':address', $address, PDO::PARAM_STR); $query->bindParam(':time', time(), PDO::PARAM_STR); $query->bindParam(':out', $outputs, PDO::PARAM_STR); $query->bindParam(':key', $mn_key, PDO::PARAM_STR); $query->bindParam(':ip', $ip, PDO::PARAM_STR); $query->execute(); }else{ $row=$query->fetch(); $ip = $row['ip']; $mn_key = $row['key']; $outputs = $row['out']; // Не отдаем приватный ключ MN после того как она запустилась. if(check_mn($ip) == 'OK' || time()-60*60*24 > $row['time']) die('mn_work'); } if(empty(send_do('setup', $ip, $mn_key))){ echo urlencode(base64_encode("$name $ip:9999 $mn_key $tx $outputs $donate")); }else{ echo 'error'; }
global $darkcoin, $info, $db; $i = 'NO'; $query = $db->prepare("SELECT * FROM `hosting` WHERE `ip` = :ip"); $query->bindParam(':ip', $ip, PDO::PARAM_STR); $query->execute(); $row = $query->fetch(); if (in_array("$ip:9999", $info) && $row['txid'] !== NULL) $i = 'OK'; return $i; } $mn_online = 1; // +1 => it`s my node work too ;) $query = $db->query("SELECT * FROM `hosting`"); $query->execute(); $mn_all = $query->rowCount()+1; // +1 => it`s my node work too ;) while($row=$query->fetch()){ if(check_mn($row['ip']) == 'OK' || time()-60*60*24 < $row['last'] || time()-60*60*12 < $row['time']){ $mn_online++; } } $fail_mn = ''; $pay_mn = ''; $j_time = time()-60*60; //$k_time = time()-60*60*24; $query = $db->query("SELECT * FROM `hosting` WHERE `last` < $j_time"); // AND `last` > $k_time $query->execute(); while($row = $query->fetch()){ $fail_mn = "$fail_mn <tr><td><center>$row[ip]</center></td><td><center>$row[address]<center></td><td><center>".date("Y-m-d H:i", $row['last'])."</center></td></tr>"; } $mn_free = $mn_all - $mn_online; $query = $db->query("SELECT * FROM `hosting`");
file_put_contents($file, $text, FILE_APPEND | LOCK_EX); } function check_mn($ip) { global $darkcoin; $status = 'work'; $i = explode("\n", shell_exec("ps aux | grep {$ip} | awk '{print \$11\" \"\$12\" \"\$13}'")); if (!in_array("dashd -datadir=/home/dash/data/{$ip} -daemon", $i)) { // проверяем есть ли процесс shell_exec("su - dash -c \"dashd -datadir=/home/dash/data/{$ip} -daemon > /dev/null 2>/dev/null &\""); $status = 'not_work'; log_restart($ip, 'crash'); } if ($status == 'work') { // if dashd freeze if ($darkcoin->getinfo() === FALSE) { // let`s ping rcp and if no answer => hard kill and restart shell_exec("ps aux | grep -i \"dashd -datadir=/home/dash/data/{$ip} -daemon\" | awk {'print \$2'} | xargs kill -9"); shell_exec("su - dash -c \"dashd -datadir=/home/dash/data/{$ip} -daemon > /dev/null 2>/dev/null &\""); $status = 'not_work'; log_restart($ip, 'freeze'); } } return $status; } foreach ($mn_ips as $value) { $i = file_get_contents("/home/dash/data/{$value}/dash.conf"); preg_match("/rpcport=(.*)/", $i, $rpcport); $darkcoin = new Darkcoin('xxxx', 'xxxx', 'localhost', $rpcport[1]); echo "{$value} {$rpcport['1']} => " . check_mn($value) . "\n"; }
$msg = "Menu Added"; } else { $msg = "Menu with this name already exist!"; } } else { $msg = "Type #, if you want to create submenu also"; } } } if (isset($_POST['add_sub_menu'])) { $link = strtolower($_POST['sub_menu_link']); $link = str_replace(' ', '-', $link); // page for sub_menu_link exist or not. if (page_exist($link)) { // sub_menu_link unique or not if (check_mn($link)) { add_sub_menu($_POST['parent'], $_POST['sub_menu_name'], $link); $sub_msg = "Sub Menu Added"; } else { $sub_msg = "sub menu link already exist"; } } else { $sub_msg = "No page for this URL, first create a page"; } } ?> <div id="page-wrapper"> <div class="row"> <div class="col-lg-12"> <h1 class="page-header">Menu</h1> </div>