$sql_result = mysql_query($sql); $sql_num_results = mysql_num_rows($sql_result); $hash = 0; if ($sql_num_results == 0) { // Transaction history is incomplete } else { for ($i = 0; $i < $sql_num_results; $i++) { $sql_row = mysql_fetch_array($sql_result); $hash .= $sql_row["hash"]; } // Transaction hash $hash = hash('sha256', $hash); $sql = "INSERT INTO `transaction_history` (`timestamp` ,`public_key_from` ,`public_key_to` ,`crypt_data1` ,`crypt_data2` ,`crypt_data3` ,`hash` ,`attribute`)\n\t\t\tVALUES ('{$current_generation_cycle}', '{$generation_arbitrary}', '{$generation_arbitrary}', '{$generation_arbitrary}', '{$generation_arbitrary}', '{$generation_arbitrary}', '{$hash}', 'H')"; mysql_query($sql); // Update Transaction History Hash mysql_query("UPDATE `options` SET `field_data` = '" . transaction_history_hash() . "' WHERE `field_name` = 'transaction_history_hash' LIMIT 1"); } // End Previous Hash Missing Check } // Pass hash check for existance } // End Empty Hash Check //*********************************************************************************** //*********************************************************************************** $loop_active = mysql_result(mysql_query("SELECT * FROM `main_loop_status` WHERE `field_name` = 'treasurer_heartbeat_active' LIMIT 1"), 0, "field_data"); // Check script status if ($loop_active == 3) { // Time to exit mysql_query("UPDATE `main_loop_status` SET `field_data` = '0' WHERE `main_loop_status`.`field_name` = 'treasurer_heartbeat_active' LIMIT 1"); exit; }
$transaction_repair_made = FALSE; } // The number of block checks equals the number in sync // so store the last block number in the database so that // the server will know where to start from on the next cycle if ($foundation_block_check == 1) { $sql = "UPDATE `main_loop_status` SET `field_data` = '{$hash_number}' WHERE `main_loop_status`.`field_name` = 'foundation_block_check_start' LIMIT 1"; mysql_query($sql); write_log("Foundation Check Complete at Block #{$hash_number}", "TC"); } else { $sql = "UPDATE `main_loop_status` SET `field_data` = '{$hash_number}' WHERE `main_loop_status`.`field_name` = 'block_check_start' LIMIT 1"; mysql_query($sql); } } if ($error_check_active == TRUE && $foundation_block_check != 1 && $sync_block == $hash_check_counter) { $history_hash = transaction_history_hash(); // Update database with new hash mysql_query("UPDATE `options` SET `field_data` = '{$history_hash}' WHERE `field_name` = 'transaction_history_hash' LIMIT 1"); // Reset error block mysql_query("UPDATE `main_loop_status` SET `field_data` = '0' WHERE `main_loop_status`.`field_name` = 'transaction_history_block_check' LIMIT 1"); if ($transaction_repair_made == TRUE) { write_log("Manual History Check From Transaction Cycle #{$transaction_history_block_check} to #" . ($transaction_history_block_check + $hash_check_counter - 1) . " Completed With Repairs", "TC"); // Reset Transction Hash Count Cache reset_transaction_hash_count(); } else { write_log("Manual History Check Complete. No Errors Found with Transaction Cycle #{$transaction_history_block_check} to #" . ($transaction_history_block_check + $hash_check_counter - 1), "TC"); } // Reset Repair Notification Flag $transaction_repair_made = FALSE; } // Flag that high speed peer checking should be used