X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fcheckpoints.h;h=a2b9731e0a62d8a0e2eb73c3fbc6456ed2a2ef50;hb=HEAD;hp=a8e7ecb647842e1b7eac61d88a6f7b50782acd70;hpb=89dd133da730890f79ee7275c4d97a56e2e084d2;p=novacoin.git diff --git a/src/checkpoints.h b/src/checkpoints.h index a8e7ecb..d5c0b06 100644 --- a/src/checkpoints.h +++ b/src/checkpoints.h @@ -4,11 +4,15 @@ #ifndef BITCOIN_CHECKPOINT_H #define BITCOIN_CHECKPOINT_H -#include -#include "net.h" #include "util.h" +#include "serialize.h" +#include "sync.h" +#include "uint256.h" + +#include -#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& 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 vchMsg; std::vector 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); };