Add checkpoint
[novacoin.git] / src / kernel.cpp
index a8f4f5d..bd8c357 100644 (file)
@@ -31,13 +31,16 @@ typedef std::map<int, unsigned int> MapModifierCheckpoints;
 // Hard checkpoints of stake modifiers to ensure they are deterministic
 static std::map<int, unsigned int> mapStakeModifierCheckpoints =
     boost::assign::map_list_of
-        ( 0, 0x0e00670bu )
+        (     0, 0x0e00670bu )
         ( 12661, 0x5d84115du )
         (143990, 0x9c592c78u )
         (149000, 0x48f2bdc4u )
         (160000, 0x789df0f0u )
         (200000, 0x01ec1503u )
         (221047, 0x0b39ef50u )
+        (243100, 0xe928d83au )
+        (532000, 0x3e5c2b81u )
+        (561108, 0x9c1860b0u )
     ;
 
 // Hard checkpoints of stake modifiers to ensure they are deterministic (testNet)
@@ -162,13 +165,13 @@ static bool SelectBlockFromCandidates(vector<pair<int64_t, uint256> >& vSortedBy
         if (fSelected && hashSelection < hashBest)
         {
             hashBest = hashSelection;
-            *pindexSelected = (const CBlockIndex*) pindex;
+            *pindexSelected = pindex;
         }
         else if (!fSelected)
         {
             fSelected = true;
             hashBest = hashSelection;
-            *pindexSelected = (const CBlockIndex*) pindex;
+            *pindexSelected = pindex;
         }
     }
     if (fDebug && GetBoolArg("-printstakemodifier"))
@@ -434,9 +437,13 @@ bool ScanKernelForward(unsigned char *kernel, uint32_t nBits, uint32_t nInputTxT
     // TODO: custom threads amount
 
     uint32_t nThreads = boost::thread::hardware_concurrency();
+    if (nThreads == 0)
+    {
+       nThreads = 1;
+       printf("Warning: hardware_concurrency() failed in %s:%d\n", __FILE__, __LINE__);
+    }
     uint32_t nPart = (SearchInterval.second - SearchInterval.first) / nThreads;
 
-
     KernelWorker *workers = new KernelWorker[nThreads];
 
     boost::thread_group group;