import logging import traceback import argparse from lbry.wallet.server.env import Env from lbry.wallet.server.block_processor import BlockProcessor from lbry.wallet.server.chain_reader import BlockchainReaderServer def get_argument_parser(): parser = argparse.ArgumentParser( prog="lbry-hub" ) Env.contribute_to_arg_parser(parser) return parser def main(): parser = get_argument_parser() args = parser.parse_args() logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)-4s %(name)s:%(lineno)d: %(message)s") logging.info('lbry.server starting') logging.getLogger('aiohttp').setLevel(logging.WARNING) logging.getLogger('elasticsearch').setLevel(logging.WARNING) if args.es_mode == 'writer': try: block_processor = BlockProcessor(Env.from_arg_parser(args)) block_processor.run() except Exception: traceback.print_exc() logging.critical('block processor terminated abnormally') else: logging.info('block processor terminated normally') else: try: server = BlockchainReaderServer(Env.from_arg_parser(args)) server.run() except Exception: traceback.print_exc() logging.critical('server terminated abnormally') else: logging.info('server terminated normally') if __name__ == "__main__": main()