How do you hash data for mining?

I was examining the block hashing algorithm and I tried to hash some blocks with my c++ sha256 to check results.

The hashes were wrong all the time so I thought I couldn’t build the block header properly but then I took the data from wiki and concatenated the values from the example and the result is still wrong (I tried it also in online sha-256 calculator so the function is ok).

Of course I must be missing something like coding but if I understand it right, sha is a function where you give a message and it takes the ascii codes of the message and does the math operations on these codes. But how can I pass a block header as a string? Or do I have to find an implementation of sha that interpretes the input differently?

I’m sorry, I know it’s a noob question but this doesn’t seem so obvious to me.


The code is quite complex, but what I have at this moment is basically a made up block header that I packed in a string and for the example from the wiki page I mentioned above the string looks like


I also have a sha function that takes a string as an input so the hash should be


but it’s


I also checked it on so I think the code is ok but I must just be missing something here.

Continue reading How do you hash data for mining?