def handle(self, connection_id, message_content): ack = NetworkAcknowledgement() ack.status = ack.OK block_response_message = GossipBlockResponse() block_response_message.ParseFromString(message_content) return HandlerResult(HandlerStatus.RETURN_AND_PASS, message_out=ack, message_type=validator_pb2.Message.NETWORK_ACK)
def gossip_block_response_preprocessor(message_content_bytes): block_response = GossipBlockResponse() block_response.ParseFromString(message_content_bytes) block = Block() block.ParseFromString(block_response.content) content = block, message_content_bytes return PreprocessorResult(content=content)
def handle(self, connection_id, message_content): block_response_message = GossipBlockResponse() block_response_message.ParseFromString(message_content) block = Block() block.ParseFromString(block_response_message.content) if not is_valid_block(block): LOGGER.debug("requested block's batches structure is invalid: %s", block.header_signature) return HandlerResult(status=HandlerStatus.DROP) return HandlerResult(status=HandlerStatus.PASS)
def handle(self, connection_id, message_content): block_response_message = GossipBlockResponse() block_response_message.ParseFromString(message_content) block = Block() block.ParseFromString(block_response_message.content) status = validate_block(block) if status is True: LOGGER.debug("requested block passes signature verification %s", block.header_signature) return HandlerResult(status=HandlerStatus.PASS) else: LOGGER.debug("requested block's signature is invalid: %s", block.header_signature) return HandlerResult(status=HandlerStatus.DROP)
def handle(self, connection_id, message_content): block_response_message = GossipBlockResponse() block_response_message.ParseFromString(message_content) block = Block() block.ParseFromString(block_response_message.content) if block.header_signature in self._seen_cache: self.block_dropped_count.inc() return HandlerResult(status=HandlerStatus.DROP) if not is_valid_block(block): LOGGER.debug("requested block's signature is invalid: %s", block.header_signature) return HandlerResult(status=HandlerStatus.DROP) self._seen_cache = TimedCache() return HandlerResult(status=HandlerStatus.PASS)
def handle(self, connection_id, message_content): block_response_message = GossipBlockResponse() block_response_message.ParseFromString(message_content) block = Block() block.ParseFromString(block_response_message.content) block_id = block.header_signature if not self._has_open_requests(block_id) and self._has_block(block_id): LOGGER.debug('Drop duplicate block: %s', block_id) return HandlerResult(HandlerStatus.RETURN) ack = NetworkAcknowledgement() ack.status = ack.OK return HandlerResult(HandlerStatus.RETURN_AND_PASS, message_out=ack, message_type=validator_pb2.Message.NETWORK_ACK)