mirror of
https://github.com/TheAlgorithms/Python.git
synced 2024-11-23 21:11:08 +00:00
Update proof_of_work.py
This commit is contained in:
parent
5d87a84ca0
commit
9403de6894
|
@ -1,12 +1,11 @@
|
|||
import hashlib
|
||||
import time
|
||||
|
||||
|
||||
def proof_of_work(difficulty: int) -> int:
|
||||
"""
|
||||
Simulates a Proof of Work mining process.
|
||||
|
||||
The miner must find a nonce such that the hash of the nonce starts
|
||||
The miner must find a nonce such that the hash of the nonce starts
|
||||
with a specific number of leading zeros (difficulty).
|
||||
|
||||
Args:
|
||||
|
@ -20,13 +19,11 @@ def proof_of_work(difficulty: int) -> int:
|
|||
>>> isinstance(result, int)
|
||||
True
|
||||
"""
|
||||
prefix = "0" * difficulty
|
||||
prefix = '0' * difficulty
|
||||
nonce = 0
|
||||
start = time.time() # Timing starts
|
||||
|
||||
while True:
|
||||
hash_result = hashlib.sha256(f"{nonce}".encode()).hexdigest()
|
||||
if hash_result.startswith(prefix):
|
||||
end = time.time() # Timing ends
|
||||
return nonce
|
||||
nonce += 1
|
||||
|
|
Loading…
Reference in New Issue
Block a user