config.set('server', 'report_host', '')
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', 'stratum_tcp_ssl_port', '')
+ config.set('server', 'stratum_http_ssl_port', '')
config.set('server', 'report_stratum_tcp_port', '')
config.set('server', 'report_stratum_http_port', '')
config.set('server', 'report_stratum_tcp_ssl_port', '')
config.set('server', 'report_stratum_http_ssl_port', '')
+ config.set('server', 'ssl_certfile', '')
+ config.set('server', 'ssl_keyfile', '')
config.set('server', 'password', '')
- config.set('server', 'irc', 'yes')
+ config.set('server', 'irc', 'no')
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')
- config.set('database', 'limit', '1000')
- config.set('server', 'backend', 'abe')
+
+ # use leveldb as default
+ config.set('server', 'backend', 'leveldb')
+ config.add_section('leveldb')
+ config.set('leveldb', 'path', '/dev/shm/electrum_db')
+ config.set('leveldb', 'pruning_limit', '100')
for path in ('/etc/', ''):
filename = path + 'electrum.conf'
def run_rpc_command(command, stratum_tcp_port):
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- s.connect((host, int(stratum_tcp_port)))
+ s.connect((host, stratum_tcp_port))
except:
print "cannot connect to server."
return
method = 'server.' + command
- request = json.dumps({'id': 0, 'method': method, 'params': [password]})
+ params = [password]
+ if len(sys.argv) > 2:
+ params.append(sys.argv[2])
+
+ request = json.dumps({'id': 0, 'method': method, 'params': params})
s.send(request + '\n')
msg = ''
while True:
o = s.recv(1024)
+ if not o: break
msg += o
if msg.find('\n') != -1:
break
if command == 'info':
now = time.time()
- print 'type address sub version time'
+ print 'type address sub version time'
for item in r:
- print '%4s %15s %3s %7s %.2f' % (item.get('name'),
+ print '%4s %21s %3s %7s %.2f' % (item.get('name'),
item.get('address'),
item.get('subscriptions'),
item.get('version'),
config = create_config()
password = config.get('server', 'password')
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')
+ stratum_tcp_port = config.getint('server', 'stratum_tcp_port')
+ stratum_http_port = config.getint('server', 'stratum_http_port')
+ stratum_tcp_ssl_port = config.getint('server', 'stratum_tcp_ssl_port')
+ stratum_http_ssl_port = config.getint('server', 'stratum_http_ssl_port')
ssl_certfile = config.get('server', 'ssl_certfile')
ssl_keyfile = config.get('server', 'ssl_keyfile')
run_rpc_command(sys.argv[1], stratum_tcp_port)
sys.exit(0)
+ try:
+ s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ s.connect((host, stratum_tcp_port))
+ s.close()
+ is_running = True
+ except:
+ is_running = False
+
+ if is_running:
+ print "server already running"
+ sys.exit(1)
+
+
from processor import Dispatcher, print_log
from backends.irc import ServerProcessor
backend_name = config.get('server', 'backend')
- if backend_name == 'abe':
- from backends.abe import BlockchainProcessor
- elif backend_name == 'libbitcoin':
+ if backend_name == 'libbitcoin':
from backends.libbitcoin import BlockchainProcessor
elif backend_name == 'leveldb':
from backends.bitcoind import BlockchainProcessor
# Create various transports we need
if stratum_tcp_port:
from transports.stratum_tcp import TcpServer
- tcp_server = TcpServer(dispatcher, host, int(stratum_tcp_port), False, None, None)
+ tcp_server = TcpServer(dispatcher, host, 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)
+ tcp_server = TcpServer(dispatcher, host, 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), False, None, None)
+ http_server = HttpServer(dispatcher, host, 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)
+ http_server = HttpServer(dispatcher, host, stratum_http_ssl_port, True, ssl_certfile, ssl_keyfile)
transports.append(http_server)
for server in transports:
except:
shared.stop()
+ server_proc.join()
+ chain_proc.join()
print_log("Electrum Server stopped")