From fef65ed20544718a3319f24b7c80f63738ac0ce0 Mon Sep 17 00:00:00 2001 From: Landon Fowles Date: Tue, 26 Nov 2013 23:11:17 -0600 Subject: [PATCH] Giving up my secret edge, use multiprocessing instead of threading for spawning miners. This change makes a huge difference in hashes per second, I get up to 400k per core on an i7-3770. --- miner.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/miner.py b/miner.py index 5336a85..295519d 100644 --- a/miner.py +++ b/miner.py @@ -4,7 +4,9 @@ import random import string import sqlite3 -import threading +import multiprocessing + +NUM_CPUS=8 def check_difficulty(): db = sqlite3.connect("nodes.db") @@ -29,7 +31,7 @@ def check_difficulty(): def check_coin(data): node = sqlite3.connect("nodes.db") - node = node.execute("SELECT ip, port FROM data WHERE relay=?", [True]) + node = node.execute("SELECT ip, port FROM data WHERE relay=?", [True]) node = node.fetchall() random.shuffle(node) for x in node: @@ -55,7 +57,7 @@ def mine(): while True: # print starter+str(on) c = hashlib.sha512(starter+str(on)).hexdigest() - startswith = "1"*check['difficulty'] + startswith = "1"*check['difficulty'] if c.startswith(startswith): print c wall = sqlite3.connect("wallet.db") @@ -66,6 +68,6 @@ def mine(): else: on += 1 -for x in range(15): - threading.Thread(target=mine).start() +for x in range(NUM_CPUS): + multiprocessing.Process(target=mine).start() #mine()