예제 #1
0
 def handle_block(self, node, msg):
     self.got_blkmsg(msg.block.hash)
     print "downloaded block %s" % h2h(msg.block.hash)
     if blockchain.Block.exist_by_hash(msg.block.hash):
         return
     if blockchain.Block.exist_by_hash(msg.block.prev):
         blockchain.process_blockmsg(msg)
         self.check_missing(msg.block.hash)
     else:
         self.missing[msg.block.prev] = msg
         self.want.add(msg.block.prev)
예제 #2
0
 def handle_block(self, node, msg):
     self.got_blkmsg(msg.block.hash)
     print "downloaded block %s" % h2h(msg.block.hash)
     if blockchain.Block.exist_by_hash(msg.block.hash):
         return
     if blockchain.Block.exist_by_hash(msg.block.prev):
         blockchain.process_blockmsg(msg)
         self.check_missing(msg.block.hash)
     else:
         self.missing[msg.block.prev] = msg
         self.want.add(msg.block.prev)
예제 #3
0
 def check_missing(self, h):
     blkmsg = self.missing.pop(h, None)
     while blkmsg:
         blockchain.process_blockmsg(blkmsg)
         blkmsg = self.missing.pop(blkmsg.block.hash, None)
예제 #4
0
 def check_missing(self, h):
     blkmsg = self.missing.pop(h, None)
     while blkmsg:
         blockchain.process_blockmsg(blkmsg)
         blkmsg = self.missing.pop(blkmsg.block.hash, None)