queue.append((cur_time, latest_height)) while len(queue) > 2 and queue[0][0] <= cur_time - 7: queue.pop(0) if len(queue) <= 1: bps = None else: head = queue[-1] tail = queue[0] bps = (head[1] - tail[1]) / (head[0] - tail[0]) logging.info(f"bps: {bps} queue length: {len(queue)}") time.sleep(sleep_time) assert bps is None or bps >= bps_threshold wait_for_height(SMALL_HEIGHT, boot_node) observer = spin_up_node(config, near_root, node_dirs[2], 2, boot_node=boot_node) tracker = LogTracker(observer) # Check that bps is not degraded wait_for_height(LARGE_HEIGHT, boot_node) # Make sure observer2 is able to sync wait_for_height(SMALL_HEIGHT, observer) tracker.reset() assert tracker.check("transition to State Sync")
print("Second node got to height %s" % new_height); status = boot_node.get_status() boot_height = status['sync_info']['latest_block_height'] if mode == 'manytx': if ctx.get_balances() == ctx.expected_balances: ctx.send_moar_txs(hash_, 3, False) print("Sending moar txs at height %s" % boot_height) time.sleep(0.1) boot_heights = boot_node.get_all_heights() assert catch_up_height in boot_heights, "%s not in %s" % (catch_up_height, boot_heights) tracker.reset() # the transition might have happened before we initialized the tracker if catch_up_height >= 100: assert tracker.check("transition to State Sync") elif catch_up_height <= 30: assert not tracker.check("transition to State Sync") if mode == 'manytx': while ctx.get_balances() != ctx.expected_balances: assert time.time() - started < TIMEOUT print("Waiting for the old node to catch up. Current balances: %s; Expected balances: %s" % (ctx.get_balances(), ctx.expected_balances)) time.sleep(1) # requery the balances from the newly started node ctx.nodes.append(node2) ctx.act_to_val = [2, 2, 2]
if ctx.get_balances() == ctx.expected_balances: ctx.send_moar_txs(hash_, 3, False) print("Sending moar txs at height %s" % boot_height) time.sleep(0.1) boot_heights = boot_node.get_all_heights() assert catch_up_height in boot_heights, "%s not in %s" % (catch_up_height, boot_heights) if catch_up_height >= 100: assert tracker4.check("transition to State Sync") elif catch_up_height <= 30: assert not tracker4.check("transition to State Sync") tracker4.reset() assert tracker4.count("Connected to FullPeerInfo") == 2 if mode == 'manytx': while ctx.get_balances() != ctx.expected_balances: assert time.time() - started < TIMEOUT print( "Waiting for the old node to catch up. Current balances: %s; Expected balances: %s" % (ctx.get_balances(), ctx.expected_balances)) time.sleep(1) # requery the balances from the newly started node ctx.nodes.append(node4) ctx.act_to_val = [2, 2, 2] while ctx.get_balances() != ctx.expected_balances: