def issue(self, chain):
blockchain_bytes = self.certificate_batch_handler.prepare_batch()<EOL>for attempt_number in range(<NUM_LIT:0>, self.max_retry):<EOL><INDENT>try:<EOL><INDENT>txid = self.transaction_handler.issue_transaction(blockchain_bytes)<EOL>self.certificate_batch_handler.finish_batch(txid, chain)<EOL>logging.info('<STR_LIT>', txid)<EOL>return txid<EOL><DEDENT>except BroadcastError:<EOL><INDENT>logging.warning(<EOL>'<STR_LIT>',<EOL>attempt_number)<EOL><DEDENT><DEDENT>logging.error('<STR_LIT>')<EOL>raise BroadcastError('<STR_LIT>')<EOL>
Issue the certificates on the blockchain
:return: