Update CMakeLists.txt - play with openssl
[novacoin.git] / src / checkpoints.h
index a8e7ecb..d5c0b06 100644 (file)
@@ -4,11 +4,15 @@
 #ifndef BITCOIN_CHECKPOINT_H
 #define  BITCOIN_CHECKPOINT_H
 
-#include <map>
-#include "net.h"
 #include "util.h"
+#include "serialize.h"
+#include "sync.h"
+#include "uint256.h"
+
+#include <map>
 
-#define CHECKPOINT_MAX_SPAN (60 * 60 * 4) // max 4 hours before latest block
+// max 1 hour before latest block
+static const int64_t CHECKPOINT_MAX_SPAN = nOneHour;
 
 #ifdef WIN32
 #undef STRICT
@@ -16,9 +20,9 @@
 #undef ADVISORY
 #endif
 
-class uint256;
 class CBlockIndex;
 class CSyncCheckpoint;
+class CNode;
 
 /** Block-chain checkpoints are compiled-in sanity checks.
  * They are updated every release or three.
@@ -39,6 +43,9 @@ namespace Checkpoints
     // Returns true if block passes checkpoint checks
     bool CheckHardened(int nHeight, const uint256& hash);
 
+    // Returns true if block passes banlist checks
+    bool CheckBanned(const uint256 &nHash);
+
     // Return conservative estimate of total number of blocks, 0 if unknown
     int GetTotalBlocksEstimate();
 
@@ -46,7 +53,7 @@ namespace Checkpoints
     CBlockIndex* GetLastCheckpoint(const std::map<uint256, CBlockIndex*>& mapBlockIndex);
 
     // Returns last checkpoint timestamp
-    int GetLastCheckpointTime();
+    unsigned int GetLastCheckpointTime();
 
     extern uint256 hashSyncCheckpoint;
     extern CSyncCheckpoint checkpointMessage;
@@ -64,7 +71,6 @@ namespace Checkpoints
     bool SetCheckpointPrivKey(std::string strPrivKey);
     bool SendSyncCheckpoint(uint256 hashCheckpoint);
     bool IsMatureSyncCheckpoint();
-    bool IsSyncCheckpointTooOld(unsigned int nSeconds);
 }
 
 // ppcoin: synchronized checkpoint
@@ -97,11 +103,6 @@ public:
             nVersion,
             hashCheckpoint.ToString().c_str());
     }
-
-    void print() const
-    {
-        printf("%s", ToString().c_str());
-    }
 };
 
 class CSyncCheckpoint : public CUnsignedSyncCheckpoint
@@ -113,10 +114,7 @@ public:
     std::vector<unsigned char> vchMsg;
     std::vector<unsigned char> vchSig;
 
-    CSyncCheckpoint()
-    {
-        SetNull();
-    }
+    CSyncCheckpoint();
 
     IMPLEMENT_SERIALIZE
     (
@@ -124,35 +122,10 @@ public:
         READWRITE(vchSig);
     )
 
-    void SetNull()
-    {
-        CUnsignedSyncCheckpoint::SetNull();
-        vchMsg.clear();
-        vchSig.clear();
-    }
-
-    bool IsNull() const
-    {
-        return (hashCheckpoint == 0);
-    }
-
-    uint256 GetHash() const
-    {
-        return SerializeHash(*this);
-    }
-
-    bool RelayTo(CNode* pnode) const
-    {
-        // returns true if wasn't already sent
-        if (pnode->hashCheckpointKnown != hashCheckpoint)
-        {
-            pnode->hashCheckpointKnown = hashCheckpoint;
-            pnode->PushMessage("checkpoint", *this);
-            return true;
-        }
-        return false;
-    }
-
+    void SetNull();
+    bool IsNull() const;
+    uint256 GetHash() const;
+    bool RelayTo(CNode* pnode) const;
     bool CheckSignature();
     bool ProcessSyncCheckpoint(CNode* pfrom);
 };