6 #ifndef PIVX_LLMQ_QUORUMS_CHAINLOCKS_H
7 #define PIVX_LLMQ_QUORUMS_CHAINLOCKS_H
The block chain is a tree shaped structure starting with the genesis block at the root,...
Information about a peer.
std::string ToString() const
SERIALIZE_METHODS(CChainLockSig, obj)
virtual void HandleNewRecoveredSig(const CRecoveredSig &recoveredSig)
bool InternalHasConflictingChainLock(int nHeight, const uint256 &blockHash)
bool InternalHasChainLock(int nHeight, const uint256 &blockHash)
bool tryLockChainTipScheduled
uint256 lastSignedRequestId
bool AlreadyHave(const CInv &inv)
bool GetChainLockByHash(const uint256 &hash, CChainLockSig &ret)
CChainLocksHandler(CScheduler *_scheduler)
uint256 lastSignedMsgHash
CChainLockSig bestChainLockWithKnownBlock
bool HasChainLock(int nHeight, const uint256 &blockHash)
void DoInvalidateBlock(const CBlockIndex *pindex, bool activateBestChain)
void EnforceBestChainLock()
std::map< uint256, int64_t > seenChainLocks
const CBlockIndex * bestChainLockBlockIndex
uint256 bestChainLockHash
void ProcessMessage(CNode *pfrom, const std::string &strCommand, CDataStream &vRecv, CConnman &connman)
CChainLockSig GetBestChainLock()
static const int64_t CLEANUP_SEEN_TIMEOUT
void AcceptedBlockHeader(const CBlockIndex *pindexNew)
void UpdatedBlockTip(const CBlockIndex *pindexNew)
static const int64_t CLEANUP_INTERVAL
CChainLockSig bestChainLock
void ProcessNewChainLock(NodeId from, const CChainLockSig &clsig, const uint256 &hash)
bool HasConflictingChainLock(int nHeight, const uint256 &blockHash)
std::unique_ptr< CChainLocksHandler > chainLocksHandler