return ''.join(random.choice(string.ascii_uppercase + string.digits) for x in range(N))
from processor import Processor
-
+from version import VERSION
class IrcThread(threading.Thread):
self.daemon = True
self.stratum_tcp_port = config.get('server','stratum_tcp_port')
self.stratum_http_port = config.get('server','stratum_http_port')
+ self.stratum_tcp_ssl_port = config.get('server','stratum_tcp_ssl_port')
+ self.stratum_http_ssl_port = config.get('server','stratum_http_ssl_port')
self.peers = {}
self.host = config.get('server','host')
self.nick = config.get('server', 'irc_nick')
if not self.nick: self.nick = random_string(10)
+ self.prepend = 'E_'
+ if config.get('server', 'coin') == 'litecoin':
+ self.prepend = 'EL_'
+ self.nick = self.prepend + self.nick
def get_peers(self):
return self.peers.values()
def getname(self):
- s = ''
+ s = 'v' + VERSION + ' '
if self.stratum_tcp_port:
s += 't' + self.stratum_tcp_port + ' '
if self.stratum_http_port:
s += 'h' + self.stratum_http_port + ' '
+ if self.stratum_tcp_port:
+ s += 's' + self.stratum_tcp_ssl_port + ' '
+ if self.stratum_http_port:
+ s += 'g' + self.stratum_http_ssl_port + ' '
return s
try:
s = socket.socket()
s.connect(('irc.freenode.net', 6667))
+ except:
+ time.sleep(10)
+ continue
+
+ try:
s.send('USER electrum 0 * :' + self.host + ' ' + ircname + '\n')
- s.send('NICK E_' + self.nick + '\n')
+ s.send('NICK ' + self.nick + '\n')
s.send('JOIN #electrum\n')
sf = s.makefile('r', 0)
t = 0
elif '353' in line: # answer to /names
k = line.index('353')
for item in line[k+1:]:
- if item[0:2] == 'E_':
+ if item.startswith(self.prepend):
s.send('WHO %s\n'%item)
elif '352' in line: # answer to /who
# warning: this is a horrible hack which apparently works
result = self.get_peers()
elif method == 'server.version':
- result = 'ok'
+ result = VERSION
elif method == 'server.stop':
self.shared.stop()
"subscriptions":len(s.subscriptions)},
self.dispatcher.request_dispatcher.get_sessions())
+ elif method == 'server.cache':
+ p = self.dispatcher.request_dispatcher.processors['blockchain']
+ result = len(repr(p.store.tx_cache))
+
elif method == 'server.load':
p = self.dispatcher.request_dispatcher.processors['blockchain']
result = p.queue.qsize()