From ff99a48192b6a39b3ee301c8836eb11b283f7c1a Mon Sep 17 00:00:00 2001 From: genjix Date: Wed, 4 Apr 2012 10:37:31 +0100 Subject: [PATCH] can specify backend in conf file --- modules/python_bitcoin/__init__.py | 2 +- server.py | 21 +++++++++++---------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/modules/python_bitcoin/__init__.py b/modules/python_bitcoin/__init__.py index 6f91305..97440ce 100644 --- a/modules/python_bitcoin/__init__.py +++ b/modules/python_bitcoin/__init__.py @@ -132,7 +132,7 @@ class AddressGetHistory: self.processor.push_response({"id": request["id"], "method":request["method"], "params":request["params"], "result": result}) -class LibbitcoinProcessor(Processor): +class BlockchainProcessor(Processor): def __init__(self, config): Processor.__init__(self) diff --git a/server.py b/server.py index 6946a40..4c51af5 100755 --- a/server.py +++ b/server.py @@ -32,30 +32,27 @@ config.set('server', 'irc_nick', '') config.add_section('database') config.set('database', 'type', 'psycopg2') config.set('database', 'database', 'abe') +config.set('server', 'backend', 'abe') for path in ('', '/etc/'): filename = path + 'electrum.conf' try: with open(filename, 'r') as f: config.readfp(f) - except: + except IOError: print "Could not read %s. Falling back." % filename try: with open('/etc/electrum.banner', 'r') as f: config.set('server','banner', f.read()) -except: +except IOError: pass password = config.get('server','password') host = config.get('server','host') -use_libbitcoin = False native_port = config.get('server','native_port') stratum_tcp_port = config.get('server','stratum_tcp_port') stratum_http_port = config.get('server','stratum_http_port') -# NativeServer cannot be used with libbitcoin -if use_libbitcoin: native_port = None - from processor import Dispatcher from transports.stratum_http import HttpServer @@ -63,11 +60,15 @@ from transports.stratum_tcp import TcpServer from transports.native import NativeServer from modules.irc import ServerProcessor -if use_libbitcoin: - from modules.python_bitcoin \ - import LibbitcoinProcessor as BlockchainProcessor -else: +backend_name = config.get('server', 'backend') +if backend_name == "libbitcoin": + # NativeServer cannot be used with libbitcoin + native_port = None + from modules.python_bitcoin import BlockchainProcessor +elif backend_name == "abe": from modules.abe import AbeProcessor as BlockchainProcessor +else: + raise Exception('Unknown backend specified') if __name__ == '__main__': -- 1.7.1