Let’s review the concepts of nonce and proof of work. In this exercise, we will implement an example that demonstrates the difficulty of the math problem that helps protect the blockchain from potential attackers.
Instructions
Import the sha256
hash function from the Python hashlib
library
Create a variable called difficulty
and assign it a value of 2. This sets the number of leading zeros that the hash we find must have.
Create another variable called nonce
and assign it to a value of 0. This will be our default starting value.
Using the .str()
method, cast nonce
and new_transactions
into strings. Pass the two strings into the sha256 function.
Store the resulting hash value into a variable called proof
and print it out!
Note: Use the .hexdigest()
method over the resulting sha256 function to properly store the hash value.
Come up with some code that increments the nonce
value until the generated hash has difficulty
number of leading zeros. Once the desired proof has been found, store it in a variable called final_proof
and print it out to see the correct hash!