Ejemplo n.º 1
0
function call_script($script, $priority = 1, $plugin = FALSE, $web_server_call = FALSE)
{
    if ($web_server_call == TRUE) {
        // No Properly working PHP CLI Extensions for some odd reason, call from web server instead
        $cli_port = mysql_result(mysql_query("SELECT field_data FROM `options` WHERE `field_name` = 'cli_port' LIMIT 1"), 0, 0);
        if (empty($cli_port) == TRUE) {
            // Use the same server port that is reported to other peers
            if ($plugin == TRUE) {
                poll_peer(NULL, "localhost", my_subfolder() . "/plugins", my_port_number(), 1, $script);
            } else {
                poll_peer(NULL, "localhost", my_subfolder(), my_port_number(), 1, $script);
            }
        } else {
            // Use a different port number than what is reported to other peers.
            // Useful for port forwarding where the External Internet port is different than
            // the Internal web server port being forwarded through the router.
            if ($plugin == TRUE) {
                poll_peer(NULL, "localhost", my_subfolder() . "/plugins", $cli_port, 1, $script);
            } else {
                poll_peer(NULL, "localhost", my_subfolder(), $cli_port, 1, $script);
            }
        }
    } else {
        if ($priority == 1) {
            // Normal Priority
            if (getenv("OS") == "Windows_NT") {
                pclose(popen("start /B php-win {$script}", "r"));
                // This will execute without waiting for it to finish
            } else {
                exec("php {$script} &> /dev/null &");
                // This will execute without waiting for it to finish
            }
        } else {
            if ($plugin == TRUE) {
                // Normal Priority
                if (getenv("OS") == "Windows_NT") {
                    pclose(popen("start /B php-win plugins/{$script}", "r"));
                    // This will execute without waiting for it to finish
                } else {
                    exec("php plugins/{$script} &> /dev/null &");
                    // This will execute without waiting for it to finish
                }
            } else {
                // Below Normal Priority
                if (getenv("OS") == "Windows_NT") {
                    pclose(popen("start /BELOWNORMAL /B php-win {$script}", "r"));
                    // This will execute without waiting for it to finish
                } else {
                    exec("nice php {$script} &> /dev/null &");
                    // This will execute without waiting for it to finish
                }
            }
        }
    }
    return;
}
Ejemplo n.º 2
0
         $peer_domain = find_string("---domain=", "---subfolder", $sql_row["field_data"]);
         $peer_subfolder = find_string("---subfolder=", "---port", $sql_row["field_data"]);
         $peer_port_number = find_string("---port=", "---end", $sql_row["field_data"]);
         // Insert into database as first contact server(s)
         $sql = "INSERT INTO `active_peer_list` (`IP_Address` ,`domain` ,`subfolder` ,`port_number` ,`last_heartbeat`, `join_peer_list`, `failed_sent_heartbeat`)\n\t\tVALUES ('{$peer_ip}', '{$peer_domain}', '{$peer_subfolder}', '{$peer_port_number}', UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), '0');";
         mysql_query($sql);
     }
 }
 if ($active_peers < $max_active_peers) {
     //Start polling peers from the new peers list
     $sql = "SELECT * FROM `new_peers_list` ORDER BY RAND() LIMIT 10";
     $sql_result = mysql_query($sql);
     $sql_num_results = mysql_num_rows($sql_result);
     $my_server_domain = my_domain();
     $my_server_subfolder = my_subfolder();
     $my_server_port_number = my_port_number();
     // Peer difference
     $peer_difference_count = $max_active_peers - $active_peers;
     for ($i = 0; $i < $sql_num_results; $i++) {
         $sql_row = mysql_fetch_array($sql_result);
         $ip_address = $sql_row["IP_Address"];
         $domain = $sql_row["domain"];
         $subfolder = $sql_row["subfolder"];
         $port_number = $sql_row["port_number"];
         $poll_failures = $sql_row["poll_failures"];
         // Check to make sure that this peer is not already in our active peer list
         $duplicate_check1 = mysql_result(mysql_query("SELECT last_heartbeat FROM `active_peer_list` WHERE `IP_Address` = '{$ip_address}' LIMIT 1"), 0, 0);
         $duplicate_check2 = mysql_result(mysql_query("SELECT last_heartbeat FROM `active_peer_list` WHERE `domain` LIKE '{$domain}' LIMIT 1"), 0, 0);
         if (empty($ip_address) == TRUE) {
             //Don't have an IP address, check for duplicate domain or my own domain
             if (empty($duplicate_check2) == TRUE && $my_server_domain != $domain) {
Ejemplo n.º 3
0
function clone_script($script)
{
    // No Properly working PHP CLI Extensions for some odd reason, call from web server instead
    $cli_port = mysql_result(mysql_query("SELECT field_data FROM `options` WHERE `field_name` = 'cli_port' LIMIT 1"), 0, 0);
    if (empty($cli_port) == TRUE) {
        // Use the same server port that is reported to other peers
        poll_peer(NULL, "localhost", my_subfolder(), my_port_number(), 1, $script);
    } else {
        // Use a different port number than what is reported to other peers.
        // Useful for port forwarding where the External Internet port is different than
        // the Internal web server port being forwarded through the router.
        poll_peer(NULL, "localhost", my_subfolder(), $cli_port, 1, $script);
    }
}
Ejemplo n.º 4
0
function call_script($script, $priority = 1)
{
    if ($priority == 1) {
        // Normal Priority
        if (getenv("OS") == "Windows_NT") {
            $php_location = mysql_result(mysql_query("SELECT field_data FROM `options` WHERE `field_name` = 'php_location' LIMIT 1"), 0, 0);
            if (empty($php_location) == TRUE) {
                pclose(popen("start php-win {$script}", "r"));
                // This will execute without waiting for it to finish
            } else {
                pclose(popen("set PATH=%PATH%;{$php_location}&& start php-win {$script}", "r"));
                // This will execute without waiting for it to finish
            }
        } else {
            exec("php {$script} &> /dev/null &");
            // This will execute without waiting for it to finish
        }
    } else {
        if ($priority == 2) {
            // No PHP CLI Extensions for some odd reason, call from web server instead
            poll_peer(NULL, "localhost", my_subfolder(), my_port_number(), 1, $script);
        } else {
            // Below Normal Priority
            if (getenv("OS") == "Windows_NT") {
                $php_location = mysql_result(mysql_query("SELECT field_data FROM `options` WHERE `field_name` = 'php_location' LIMIT 1"), 0, 0);
                if (empty($php_location) == TRUE) {
                    pclose(popen("start /BELOWNORMAL php-win {$script}", "r"));
                    // This will execute without waiting for it to finish
                } else {
                    pclose(popen("set PATH=%PATH%;{$php_location}&& start /BELOWNORMAL php-win {$script}", "r"));
                    // This will execute without waiting for it to finish
                }
            } else {
                exec("nice php {$script} &> /dev/null &");
                // This will execute without waiting for it to finish
            }
        }
    }
    return;
}
Ejemplo n.º 5
0
			There also exist a setting in the system tab to auto-update the server IP if it changes frequently.<br><br>
			You can manually update this field if the IP address detected is incorrect.<br><br>
			Next Peer Election in<br>' . $time_election . '</strong></font><br><br>
			Currency Generation in<br>' . $time_generate . '</strong></font>';
        if ($_GET["firewall"] == "tool") {
            $body_string = '<strong>This will use the settings set in the system tab (domain,folder, &amp; port) to attempt a reverse connection attempt.</strong><br><br>
				<FORM ACTION="index.php?menu=generation&amp;firewall=test" METHOD="post"><input type="submit" value="Check My Firewall"/></FORM>';
            home_screen('Crypto Currency Generation', $text_bar, $body_string, $quick_info);
            exit;
        }
        if ($_GET["firewall"] == "test") {
            ini_set('user_agent', 'Timekoin Server (GUI) v' . TIMEKOIN_VERSION);
            ini_set('default_socket_timeout', 25);
            // Timeout for request in seconds
            // Create map with request parameters
            $params = array('domain' => my_domain(), 'subfolder' => my_subfolder(), 'port' => my_port_number());
            // Build Http query using params
            $query = http_build_query($params);
            // Create Http context details
            $contextData = array('method' => 'POST', 'header' => "Connection: close\r\n" . "Content-Length: " . strlen($query) . "\r\n", 'content' => $query);
            // Create context resource for our request
            $context = stream_context_create(array('http' => $contextData));
            $firewall_poll = filter_sql(file_get_contents('http://timekoin.com/utility/firewall.php', FALSE, $context, NULL, 1024));
            if (empty($firewall_poll) == TRUE) {
                $firewall_poll = '<font color="red">No Response</font>';
            }
            $body_string = '<strong>Test Response:</strong><br><br>
				' . $firewall_poll . '<br><br>
				<FORM ACTION="index.php?menu=generation&amp;firewall=test" METHOD="post"><input type="submit" value="Check My Firewall Again"/></FORM>';
            home_screen('Crypto Currency Generation', $text_bar, $body_string, $quick_info);
            exit;
Ejemplo n.º 6
0
         }
         // Finish Starting Plugin Services
         echo 1;
     } else {
         // Already Active
         echo 2;
     }
 }
 // End Main System Start
 if ($active == 2) {
     write_log("Main Process Sent STOP Command from IP: " . $_SERVER['REMOTE_ADDR'], "AP");
     $script_loop_active = mysql_result(mysql_query("SELECT field_data FROM `main_loop_status` WHERE `field_name` = 'main_heartbeat_active' LIMIT 1"), 0, 0);
     $script_last_heartbeat = mysql_result(mysql_query("SELECT field_data FROM `main_loop_status` WHERE `field_name` = 'main_last_heartbeat' LIMIT 1"), 0, 0);
     // Use uPNP to delete inbound ports for Windows systems
     if (getenv("OS") == "Windows_NT" && file_exists("utils\\upnpc.exe") == TRUE) {
         pclose(popen("start /B utils\\upnpc.exe -d " . my_port_number() . " TCP", "r"));
     }
     if ($script_loop_active > 0) {
         // Main should still be active
         if (time() - $script_last_heartbeat > 30) {
             // Main stop was unexpected
             $sql = "UPDATE `main_loop_status` SET `field_data` = '0' WHERE `main_loop_status`.`field_name` = 'main_heartbeat_active' LIMIT 1";
             if (mysql_query($sql) == TRUE) {
                 // Clear transaction queue to avoid unnecessary peer confusion
                 mysql_query("TRUNCATE TABLE `transaction_queue`");
                 // Clear Status for other Scripts
                 mysql_query("DELETE FROM `main_loop_status` WHERE `main_loop_status`.`field_name` = 'balance_heartbeat_active' LIMIT 1");
                 mysql_query("DELETE FROM `main_loop_status` WHERE `main_loop_status`.`field_name` = 'foundation_heartbeat_active' LIMIT 1");
                 mysql_query("DELETE FROM `main_loop_status` WHERE `main_loop_status`.`field_name` = 'generation_heartbeat_active' LIMIT 1");
                 mysql_query("DELETE FROM `main_loop_status` WHERE `main_loop_status`.`field_name` = 'genpeer_heartbeat_active' LIMIT 1");
                 mysql_query("DELETE FROM `main_loop_status` WHERE `main_loop_status`.`field_name` = 'peerlist_heartbeat_active' LIMIT 1");
Ejemplo n.º 7
0
             if (empty($generation_key_crypt) == TRUE) {
                 // Reverse Crypto Test is empty, create a new one.
                 // This is just the first 181 characters of the public key encrypted via the private key.
                 // This is then stored as a data field that is easy to access and quickly output to any
                 // peer that is going to query this one as a potential generating peer.
                 $arr1 = str_split($my_public_key, 181);
                 $encryptedPublicKey = tk_encrypt($my_private_key, $arr1[0]);
                 $encryptedPublicKey = base64_encode($encryptedPublicKey);
                 // Update in the database.
                 mysql_query("UPDATE `options` SET `field_data` = '{$encryptedPublicKey}' WHERE `options`.`field_name` = 'generation_key_crypt' LIMIT 1");
             }
             // Crypt3 field will contain the IP address/Domain/etc of where the election request originates from.
             // This will allow a reverse check for a valid Timekoin server.
             $my_domain = my_domain();
             $my_subfolder = my_subfolder();
             $my_port = my_port_number();
             $crypt3_data = "---ip={$my_generation_IP}---domain={$my_domain}---subfolder={$my_subfolder}---port={$my_port}---end";
             $encryptedData3 = tk_encrypt($my_private_key, $crypt3_data);
             $encryptedData64_3 = base64_encode($encryptedData3);
             // Encrypt Generation Request into Crypt1 field
             $encryptedData1 = tk_encrypt($my_private_key, $generation_request);
             $encryptedData64_1 = base64_encode($encryptedData1);
             $duplicate_hash_check = hash('sha256', $encryptedData64_1 . $generation_request . $encryptedData64_3);
             mysql_query("INSERT INTO `my_transaction_queue` (`timestamp`,`public_key`,`crypt_data1`,`crypt_data2`,`crypt_data3`, `hash`, `attribute`)\n\t\t\t\t\t\tVALUES ('" . time() . "', '{$my_public_key}', '{$encryptedData64_1}', '{$generation_request}' , '{$encryptedData64_3}', '{$duplicate_hash_check}' , 'R')");
         }
         // End duplicate request check
     }
     // End Election cycle available check
 }
 if (empty($found_public_key) == FALSE) {
     // Look into the future with the magic of math to see if the next generation will even be allowed.
Ejemplo n.º 8
0
function call_script($script, $priority = 1, $plugin = FALSE)
{
    if ($priority == 1) {
        // Normal Priority
        if (getenv("OS") == "Windows_NT") {
            pclose(popen("start php-win {$script}", "r"));
            // This will execute without waiting for it to finish
        } else {
            exec("php {$script} &> /dev/null &");
            // This will execute without waiting for it to finish
        }
    } else {
        if ($priority == 2) {
            // No PHP CLI Extensions for some odd reason, call from web server instead
            poll_peer(NULL, "localhost", my_subfolder(), my_port_number(), 1, $script);
        } else {
            if ($plugin == TRUE) {
                // Normal Priority
                if (getenv("OS") == "Windows_NT") {
                    pclose(popen("start php-win plugins/{$script}", "r"));
                    // This will execute without waiting for it to finish
                } else {
                    exec("php plugins/{$script} &> /dev/null &");
                    // This will execute without waiting for it to finish
                }
            } else {
                // Below Normal Priority
                if (getenv("OS") == "Windows_NT") {
                    pclose(popen("start /BELOWNORMAL php-win {$script}", "r"));
                    // This will execute without waiting for it to finish
                } else {
                    exec("nice php {$script} &> /dev/null &");
                    // This will execute without waiting for it to finish
                }
            }
        }
    }
    return;
}