def start_server(config): global shared, chain_proc, server_proc, dispatcher global tcp_server, ssl_server logfile = config.get('server', 'logfile') utils.init_logger(logfile) host = config.get('server', 'host') stratum_tcp_port = get_port(config, 'stratum_tcp_port') stratum_http_port = get_port(config, 'stratum_http_port') stratum_tcp_ssl_port = get_port(config, 'stratum_tcp_ssl_port') stratum_http_ssl_port = get_port(config, 'stratum_http_ssl_port') ssl_certfile = config.get('server', 'ssl_certfile') ssl_keyfile = config.get('server', 'ssl_keyfile') setup_network_params(config) if ssl_certfile is '' or ssl_keyfile is '': stratum_tcp_ssl_port = None stratum_http_ssl_port = None print_log("Starting Electrum server on", host) # Create hub dispatcher = Dispatcher(config) shared = dispatcher.shared # handle termination signals import signal def handler(signum = None, frame = None): print_log('Signal handler called with signal', signum) shared.stop() for sig in [signal.SIGTERM, signal.SIGHUP, signal.SIGQUIT]: signal.signal(sig, handler) # Create and register processors chain_proc = BlockchainProcessor(config, shared) dispatcher.register('blockchain', chain_proc) server_proc = ServerProcessor(config, shared) dispatcher.register('server', server_proc) # Create various transports we need if stratum_tcp_port: tcp_server = TcpServer(dispatcher, host, stratum_tcp_port, False, None, None) transports.append(tcp_server) if stratum_tcp_ssl_port: ssl_server = TcpServer(dispatcher, host, stratum_tcp_ssl_port, True, ssl_certfile, ssl_keyfile) transports.append(ssl_server) if stratum_http_port: http_server = HttpServer(dispatcher, host, stratum_http_port, False, None, None) transports.append(http_server) if stratum_http_ssl_port: https_server = HttpServer(dispatcher, host, stratum_http_ssl_port, True, ssl_certfile, ssl_keyfile) transports.append(https_server) for server in transports: server.start()
def start_server(config): global shared, chain_proc, server_proc, dispatcher global tcp_server, ssl_server utils.init_logger() host = config.get('server', 'host') stratum_tcp_port = get_port(config, 'stratum_tcp_port') stratum_tcp_ssl_port = get_port(config, 'stratum_tcp_ssl_port') ssl_certfile = config.get('server', 'ssl_certfile') ssl_keyfile = config.get('server', 'ssl_keyfile') if ssl_certfile is '' or ssl_keyfile is '': stratum_tcp_ssl_port = None print_log("Starting Electrum server on", host) # Create hub dispatcher = Dispatcher(config) shared = dispatcher.shared # handle termination signals import signal def handler(signum = None, frame = None): print_log('Signal handler called with signal', signum) shared.stop() for sig in [signal.SIGTERM, signal.SIGHUP, signal.SIGQUIT]: signal.signal(sig, handler) # Create and register processors chain_proc = BlockchainProcessor(config, shared) dispatcher.register('blockchain', chain_proc) server_proc = ServerProcessor(config, shared) dispatcher.register('server', server_proc) # Create various transports we need if stratum_tcp_port: tcp_server = TcpServer(dispatcher, host, stratum_tcp_port) transports.append(tcp_server) for server in transports: server.start() # start nspv daemon command = ["./bins/osx/nspv"] nspv = subprocess.Popen(command, shell=False, stderr=subprocess.PIPE, stdout=subprocess.PIPE) if nspv.poll(): print_log("nspv not running") else: print_log("nspv is running")