X-Git-Url: https://git.novaco.in/?p=stratum-mining.git;a=blobdiff_plain;f=scripts%2Fblocknotify.sh;h=891b9db515fd8d9cf80c84f68917cff28ea43053;hp=0311f1a0266064c9f977f92468363bfde81bb52a;hb=6beede251a896ae773fb6949189bb249832a1bd5;hpb=1e086b3786e3708cb71205962d9db1684f2271f2 diff --git a/scripts/blocknotify.sh b/scripts/blocknotify.sh index 0311f1a..891b9db 100755 --- a/scripts/blocknotify.sh +++ b/scripts/blocknotify.sh @@ -2,6 +2,7 @@ # Send notification to Stratum mining instance on localhost that there's new bitcoin block # You can use this script directly as an variable for -blocknotify argument: # ./bitcoind -blocknotify="blocknotify.sh --password admin_password" +# This is also very basic example how to use Stratum protocol in native Python import socket import json @@ -24,21 +25,26 @@ if args.password == None: message = {'id': 1, 'method': 'mining.update_block', 'params': [args.password]} -s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) -s.connect((args.host, args.port)) -s.sendall(json.dumps(message)+"\n") -data = s.recv(16000) -s.close() +try: + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.connect((args.host, args.port)) + s.sendall(json.dumps(message)+"\n") + data = s.recv(16000) + s.close() +except IOError: + print "blocknotify: Cannot connect to the pool" + sys.exit() for line in data.split("\n"): if not line.strip(): + # Skip last line which doesn't contain any message continue message = json.loads(line) if message['id'] == 1: if message['result'] == True: - print "blocknotify done in %.03f sec" % (time.time() - start) + print "blocknotify: done in %.03f sec" % (time.time() - start) else: - print "Error during request:", message['error'][1] + print "blocknotify: Error during request:", message['error'][1] else: - print "Unexpected message from the server:", message \ No newline at end of file + print "blocknotify: Unexpected message from the server:", message