diff --git a/2_bitcoin_mining/bitcoin_mining.py b/2_bitcoin_mining/bitcoin_mining.py index f2a20c1..e2b41f9 100644 --- a/2_bitcoin_mining/bitcoin_mining.py +++ b/2_bitcoin_mining/bitcoin_mining.py @@ -1,11 +1,14 @@ from hashlib import sha256 + MAX_NONCE = 100000000000 + def SHA256(text): return sha256(text.encode("ascii")).hexdigest() + def mine(block_number, transactions, previous_hash, prefix_zeros): - prefix_str = '0'*prefix_zeros + prefix_str = "0" * prefix_zeros for nonce in range(MAX_NONCE): text = str(block_number) + transactions + previous_hash + str(nonce) new_hash = SHA256(text) @@ -15,16 +18,23 @@ def mine(block_number, transactions, previous_hash, prefix_zeros): raise BaseException(f"Couldn't find correct has after trying {MAX_NONCE} times") -if __name__=='__main__': - transactions=''' + +if __name__ == "__main__": + transactions = """ Dhaval->Bhavin->20, Mando->Cara->45 - ''' - difficulty=4 # try changing this to higher number and you will see it will take more time for mining as difficulty increases + """ + difficulty = 4 # try changing this to higher number and you will see it will take more time for mining as difficulty increases import time + start = time.time() print("start mining") - new_hash = mine(5,transactions,'0000000xa036944e29568d0cff17edbe038f81208fecf9a66be9a2b8321c6ec7', difficulty) + new_hash = mine( + 5, + transactions, + "0000000xa036944e29568d0cff17edbe038f81208fecf9a66be9a2b8321c6ec7", + difficulty, + ) total_time = str((time.time() - start)) print(f"end mining. Mining took: {total_time} seconds") - print(new_hash) \ No newline at end of file + print(new_hash)