def listener(): """ Listener for Sawtooth State changes """ try: database = Database() database.connect() LOGGER.info("Reading queued Sawtooth transactions") while True: feed = database.run_query(database.get_table("inbound_queue")) count = 0 for rec in feed: process(rec, database) count = count + 1 if count == 0: break LOGGER.info("Processed %s records in the inbound queue", count) LOGGER.info("Listening for incoming Sawtooth transactions") feed = database.run_query( database.get_table("inbound_queue").changes()) for rec in feed: if rec["new_val"] and not rec["old_val"]: # only insertions process(rec["new_val"], database) except Exception as err: # pylint: disable=broad-except LOGGER.exception("Inbound listener %s exception", type(err).__name__) LOGGER.exception(err) finally: try: database.disconnect() except UnboundLocalError: pass
def listener(): """ Listener for Sawtooth State changes """ try: database = Database() subscriber = Subscriber(VALIDATOR) database.connect() subscriber.add_handler(get_delta_handler(database)) known_blocks = database.get_last_known_blocks() subscriber.start(known_blocks) LOGGER.info("Listening for Sawtooth state changes") except Exception as err: # pylint: disable=broad-except LOGGER.exception("Outbound listener %s exception", type(err).__name__) LOGGER.exception(err) finally: try: database.disconnect() except UnboundLocalError: pass try: subscriber.stop() except UnboundLocalError: pass
def main(): try: opts = parse_args(sys.argv[1:]) init_logger(opts.verbose) LOGGER.info("Starting Ledger Sync...") database = Database(opts.db_host, opts.db_port, opts.db_name) database.connect() subscriber = Subscriber(opts.validator) subscriber.add_handler(get_delta_handler(database)) known_blocks = get_last_known_blocks(database) subscriber.start(known_blocks) except KeyboardInterrupt: sys.exit(0) except Exception as err: # pylint: disable=broad-except LOGGER.exception(err) sys.exit(1) finally: try: subscriber.stop() except UnboundLocalError: pass try: database.disconnect() except UnboundLocalError: pass LOGGER.info("Ledger Sync shut down successfully")