$parsedata->ParseDataRollbackFront(); unset($parsedata); } $LOG_MARKER = "Вилка на {$block_id}"; rollback_transactions_testblock($db, true); $db->query(__FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__, "\n\t\t\t\t\tTRUNCATE TABLE `" . DB_PREFIX . "testblock`\n\t\t\t\t\t"); } //print '$binary_block_full='.$binary_block_full."\n"; // теперь у нас в таблицах всё тоже самое, что у нода, у которого качаем блок // и можем этот блок проверить и занести в нашу БД $LOG_MARKER = "new block_id = " . $block_id; $parsedata = new ParseData($binary_block_full, $db); $error = $parsedata->ParseDataFull(); debug_print("parsedata->block_data " . print_r_hex($parsedata->block_data), __FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__); if (!$error) { $parsedata->insert_into_blockchain(); } unset($parsedata); //main_unlock(); // начинаем всё с начала уже с другими нодами. Но у нас уже могут быть новые блоки до $block_id, взятые от нода, которого с в итоге мы баним if ($error) { //$block_id--; nodes_ban($db, $max_block_id_user_id, '$block_id=' . $block_id . "\n" . $error . "\n" . __FILE__ . ', ' . __LINE__ . ', ' . __FUNCTION__ . ', ' . __CLASS__ . ', ' . __METHOD__); debug_print("[[error]] ## пробуем взять этот же блок у другого нода ParseDataFull error={$error}", __FILE__, __LINE__, __FUNCTION__, __CLASS__, __METHOD__); //ob_save(); main_unlock(); sleep(1); continue 2; } } main_unlock();