Request PROPAGATEs for the given request keys. Since replicas can
        request PROPAGATEs independently of each other, check if it has
        been requested recently
        :param req_keys:
        :return:

def request_propagates(self, req_keys):
        """
        Request PROPAGATEs for the given request keys. Since replicas can
        request PROPAGATEs independently of each other, check if it has
        been requested recently
        :param req_keys:
        :return:
        """
        i = 0
        for digest in req_keys:
            if digest not in self.requested_propagates_for:
                if digest not in self.requests:
                    # Request from all nodes
                    self.request_msg(PROPAGATE, {f.DIGEST.nm: digest})
                else:
                    # Request from nodes that didn't send
                    send_to = [conn for conn in self.nodestack.connecteds if
                               conn not in self.requests[digest].propagates.keys()]
                    self.request_msg(PROPAGATE, {f.DIGEST.nm: digest}, frm=send_to)

                self._add_to_recently_requested(digest)
                i += 1
            else:
                logger.debug('{} already requested PROPAGATE recently for {}'.
                             format(self, digest))
        return i