Hello,

I've added a couple of new chapters to the "Programming Blockchains

Step-by-Step from Scratch (Zero)" [1] and starting with (crypto)

hashes...

What's News? Mining, mining, mining! What's your hash rate? Let's

find out and use the "stand-alone" version of the by now "classic"

compute_hash_with_proof_of_work function:

def compute_hash_with_proof_of_work( data, difficulty='00' )

nonce = 0

loop do

hash = Digest::SHA256.hexdigest( "#{nonce}#{data}" )

if hash.start_with?( difficulty )

return [nonce,hash] ## bingo! proof of work if hash starts

w/ leading zeros (00)

else

nonce += 1 ## keep trying (and trying and trying)

end

end # loop

end # method compute_hash_with_proof_of_work

Let's try (run) benchmarks for the difficulty from 0 (4 bits) to

0000000 (28 bits)...

On my "low-end" home computer the hash rate per second is...

about 100 000. What's yours?

Cheers. Prost. Happy blockchaining and mining with ruby.

[1] https://github.com/openblockchains/programming-blockchains-step-by-step#mining-mining-mining