hydrachain/consensus/synchronizer.py
def request(self):
        """
        sync the missing blocks between:
            head
            highest height with signing lockset

        we get these locksets by collecting votes on all heights
        """
        missing = self.missing
        self.cm.log('sync.request', missing=len(missing), requested=len(self.requested),
                    received=len(self.received))
        if self.requested:
            self.cm.log('waiting for requested')
            return
        if len(self.received) + self.max_getproposals_count >= self.max_queued:
            self.cm.log('queue is full')
            return
        if not missing:
            self.cm.log('insync')
            return
        if self.last_active_protocol is None:  # FIXME, check if it is active
            self.cm.log('no active protocol', last_active_protocol=self.last_active_protocol)
            return
        self.cm.log('collecting')
        blocknumbers = []
        for h in missing:
            if h not in self.received and h not in self.requested:
                blocknumbers.append(h)
                self.requested.add(h)
                if len(blocknumbers) == self.max_getproposals_count:
                    break
        self.cm.log('collected', num=len(blocknumbers))
        if not blocknumbers:
            return
        self.cm.log('requesting', num=len(blocknumbers),
                    requesting_range=(blocknumbers[0], blocknumbers[-1]))
        self.last_active_protocol.send_getblockproposals(*blocknumbers)
        # setup alarm
        self.cm.chainservice.setup_alarm(self.timeout, self.on_alarm, blocknumbers)
def request(self):
        """
        sync the missing blocks between:
            head
            highest height with signing lockset

        we get these locksets by collecting votes on all heights
        """
        missing = self.missing
        self.cm.log('sync.request', missing=len(missing), requested=len(self.requested),
                    received=len(self.received))
        if self.requested:
            self.cm.log('waiting for requested')
            return
        if len(self.received) + self.max_getproposals_count >= self.max_queued:
            self.cm.log('queue is full')
            return
        if not missing:
            self.cm.log('insync')
            return
        if self.last_active_protocol is None:  # FIXME, check if it is active
            self.cm.log('no active protocol', last_active_protocol=self.last_active_protocol)
            return
        self.cm.log('collecting')
        blocknumbers = []
        for h in missing:
            if h not in self.received and h not in self.requested:
                blocknumbers.append(h)
                self.requested.add(h)
                if len(blocknumbers) == self.max_getproposals_count:
                    break
        self.cm.log('collected', num=len(blocknumbers))
        if not blocknumbers:
            return
        self.cm.log('requesting', num=len(blocknumbers),
                    requesting_range=(blocknumbers[0], blocknumbers[-1]))
        self.last_active_protocol.send_getblockproposals(*blocknumbers)
        # setup alarm
        self.cm.chainservice.setup_alarm(self.timeout, self.on_alarm, blocknumbers)
def request ( self ) : missing = self . missing self . cm . log ( 'sync.request' , missing = len ( missing ) , requested = len ( self . requested ) , received = len ( self . received ) ) if self . requested : self . cm . log ( 'waiting for requested' ) return if len ( self . received ) + self . max_getproposals_count >= self . max_queued : self . cm . log ( 'queue is full' ) return if not missing : self . cm . log ( 'insync' ) return if self . last_active_protocol is None : # FIXME, check if it is active self . cm . log ( 'no active protocol' , last_active_protocol = self . last_active_protocol ) return self . cm . log ( 'collecting' ) blocknumbers = [ ] for h in missing : if h not in self . received and h not in self . requested : blocknumbers . append ( h ) self . requested . add ( h ) if len ( blocknumbers ) == self . max_getproposals_count : break self . cm . log ( 'collected' , num = len ( blocknumbers ) ) if not blocknumbers : return self . cm . log ( 'requesting' , num = len ( blocknumbers ) , requesting_range = ( blocknumbers [ 0 ] , blocknumbers [ - 1 ] ) ) self . last_active_protocol . send_getblockproposals ( * blocknumbers ) # setup alarm self . cm . chainservice . setup_alarm ( self . timeout , self . on_alarm , blocknumbers )
sync the missing blocks between:
            head
            highest height with signing lockset

        we get these locksets by collecting votes on all heights
sync the missing blocks between : head highest height with signing lockset