catch_up database before launching transports
[electrum-server.git] / server.py
index 5846fba..0bd7e63 100755 (executable)
--- a/server.py
+++ b/server.py
@@ -42,6 +42,7 @@ def create_config():
     config.add_section('database')
     config.set('database', 'type', 'psycopg2')
     config.set('database', 'database', 'abe')
+    config.set('database', 'limit', '500')
     config.set('server', 'backend', 'abe')
 
     for path in ('/etc/', ''):
@@ -70,11 +71,18 @@ def run_rpc_command(command, stratum_tcp_port):
         if msg.find('\n') != -1: break
     s.close()
     r = json.loads(msg).get('result')
-    if command == 'stop': print r
-    elif command == 'info': 
+
+    if command == 'info': 
         now = time.time()
+        print 'type           address   sub  version  time' 
         for item in r:
-            print '%15s   %3s  %7s  %.2f'%( item.get('address'), item.get('subscriptions'), item.get('version'), (now - item.get('time')) )
+            print '%4s   %15s   %3s  %7s  %.2f'%( item.get('name'), 
+                                                  item.get('address'), 
+                                                  item.get('subscriptions'), 
+                                                  item.get('version'), 
+                                                  (now - item.get('time')) )
+    else:
+        print r
 
 if __name__ == '__main__':
     config = create_config()
@@ -98,6 +106,8 @@ if __name__ == '__main__':
         sys.stderr.write("Unknown backend '%s' specified\n" % backend_name)
         raise
 
+    print "Starting Electrum server on", host
+
     # Create hub
     dispatcher = Dispatcher()
     shared = dispatcher.shared
@@ -106,6 +116,10 @@ if __name__ == '__main__':
     chain_proc = backend.BlockchainProcessor(config)
     dispatcher.register('blockchain', chain_proc)
 
+    # catch_up first
+    n = chain_proc.store.main_iteration()
+    print "blockchain: %d blocks"%n
+
     server_proc = ServerProcessor(config)
     dispatcher.register('server', server_proc)
 
@@ -124,7 +138,6 @@ if __name__ == '__main__':
     for server in transports:
         server.start()
 
-    print "Starting Electrum server on", host
     while not shared.stopped():
         time.sleep(1)
     print "Server stopped"