def METHOD_NAME(self):
    manager1 = self.create_peer()
    miner1 = self.simulator.create_miner(manager1, hashpower=10e6)
    miner1.start()
    trigger = StopAfterNMinedBlocks(miner1, quantity=20)
    self.simulator.run(3600, trigger=trigger)
    manager2 = self.create_peer()
    manager2.connections.MAX_ENABLED_SYNC = 0
    conn12 = FakeConnection(manager1, manager2, latency=0.05)
    self.simulator.add_connection(conn12)
    self.simulator.run(3600)
    manager2.connections.enable_rate_limiter(8, 2)
    connected_peers2 = list(manager2.connections.connected_peers.values())
    self.assertEqual(1, len(connected_peers2))
    protocol1 = connected_peers2[0]
    sync2 = protocol1.state.sync_agent
    sync2._send_tips = MagicMock()
    for i in range(100):
        sync2.send_tips()
        self.assertEqual(sync2._send_tips.call_count, min(i + 1, 8))
    self.assertEqual(sync2._send_tips.call_count, 8)
    sync2.send_tips()
    self.assertEqual(sync2._send_tips.call_count, 8)
    self.simulator._clock.advance(2000)
    self.assertTrue(sync2._send_tips.call_count, 16)