def handle(self, connection_id, message_content): gossip_message = network_pb2.GossipMessage() gossip_message.ParseFromString(message_content) if gossip_message.content_type == "BLOCK": block = Block() block.ParseFromString(gossip_message.content) if not is_valid_block(block): LOGGER.debug("block's batches structure is invalid: %s", block.header_signature) return HandlerResult(status=HandlerStatus.DROP) LOGGER.debug("block passes batch structure verification %s", block.header_signature) return HandlerResult(status=HandlerStatus.PASS) elif gossip_message.content_type == "BATCH": batch = Batch() batch.ParseFromString(gossip_message.content) if not is_valid_batch(batch): LOGGER.debug("batch structure is invalid: %s", batch.header_signature) return HandlerResult(status=HandlerStatus.DROP) LOGGER.debug("batch passes structure verification %s", batch.header_signature) return HandlerResult(status=HandlerStatus.PASS) return HandlerResult(status=HandlerStatus.PASS)
def handle(self, connection_id, message_content): gossip_message = network_pb2.GossipMessage() gossip_message.ParseFromString(message_content) if gossip_message.content_type == network_pb2.GossipMessage.BLOCK: block = Block() block.ParseFromString(gossip_message.content) LOGGER.debug("CompleterGossipHandler: BLOCK=%s", block.header_signature[:8]) self._completer.add_block(block) elif gossip_message.content_type == network_pb2.GossipMessage.BATCH: batch = Batch() batch.ParseFromString(gossip_message.content) #candidate_id = gossip_message.candidate_id.hex() LOGGER.debug("CompleterGossipHandler: NEW BATCH=%s ", batch.header_signature[:8]) # works in case batch from another node self._completer.add_batch(batch) elif gossip_message.content_type == network_pb2.GossipMessage.BATCHES: batches = BatchList() batches.ParseFromString(gossip_message.content) candidate_id = batches.candidate_id.hex() num = len(batches.batches) #LOGGER.debug("CompleterGossipHandler: NEW BATCHES=%s candidate_id=%s", batches,candidate_id[:8]) block_num = batches.block_num for batch in batches.batches: LOGGER.debug(" => NEW BATCH[%s]=%s candidate_id=%s.%s", num, batch.header_signature[:8], block_num, candidate_id[:8]) self._completer.add_batch(batch, (candidate_id, block_num, num)) return HandlerResult(status=HandlerStatus.PASS)
def handle(self, connection_id, message_content): gossip_message = network_pb2.GossipMessage() gossip_message.ParseFromString(message_content) if gossip_message.content_type == network_pb2.GossipMessage.BLOCK: block = Block() block.ParseFromString(gossip_message.content) self._completer.add_block(block) elif gossip_message.content_type == network_pb2.GossipMessage.BATCH: batch = Batch() batch.ParseFromString(gossip_message.content) self._completer.add_batch(batch) return HandlerResult(status=HandlerStatus.PASS)