X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=contrib%2Fchash%2Fchash.php;h=6705b960e81887b67cc17d2974c6599fb32a26c8;hp=f4003c8a60087bc8234c44508a8d4d8a55259170;hb=0c60cb253ff32f11b35ea146777e29727d21c410;hpb=a0d5f5c2cdbd0adfc4be143d3c4f4a1f3798e679 diff --git a/contrib/chash/chash.php b/contrib/chash/chash.php index f4003c8a..6705b960 100644 --- a/contrib/chash/chash.php +++ b/contrib/chash/chash.php @@ -2,10 +2,13 @@ error_reporting(E_ALL | E_STRICT); define('HASH_ALGO', MHASH_RIPEMD320); -define('BLOCK_SIZE', 1000); -define('NONCE_INCREMENT', 0.0000000001); +define('BLOCK_SIZE', 100); +define('NONCE_INCREMENT', 0.0000000000000001); define('START_TIME', microtime(TRUE)); +// Found hashes +$foundHashes = array(); + /** * Continued-hashing * @@ -252,7 +255,7 @@ while (TRUE) { // Time waited for a good block again (no iteration) $timeBadHashes = 0; - while ($hashesPerBlock <= BLOCK_SIZE) { + while (count($foundHashes) <= BLOCK_SIZE) { // Create hash from modulaHash ("genesis hash") and nonce $nonceHash = doubleHashString($modulaHash . $nonce); @@ -275,7 +278,6 @@ while (TRUE) { // Calculate sums $sumNonce = calculateSumFromHash($nonceHash); - //print('hashesPerBlock=' . $hashesPerBlock . PHP_EOL); // Time spend in loop $testTime = abs(microtime(TRUE) - $timeDisplay); @@ -286,7 +288,7 @@ while (TRUE) { // Only every second if ($testTime >= 1) { // Display hash rate - print ('hashesPerBlock=' . $hashesPerBlock . ',hashrate=' . $hashrate . ' hashes/sec.' . PHP_EOL); + print ('hashrate=' . $hashrate . ' hashes/sec,iterSecond=' . $iterSecond . ' iterations/sec' . PHP_EOL); // Reset timer $timeDisplay = microtime(TRUE); @@ -302,24 +304,25 @@ while (TRUE) { //print ('sumModula=' . $sumModula . PHP_EOL); } // END - while - // Add amount of hashes to block (double-hash) - $hashesPerBlock += $iter * 2 + 2; - // If the iteration is zero, then no hash is found if ($iter == 0) { - // Bad block found + // Bad hash found $timeBadHashes += abs(microtime(TRUE) - $timeHash); // And next round - //print('bad:nonce=' . $nonce . PHP_EOL); + //print('BAD:nonce=' . $nonce . PHP_EOL); // Nothing found, so calculate new nonce $nonce = calculateNonce($nonce); continue; } // END - if + // Add amount of hashes per block (double-hash) + $hashesPerBlock += $iter * 2 + 2; + array_push($foundHashes, $nonceHash); + // Found hash: - //print ('nonceHash=' . $nonceHash .',iter=' . $iter . PHP_EOL); + print ('FOUND: nonceHash=' . $nonceHash .',nonce=' . $nonce . ',iter=' . $iter . PHP_EOL); // Use nonceHash as next modula hash $modulaHash = $nonceHash; @@ -327,17 +330,16 @@ while (TRUE) { // 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); + print ('timeBlock=' . $timeBlock . ',timeBadHashes=' . $timeBadHashes . ',hashesPerBlock=' . $hashesPerBlock .',reward=' . $reward . PHP_EOL); // Block completed $totalHashes += $hashesPerBlock; $totalBlocks++; $hashesPerBlock = 0; + $foundHashes = array(); // Calculate new nonce $nonce = calculateNonce($nonce);