'Connects to the tracker and starts querying for seed and leech data.
:return: A deferred that will fire with a dictionary containing seed/leech information per infohash'

def connect_to_tracker(self):

    self._is_initiated = True
    self.cancel_pending_task('result')
    self.cancel_pending_task('resolve')
    self.ip_resolve_deferred = self.register_task('resolve', reactor.resolve(self._tracker_address[0]))
    self.ip_resolve_deferred.addCallbacks(self.on_ip_address_resolved, self.on_error)
    self._last_contact = int(time.time())
    self.result_deferred = Deferred(self._on_cancel)
    return self.result_deferred
