I recently made a post on stack, Calculate hash rate in IOS, in hopes of deciphering how the hash rate is calculated when benchmarking performance. The reason I wanted to do this is to compare against the results that are presented in Is it Possible to Mine Cryptocurrencies with an iPhone? After days of hunting around on the internet, I've come to a conclusion that calculating the hash rate is not as straight forward as it seems.
I was under the impression, especially after reading How can I calculate how many hashes I generate per second?, Explaining Hash Rate Or Hash Power In Cryptocurrencies and How is hash rate of mining hardware calculated, that calculating the hash rate is done as follows:
Have collection of x number of messages (M) 80 bytes in size Loop through records, and calculate the sha256(sha256(M)) Divide the number of computed hashes against elapsed time # the result is hash rate ( in seconds, given your elapsed time is in s )
After doing so, I see results up to 24000 hashes per second, or 24KH/s. Obviously, this is alarming, as the reference article I am attempting to compare to, has these results:
The iPhone 6 has 25/30 Hash Rate (H/s)
The iPhone 8 55 H/s
The iPhone X (iPhone 10) 65 hashes per second
I later continued my hunt, and stumbled upon this Stack post how to calculate hash rate of your rig?, and the accepted answer mentions that the hash rate is something that is defined empirically. While I do not doubt the author, I now find it difficult to determine what hash rate really is. ( Does the "nonce" have any impact on calculating the hash rate? i.e Is the standard hash rate determined by calculating the number of times my machine can ensure that the hashed result begins with 3 ( or 5, or 7 ) leading zeros in 1 second? )
I want to compute a hash rate for my IOS device. What algorithm and algebraic expression should I use to calculate the hash rate, to be able to compare my results against other devices, like laptops and graphics cards?