Compare commits
3 Commits
094f8d464d
...
ef1d2252e3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ef1d2252e3 | ||
|
|
41fd76758d | ||
|
|
29a68754ef |
@ -32,6 +32,8 @@ elif settings.COINDAEMON_ALGO == 'max':
|
|||||||
from sha3 import sha3_256
|
from sha3 import sha3_256
|
||||||
elif settings.COINDAEMON_ALGO == 'keccak':
|
elif settings.COINDAEMON_ALGO == 'keccak':
|
||||||
import sha3
|
import sha3
|
||||||
|
elif settings.COINDAEMON_ALGO == 'blake':
|
||||||
|
import blake_hash
|
||||||
else:
|
else:
|
||||||
log.debug("########################################### Loading SHA256 Support ######################################################")
|
log.debug("########################################### Loading SHA256 Support ######################################################")
|
||||||
|
|
||||||
@ -157,6 +159,8 @@ class CTransaction(object):
|
|||||||
def __init__(self):
|
def __init__(self):
|
||||||
if settings.COINDAEMON_ALGO == 'max':
|
if settings.COINDAEMON_ALGO == 'max':
|
||||||
self.sha3 = None
|
self.sha3 = None
|
||||||
|
elif settings.COINDAEMON_ALGO == 'blake':
|
||||||
|
self.blake = None
|
||||||
if settings.COINDAEMON_Reward == 'POW':
|
if settings.COINDAEMON_Reward == 'POW':
|
||||||
self.nVersion = 1
|
self.nVersion = 1
|
||||||
if settings.COINDAEMON_TX == 'yes':
|
if settings.COINDAEMON_TX == 'yes':
|
||||||
@ -242,6 +246,8 @@ class CBlock(object):
|
|||||||
self.quark = None
|
self.quark = None
|
||||||
elif settings.COINDAEMON_ALGO == 'max':
|
elif settings.COINDAEMON_ALGO == 'max':
|
||||||
self.max = None
|
self.max = None
|
||||||
|
elif settings.COINDAEMON_ALGO == 'blake':
|
||||||
|
self.blake = None
|
||||||
elif settings.COINDAEMON_ALGO == 'keccak':
|
elif settings.COINDAEMON_ALGO == 'keccak':
|
||||||
self.sha3 = None
|
self.sha3 = None
|
||||||
else: pass
|
else: pass
|
||||||
@ -311,6 +317,18 @@ class CBlock(object):
|
|||||||
r.append(struct.pack("<I", self.nNonce))
|
r.append(struct.pack("<I", self.nNonce))
|
||||||
self.max = uint256_from_str(sha3_256(''.join(r)).digest())
|
self.max = uint256_from_str(sha3_256(''.join(r)).digest())
|
||||||
return self.max
|
return self.max
|
||||||
|
elif settings.COINDAEMON_ALGO == 'blake':
|
||||||
|
def calc_blake(self):
|
||||||
|
if self.blake is None:
|
||||||
|
r = []
|
||||||
|
r.append(struct.pack("<i", self.nVersion))
|
||||||
|
r.append(ser_uint256(self.hashPrevBlock))
|
||||||
|
r.append(ser_uint256(self.hashMerkleRoot))
|
||||||
|
r.append(struct.pack("<I", self.nTime))
|
||||||
|
r.append(struct.pack("<I", self.nBits))
|
||||||
|
r.append(struct.pack("<I", self.nNonce))
|
||||||
|
self.blake = uint256_from_str(blake_hash.getPoWHash(''.join(r)).digest())
|
||||||
|
return self.blake
|
||||||
elif settings.COINDAEMON_ALGO == 'keccak':
|
elif settings.COINDAEMON_ALGO == 'keccak':
|
||||||
def calc_sha3(self):
|
def calc_sha3(self):
|
||||||
if self.sha3 is None:
|
if self.sha3 is None:
|
||||||
@ -350,6 +368,8 @@ class CBlock(object):
|
|||||||
self.calc_quark()
|
self.calc_quark()
|
||||||
elif settings.COINDAEMON_ALGO == 'max':
|
elif settings.COINDAEMON_ALGO == 'max':
|
||||||
self.calc_max()
|
self.calc_max()
|
||||||
|
elif settings.COINDAEMON_ALGO == 'blake':
|
||||||
|
self.calc_blake()
|
||||||
elif settings.COINDAEMON_ALGO == 'keccak':
|
elif settings.COINDAEMON_ALGO == 'keccak':
|
||||||
self.calc_sha3()
|
self.calc_sha3()
|
||||||
else:
|
else:
|
||||||
@ -366,6 +386,9 @@ class CBlock(object):
|
|||||||
elif settings.COINDAEMON_ALGO == 'max':
|
elif settings.COINDAEMON_ALGO == 'max':
|
||||||
if self.max > target:
|
if self.max > target:
|
||||||
return False
|
return False
|
||||||
|
elif settings.COINDAEMON_ALGO == 'blake':
|
||||||
|
if self.blake > target:
|
||||||
|
return False
|
||||||
elif settings.COINDAEMON_ALGO == 'sha3':
|
elif settings.COINDAEMON_ALGO == 'sha3':
|
||||||
if self.sha3 > target:
|
if self.sha3 > target:
|
||||||
return False
|
return False
|
||||||
|
|||||||
@ -13,6 +13,8 @@ elif settings.COINDAEMON_ALGO == 'quark':
|
|||||||
elif settings.COINDAEMON_ALGO == 'max':
|
elif settings.COINDAEMON_ALGO == 'max':
|
||||||
import max_hash
|
import max_hash
|
||||||
from sha3 import sha3_256
|
from sha3 import sha3_256
|
||||||
|
elif settings.COINDAEMON_ALGO == 'blake':
|
||||||
|
import blake_ghash
|
||||||
elif settings.COINDAEMON_ALGO == 'skeinhash':
|
elif settings.COINDAEMON_ALGO == 'skeinhash':
|
||||||
import skeinhash
|
import skeinhash
|
||||||
elif settings.COINDAEMON_ALGO == 'keccak':
|
elif settings.COINDAEMON_ALGO == 'keccak':
|
||||||
@ -158,8 +160,10 @@ class TemplateRegistry(object):
|
|||||||
diff1 = 0x0000ffff00000000000000000000000000000000000000000000000000000000
|
diff1 = 0x0000ffff00000000000000000000000000000000000000000000000000000000
|
||||||
elif settings.COINDAEMON_ALGO == 'quark':
|
elif settings.COINDAEMON_ALGO == 'quark':
|
||||||
diff1 = 0x000000ffff000000000000000000000000000000000000000000000000000000
|
diff1 = 0x000000ffff000000000000000000000000000000000000000000000000000000
|
||||||
elif settings.coindaemon_algo == 'max':
|
elif settings.COINDAEMON_ALGO == 'max':
|
||||||
diff1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
|
diff1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
|
||||||
|
elif settings.COINDAEMON_algo == 'blake':
|
||||||
|
diff1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
|
||||||
elif settings.COINDAEMON_ALGO == 'keccak':
|
elif settings.COINDAEMON_ALGO == 'keccak':
|
||||||
diff1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
|
diff1 = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000
|
||||||
else:
|
else:
|
||||||
@ -235,7 +239,7 @@ class TemplateRegistry(object):
|
|||||||
|
|
||||||
# 1. Build coinbase
|
# 1. Build coinbase
|
||||||
coinbase_bin = job.serialize_coinbase(extranonce1_bin, extranonce2_bin)
|
coinbase_bin = job.serialize_coinbase(extranonce1_bin, extranonce2_bin)
|
||||||
if settings.COINDAEMON_ALGO == 'max':
|
if settings.COINDAEMON_ALGO == 'max' or settings.COINDAEMON_ALGO == 'blake':
|
||||||
coinbase_hash = sha256(coinbase_bin).digest()
|
coinbase_hash = sha256(coinbase_bin).digest()
|
||||||
else:
|
else:
|
||||||
coinbase_hash = util.doublesha(coinbase_bin)
|
coinbase_hash = util.doublesha(coinbase_bin)
|
||||||
@ -257,6 +261,8 @@ class TemplateRegistry(object):
|
|||||||
elif settings.COINDAEMON_ALGO == 'max':
|
elif settings.COINDAEMON_ALGO == 'max':
|
||||||
hash_bin = max_hash.getPoWHash(''.join([ header_bin[i*4:i*4+4][::-1] for i in range(0, 20) ]))
|
hash_bin = max_hash.getPoWHash(''.join([ header_bin[i*4:i*4+4][::-1] for i in range(0, 20) ]))
|
||||||
hash_bin = sha3_256(''.join([ header_bin[i*4:i*4+4][::-1] for i in range(0, 20) ])).digest()[0:33]
|
hash_bin = sha3_256(''.join([ header_bin[i*4:i*4+4][::-1] for i in range(0, 20) ])).digest()[0:33]
|
||||||
|
elif settings.COINDAEMON_ALGO == 'blake':
|
||||||
|
hash_bin = blake_hash.getPoWHash(''.join([ header_bin[i*4:i*4+4][::-1] for i in range(0, 20) ]))#.digest()[0:33]
|
||||||
elif settings.COINDAEMON_ALGO == 'skeinhash':
|
elif settings.COINDAEMON_ALGO == 'skeinhash':
|
||||||
hash_bin = skeinhash.skeinhash(''.join([ header_bin[i*4:i*4+4][::-1] for i in range(0, 20) ]))
|
hash_bin = skeinhash.skeinhash(''.join([ header_bin[i*4:i*4+4][::-1] for i in range(0, 20) ]))
|
||||||
elif settings.COINDAEMON_ALGO == 'keccak':
|
elif settings.COINDAEMON_ALGO == 'keccak':
|
||||||
@ -300,6 +306,9 @@ class TemplateRegistry(object):
|
|||||||
if settings.COINDAEMON_ALGO == 'max':
|
if settings.COINDAEMON_ALGO == 'max':
|
||||||
block_hash_bin = sha3_256(''.join([ header_bin[i*4:i*4+4][::-1]
|
block_hash_bin = sha3_256(''.join([ header_bin[i*4:i*4+4][::-1]
|
||||||
for i in range(0, 20) ]) + str(int(ntime, 16))).hexdigest()
|
for i in range(0, 20) ]) + str(int(ntime, 16))).hexdigest()
|
||||||
|
elif settings.COINDAEMON_ALGO == 'blake':
|
||||||
|
block_hash_bin = blake_hash.getPoWHash(''.join([ header_bin[i*4:i*4+4][::-1]
|
||||||
|
for i in range(0, 20) ]) + str(int(ntime, 16))).hexdigest()
|
||||||
elif settings.COINDAEMON_ALGO == 'keccak':
|
elif settings.COINDAEMON_ALGO == 'keccak':
|
||||||
s = sha3.SHA3256()
|
s = sha3.SHA3256()
|
||||||
ntime1 = str(int(ntime, 16))
|
ntime1 = str(int(ntime, 16))
|
||||||
|
|||||||
@ -7,9 +7,11 @@ import settings
|
|||||||
import bitcoin_rpc
|
import bitcoin_rpc
|
||||||
from hashlib import sha256
|
from hashlib import sha256
|
||||||
|
|
||||||
if settings.COINDAEMON_ALGO == 'keccak':
|
if settings.COINDAEMON_ALGO == 'max' or settings.COINDAEMON_ALGO == 'keccak':
|
||||||
import sha3
|
import sha3
|
||||||
from sha3 import sha3_256
|
from sha3 import sha3_256
|
||||||
|
elif settings.COINDAEMON_ALGO == 'blake':
|
||||||
|
import blake_hash
|
||||||
|
|
||||||
|
|
||||||
def deser_string(f):
|
def deser_string(f):
|
||||||
@ -187,6 +189,8 @@ def address_to_pubkeyhash(addr):
|
|||||||
if settings.COINDAEMON_ALGO != 'max':
|
if settings.COINDAEMON_ALGO != 'max':
|
||||||
cksumB = doublesha(addr[:-4])[:4]
|
cksumB = doublesha(addr[:-4])[:4]
|
||||||
#TODO: We should clean this up so that it works with not Keccek implementations too.
|
#TODO: We should clean this up so that it works with not Keccek implementations too.
|
||||||
|
elif settings.COINDAEMON_ALcksumB = sha3_256(addr[:-4]).digest()[:4]GO == 'blake':
|
||||||
|
cksumB = blake_hash.getPoWHash(addr[:-4]).digest()[:4]
|
||||||
else:
|
else:
|
||||||
cksumB = sha3_256(addr[:-4]).digest()[:4]
|
cksumB = sha3_256(addr[:-4]).digest()[:4]
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user