initial commit
commit
a38f8cd312
@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import hashlib
|
||||
|
||||
DIFFICUTLY=6
|
||||
|
||||
|
||||
# block1_transactions="HEADER:nonce{}----DATA:1#2#3#4"
|
||||
block1_transactions="BL1#1#2#3#4"
|
||||
block2_transactions="BL2#6#7#8#9"
|
||||
|
||||
|
||||
def test_hash(hash, difficulty):
|
||||
|
||||
difficulty_str = ''
|
||||
for i in range(difficulty):
|
||||
difficulty_str = '0' + difficulty_str
|
||||
|
||||
print("Testing if hash starts with {}".format(difficulty_str))
|
||||
|
||||
if hash.startswith(difficulty_str):
|
||||
# print("We a found a block !")
|
||||
return True
|
||||
|
||||
|
||||
# print("Keep looking for new block !")
|
||||
return False
|
||||
|
||||
|
||||
|
||||
|
||||
def work_for_block(block_data, last_block_hash):
|
||||
nonce = 0
|
||||
|
||||
|
||||
|
||||
block_hash = ''
|
||||
|
||||
while True:
|
||||
|
||||
block = "HEADER:nonce{}--last_block:{}----DATA:{}".format(nonce,
|
||||
last_block_hash,
|
||||
block_data)
|
||||
blocksha = hashlib.sha256()
|
||||
blocksha.update(str.encode(block))
|
||||
block_hash = blocksha.hexdigest()
|
||||
if test_hash(block_hash, DIFFICUTLY):
|
||||
print("We found block {} with nonce {} and difficulty {}".format(block_hash, nonce, DIFFICUTLY))
|
||||
break
|
||||
else:
|
||||
nonce += 1
|
||||
print("BLK: {} Nonce: {}".format(block_data[0:3], nonce))
|
||||
|
||||
return block_hash
|
||||
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
block1 = work_for_block(block1_transactions, '0')
|
||||
block2 = work_for_block(block2_transactions, block1)
|
||||
|
||||
|
Loading…
Reference in New Issue