44 lines
1.2 KiB
Python
Executable File
44 lines
1.2 KiB
Python
Executable File
#!/usr/bin/python3.7
|
|
#
|
|
# Copyright (c) 2016-2018, Neil Booth
|
|
#
|
|
# All rights reserved.
|
|
#d
|
|
# See the file "LICENCE" for information about the copyright
|
|
# and warranty status of this software.
|
|
|
|
'''Script to kick off the server.'''
|
|
|
|
import asyncio
|
|
import logging
|
|
import sys
|
|
|
|
from electrumx import Controller, Env
|
|
from electrumx.lib.util import CompactFormatter, make_logger
|
|
|
|
|
|
def main():
|
|
'''Set up logging and run the server.'''
|
|
log_fmt = Env.default('LOG_FORMAT', '%(levelname)s:%(name)s:%(message)s')
|
|
handler = logging.StreamHandler(sys.stdout)
|
|
handler.setFormatter(CompactFormatter(log_fmt))
|
|
logger = make_logger('electrumx', handler=handler, level='INFO')
|
|
|
|
logger.info('ElectrumX server starting')
|
|
try:
|
|
if sys.version_info < (3, 7):
|
|
raise RuntimeError('ElectrumX requires Python 3.7 or greater')
|
|
env = Env()
|
|
logger.info(f'logging level: {env.log_level}')
|
|
logger.setLevel(env.log_level)
|
|
controller = Controller(env)
|
|
asyncio.run(controller.run())
|
|
except Exception:
|
|
logger.exception('ElectrumX server terminated abnormally')
|
|
else:
|
|
logger.info('ElectrumX server terminated normally')
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|