new bitcoind backend (experimental)
[electrum-server.git] / server.py
index d2ef9d6..517299e 100755 (executable)
--- a/server.py
+++ b/server.py
@@ -40,9 +40,13 @@ def create_config():
     config.set('server', 'host', 'localhost')
     config.set('server', 'stratum_tcp_port', '50001')
     config.set('server', 'stratum_http_port', '8081')
+    config.set('server', 'stratum_tcp_ssl_port', '50002')
+    config.set('server', 'stratum_http_ssl_port', '8082')
     config.set('server', 'password', '')
     config.set('server', 'irc', 'yes')
     config.set('server', 'irc_nick', '')
+    config.set('server', 'coin', '')
+    config.set('server', 'datadir', '')
     config.add_section('database')
     config.set('database', 'type', 'psycopg2')
     config.set('database', 'database', 'abe')
@@ -94,6 +98,12 @@ if __name__ == '__main__':
     host = config.get('server', 'host')
     stratum_tcp_port = config.get('server', 'stratum_tcp_port')
     stratum_http_port = config.get('server', 'stratum_http_port')
+    stratum_tcp_ssl_port = config.get('server', 'stratum_tcp_ssl_port')
+    stratum_http_ssl_port = config.get('server', 'stratum_http_ssl_port')
+    ssl_certfile = config.get('server', 'ssl_certfile')
+    ssl_keyfile = config.get('server', 'ssl_keyfile')
+
+    if stratum_tcp_ssl_port or stratum_http_ssl_port: assert ssl_certfile and ssl_keyfile 
 
     if len(sys.argv) > 1:
         run_rpc_command(sys.argv[1], stratum_tcp_port)
@@ -117,6 +127,11 @@ if __name__ == '__main__':
     shared = dispatcher.shared
 
     # Create and register processors
+
+    # from backends.bitcoind import Blockchain2Processor
+    # chain2_proc = Blockchain2Processor(config)
+    # dispatcher.register('blockchain2', chain2_proc)
+
     chain_proc = backend.BlockchainProcessor(config)
     dispatcher.register('blockchain', chain_proc)
 
@@ -127,12 +142,22 @@ if __name__ == '__main__':
     # Create various transports we need
     if stratum_tcp_port:
         from transports.stratum_tcp import TcpServer
-        tcp_server = TcpServer(dispatcher, host, int(stratum_tcp_port))
+        tcp_server = TcpServer(dispatcher, host, int(stratum_tcp_port), False, None, None)
+        transports.append(tcp_server)
+
+    if stratum_tcp_ssl_port:
+        from transports.stratum_tcp import TcpServer
+        tcp_server = TcpServer(dispatcher, host, int(stratum_tcp_ssl_port), True, ssl_certfile, ssl_keyfile)
         transports.append(tcp_server)
 
     if stratum_http_port:
         from transports.stratum_http import HttpServer
-        http_server = HttpServer(dispatcher, host, int(stratum_http_port))
+        http_server = HttpServer(dispatcher, host, int(stratum_http_port), False, None, None)
+        transports.append(http_server)
+
+    if stratum_http_ssl_port:
+        from transports.stratum_http import HttpServer
+        http_server = HttpServer(dispatcher, host, int(stratum_http_ssl_port), True, ssl_certfile, ssl_keyfile)
         transports.append(http_server)
 
     for server in transports: