X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fcheckpoints.h;h=a2b9731e0a62d8a0e2eb73c3fbc6456ed2a2ef50;hb=510a23a2c838245cd4681ed0b4fbce48e8ebf506;hp=ff815c8650615495db127620e2b9431e1b1be31b;hpb=0561bbd1c69263dceb24ffacf850788e6e961a13;p=novacoin.git diff --git a/src/checkpoints.h b/src/checkpoints.h index ff815c8..a2b9731 100644 --- a/src/checkpoints.h +++ b/src/checkpoints.h @@ -1,16 +1,21 @@ // Copyright (c) 2009-2012 The Bitcoin developers -// Copyright (c) 2011-2012 The PPCoin developers // Distributed under the MIT/X11 software license, see the accompanying // file COPYING or http://www.opensource.org/licenses/mit-license.php. #ifndef BITCOIN_CHECKPOINT_H #define BITCOIN_CHECKPOINT_H #include -#include "net.h" #include "util.h" +#include "net.h" + +// max 1 hour before latest block +static const int64_t CHECKPOINT_MAX_SPAN = nOneHour; -#define STAKE_MIN_AGE (60 * 60 * 24) // minimum age for coin age -#define CHECKPOINT_MIN_SPAN (60 * 60 * 4) // 4 hours checkpoint +#ifdef WIN32 +#undef STRICT +#undef PERMISSIVE +#undef ADVISORY +#endif class uint256; class CBlockIndex; @@ -21,15 +26,32 @@ class CSyncCheckpoint; */ namespace Checkpoints { + /** Checkpointing mode */ + enum CPMode + { + // Scrict checkpoints policy, perform conflicts verification and resolve conflicts + STRICT = 0, + // Advisory checkpoints policy, perform conflicts verification but don't try to resolve them + ADVISORY = 1, + // Permissive checkpoints policy, don't perform any checking + PERMISSIVE = 2 + }; + // 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(); // Returns last CBlockIndex* in mapBlockIndex that is a checkpoint CBlockIndex* GetLastCheckpoint(const std::map& mapBlockIndex); + // Returns last checkpoint timestamp + unsigned int GetLastCheckpointTime(); + extern uint256 hashSyncCheckpoint; extern CSyncCheckpoint checkpointMessage; extern uint256 hashInvalidCheckpoint; @@ -43,6 +65,9 @@ namespace Checkpoints bool WantedByPendingSyncCheckpoint(uint256 hashBlock); bool ResetSyncCheckpoint(); void AskForPendingSyncCheckpoint(CNode* pfrom); + bool SetCheckpointPrivKey(std::string strPrivKey); + bool SendSyncCheckpoint(uint256 hashCheckpoint); + bool IsMatureSyncCheckpoint(); } // ppcoin: synchronized checkpoint @@ -75,17 +100,13 @@ public: nVersion, hashCheckpoint.ToString().c_str()); } - - void print() const - { - printf("%s", ToString().c_str()); - } }; class CSyncCheckpoint : public CUnsignedSyncCheckpoint { public: static const std::string strMasterPubKey; + static std::string strMasterPrivKey; std::vector vchMsg; std::vector vchSig;