46 bool mutation =
false;
47 while (hashes.size() > 1) {
49 for (
size_t pos = 0; pos + 1 < hashes.size(); pos += 2) {
50 if (hashes[pos] == hashes[pos + 1]) mutation =
true;
53 if (hashes.size() & 1) {
54 hashes.push_back(hashes.back());
56 SHA256D64(hashes[0].begin(), hashes[0].begin(), hashes.size() / 2);
57 hashes.resize(hashes.size() / 2);
59 if (mutated) *mutated = mutation;
60 if (hashes.size() == 0)
return uint256();
void SHA256D64(unsigned char *out, const unsigned char *in, size_t blocks)
Compute multiple double-SHA256's of 64-byte blobs.