def vote_unconfirmed_block(self, block_hash, is_validated): logging.debug( f"block_manager:vote_unconfirmed_block ({self.channel_name}/{is_validated})" ) if is_validated: vote_code, message = message_code.get_response( message_code.Response.success_validate_block) else: vote_code, message = message_code.get_response( message_code.Response.fail_validate_block) block_vote = loopchain_pb2.BlockVote( vote_code=vote_code, channel=self.channel_name, message=message, block_hash=block_hash, peer_id=self.__peer_id, group_id=ChannelProperty().group_id) self.candidate_blocks.add_vote(block_hash, ChannelProperty().group_id, ChannelProperty().peer_id, is_validated) self.__channel_service.broadcast_scheduler.schedule_broadcast( "VoteUnconfirmedBlock", block_vote)
def AnnounceUnconfirmedBlock(self, request, context): """수집된 tx 로 생성한 Block 을 각 peer 에 전송하여 검증을 요청한다. :param request: :param context: :return: """ channel_name = conf.LOOPCHAIN_DEFAULT_CHANNEL if request.channel == '' else request.channel logging.debug( f"peer_outer_service::AnnounceUnconfirmedBlock channel({channel_name})" ) unconfirmed_block = pickle.loads(request.block) logging.warning("Black Peer makes Fail validate Message by intention!") vote_code, message = message_code.get_response( message_code.Response.fail_validate_block) block_vote = loopchain_pb2.BlockVote( vote_code=vote_code, channel=channel_name, message=message, block_hash=unconfirmed_block.block_hash, peer_id=ObjectManager().peer_service.peer_id, group_id=ObjectManager().peer_service.group_id) self.peer_service.common_service.broadcast("VoteUnconfirmedBlock", block_vote) return loopchain_pb2.CommonReply( response_code=message_code.Response.success, message="success")