]> git.mxchange.org Git - core.git/blobdiff - contrib/chash/chash.php
Added counter for total restarts
[core.git] / contrib / chash / chash.php
index 77fc8949d6aaef7ba13507de7d393aeb5f7bd00e..acba7c98ea26b792523f46fe79546572708912c9 100644 (file)
@@ -5,7 +5,7 @@ define('START_TIME'            , microtime(TRUE));
 define('CHECK_POINT'           , 'chash.pos');
 
 $GLOBALS['block_size']          = 100;
-$GLOBALS['none_increment']      = (1 / pow(10, 12));
+$GLOBALS['none_increment']      = (1 / pow(10, 20));
 $GLOBALS['hash_algo']           = MHASH_RIPEMD320;
 $GLOBALS['flush_file_time']     = 30;
 $GLOBALS['restart_search_time'] = 1800;
@@ -13,6 +13,9 @@ $GLOBALS['restart_search_time'] = 1800;
 // Hashes per call
 $GLOBALS['hash_cycles'] = 3;
 
+// Total restarts
+$GLOBALS['total_restarts'] = 0;
+
 // Found hashes
 $GLOBALS['found_hashes'] = array(0 => array());
 
@@ -207,7 +210,19 @@ function flushCheckPointFile ($hash) {
        $timer = microtime(TRUE);
 
        // Flush data
-       file_put_contents(CHECK_POINT, $GLOBALS['total_blocks'] . ':' . $GLOBALS['total_reward'] . ':' . $GLOBALS['total_hashes'] . ':' . $GLOBALS['hash_cycles'] . ':' . base64_encode($GLOBALS['nonce']) . ':' . $hash . ':' . $GLOBALS['root_hash'] . ':' . base64_encode(gzcompress(serialize($GLOBALS['found_hashes']))));
+       file_put_contents(
+               CHECK_POINT,
+               $GLOBALS['total_blocks'] . ':' .
+               $GLOBALS['total_reward'] . ':' .
+               $GLOBALS['total_hashes'] . ':' .
+               $GLOBALS['total_found'] . ':' .
+               $GLOBALS['total_restarts'] . ':' .
+               $GLOBALS['hash_cycles'] . ':' .
+               base64_encode($GLOBALS['nonce']) . ':' .
+               $hash . ':' .
+               $GLOBALS['root_hash'] . ':' .
+               base64_encode(gzcompress(serialize($GLOBALS['found_hashes'])))
+       );
 
        // Set time
        $GLOBALS['time_flush'] = microtime(TRUE);
@@ -221,7 +236,7 @@ function flushCheckPointFile ($hash) {
  */
 function addFoundHash ($hash) {
        // Increment counter
-       $GLOBALS['current_hashes']++;
+       $GLOBALS['total_found']++;
 
        // Add hash to array
        array_push($GLOBALS['found_hashes'][$GLOBALS['total_blocks']], array(
@@ -236,7 +251,7 @@ function addFoundHash ($hash) {
        ));
 
        // Found hash:
-       print ('FOUND: hash=' . $hash . ',nonce=' . $GLOBALS['nonce'] . ',current_hashes=' . $GLOBALS['current_hashes'] . PHP_EOL);
+       print ('FOUND: hash=' . $hash . ',nonce=' . $GLOBALS['nonce'] . ',total_found=' . $GLOBALS['total_found'] . PHP_EOL);
 
        // Set time as a new hash was found
        $GLOBALS['found_time'] = microtime(TRUE);
@@ -265,8 +280,8 @@ function initNonce () {
  * @return     void
  */
 function setModulaHash ($hash) {
-       $GLOBALS['modula_hash']  = $hash;
-       $GLOBALS['sum_modula'] = calculateSumFromHash($GLOBALS['modula_hash']);
+       $GLOBALS['modula_hash'] = $hash;
+       $GLOBALS['sum_modula']  = calculateSumFromHash($GLOBALS['modula_hash']);
 }
 
 /*
@@ -291,7 +306,7 @@ $gensisHashes = array(
        // FlightGear - Fly free!
        multipleHashString('FlightGear - Fly free!'),
        // Quote from Linus Torwalds
-       multipleHashString('Your code is shit.. your argument is shit.'),
+       multipleHashString('Your code is shit. Your argument is shit.'),
 );
 
 // Calculate "modula hash" from 1st/4th and 2nd/3rd
@@ -327,8 +342,8 @@ print ('modulaHash=' . $GLOBALS['modula_hash'] . PHP_EOL);
 // Total reward + hashes
 $GLOBALS['total_reward']   = 0;
 $GLOBALS['total_hashes']   = 0;
+$GLOBALS['total_found']    = 0;
 $GLOBALS['total_blocks']   = 0;
-$GLOBALS['current_hashes'] = 0;
 $GLOBALS['found_time']     = microtime(TRUE);
 
 // Is the check point there?
@@ -340,19 +355,21 @@ if (is_readable(CHECK_POINT)) {
        $data = explode(':', $checkPoint);
 
        // Assert on count
-       assert(count($data) == 8);
+       assert(count($data) == 10);
 
        // 1st element is nonce, 2nd hash, 3rd found hashes
-       $GLOBALS['total_blocks'] = $data[0];
-       $GLOBALS['total_reward'] = $data[1];
-       $GLOBALS['total_hashes'] = $data[2];
-       $GLOBALS['hash_cycles']  = intval($data[3]);
-       $GLOBALS['nonce']        = base64_decode($data[4]);
-       $GLOBALS['root_hash']    = $data[6];
-       $GLOBALS['found_hashes'] = unserialize(gzuncompress(base64_decode($data[7])));
+       $GLOBALS['total_blocks']   = $data[0];
+       $GLOBALS['total_reward']   = $data[1];
+       $GLOBALS['total_hashes']   = $data[2];
+       $GLOBALS['total_found']    = $data[3];
+       $GLOBALS['total_restarts'] = $data[4];
+       $GLOBALS['hash_cycles']    = intval($data[5]);
+       $GLOBALS['nonce']          = base64_decode($data[7]);
+       $GLOBALS['root_hash']      = $data[8];
+       $GLOBALS['found_hashes']   = unserialize(gzuncompress(base64_decode($data[9])));
 
        // Set modula hash
-       setModulaHash($data[5]);
+       setModulaHash($data[6]);
 } else {
        // Create nonce (small)
        initNonce();
@@ -430,6 +447,12 @@ while (TRUE) {
 
                        // Is the last found time to far away?
                        if ($testTime >= $GLOBALS['restart_search_time']) {
+                               // Count up restart
+                               $GLOBALS['total_restarts']++;
+
+                               // Output message
+                               print('total_restarts=' . $GLOBALS['total_restarts'] . ' - Restarting ...');
+
                                // Count all root (genesis) hashes
                                $rootHashes = array();
                                foreach ($GLOBALS['found_hashes'] as $block) {