Author

Topic: Skipping first block of SHA-256 (Read 979 times)

newbie
Activity: 16
Merit: 0
April 08, 2013, 03:05:53 PM
#4
Thanks. midstate was the key word to search for. I guess it was so obvious that it was (at least at one point) returned by the getwork function.  Smiley
hero member
Activity: 675
Merit: 513
April 08, 2013, 12:27:40 PM
#3
Since the nonce is part of the second block of the first (inner) call to SHA-256, it seems like an obvious optimization to only re-calculate the whole hash if new blocks or transactions come in. Is this practice currently being employed in mining software?
Yes. The hash of the first part is the "midstate".
hero member
Activity: 826
Merit: 1001
April 08, 2013, 03:52:54 AM
#2
simplified:
nonce is part of data.
data leads to hash1 in call to runhash1.
hash1 leads to hash in call to runhash2. (runhash1 and runhash2 are the same method: runhash)
potential valid block if hash[7] is zero.

Code:
		runhash1(hash1, data, midstate);
runhash2(hash, hash1, sha256_init_state);

how would you like to optimize this ?
newbie
Activity: 16
Merit: 0
April 08, 2013, 12:32:32 AM
#1
Since the nonce is part of the second block of the first (inner) call to SHA-256, it seems like an obvious optimization to only re-calculate the whole hash if new blocks or transactions come in. Is this practice currently being employed in mining software?
Jump to: