Exemple #1
0
             $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();