X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=contrib%2Fchash%2Fchash.php;h=3ba7e162290e11879bf8d1f4101f50b15303f031;hp=5bd2893debf4e293d75e02ee62f50b5fc31e7e11;hb=0999ee54b25a8ad89490219953eb80f8bb11bbc5;hpb=8cda323d7322dba4365d201f95089e0a4019e71f diff --git a/contrib/chash/chash.php b/contrib/chash/chash.php index 5bd2893d..3ba7e162 100644 --- a/contrib/chash/chash.php +++ b/contrib/chash/chash.php @@ -1,6 +1,11 @@ = $sumModula) { + // Calculate new nonce + $nonce = calculateNonce($nonce); + + // And hash again + $nonceHash = doubleHashString($modulaHash . $nonce); + + // Calculate sums + $sumNonce = calculateSumFromHash($nonceHash); + + // Time spend in loop + $testTime = abs(microtime(TRUE) - $timeDisplay); + + // Calculate hashrate/sec + $hashrate = 1 / $testTime * $iterSecond * 2; + + // Only every second + if ($testTime >= 1) { + // Display hash rate + print ('hashrate=' . $hashrate . ' hashes/sec.' . PHP_EOL); + + // Reset timer + $timeDisplay = microtime(TRUE); + $iterSecond = 0; + } // END - if + + // Next round + $iter++; + $iterSecond++; + //print ('nonce=' . $nonce . ',iter=' . $iter . PHP_EOL); + //print ('nonceHash=' . $nonceHash . PHP_EOL); + //print ('sumNonce=' . $sumNonce . PHP_EOL); + //print ('sumModula=' . $sumModula . PHP_EOL); + } // END - while + + // If the iteration is zero, then no hash is found + if ($iter == 0) { + // Bad block found + $timeBadHashes += abs(microtime(TRUE) - $timeHash); + + // And next round + //print('bad:nonce=' . $nonce . PHP_EOL); + + // Nothing found, so calculate new nonce + $nonce = calculateNonce($nonce); + continue; + } // END - if + + // Add amount of hashes to block (double-hash) + $hashesPerBlock += $iter * 2 + 2; + + // Found hash: + print ('FOUND: nonceHash=' . $nonceHash .',iter=' . $iter . PHP_EOL); + + // Use nonceHash as next modula hash + $modulaHash = $nonceHash; + } // END - while + + // Time taken for one block + $timeBlock = abs(microtime(TRUE) - $timeBlock); + //print ('calculateSumFromHash(modulaHash)=' . calculateSumFromHash($modulaHash) . PHP_EOL); + //print ('calculateSumFromHash(nonceHash)=' . calculateSumFromHash($nonceHash) . PHP_EOL); + + // Calculate reward + $reward = abs($timeBlock - $timeBadHashes) / $hashrate * $hashesPerBlock / BLOCK_SIZE * 1000; + //print ('timeBlock=' . $timeBlock . ',timeBadHashes=' . $timeBadHashes . ',hashesPerBlock=' . $hashesPerBlock .',reward=' . $reward . PHP_EOL); + + // Block completed + $totalHashes += $hashesPerBlock; + $totalBlocks++; + $hashesPerBlock = 0; + + // Calculate new nonce + $nonce = calculateNonce($nonce); + + // Add reward to total + $totalReward += $reward; + + // Calculate average block value + $blockValue = $totalReward / $totalBlocks * $totalHashes / (BLOCK_SIZE * $totalBlocks); + + // Calculate reward per hour (= 3600 seconds) + $rewardPerHour = $totalReward / abs(microtime(TRUE) - START_TIME) * 3600; + + print ('totalReward=' . $totalReward . ',blockValue=' . $blockValue . ',rewardPerHour=' . $rewardPerHour . PHP_EOL); +} // END - while + // [EOF] ?>