6 #ifndef PIVX_LLMQ_QUORUMS_BLOCKPROCESSOR_H
7 #define PIVX_LLMQ_QUORUMS_BLOCKPROCESSOR_H
The block chain is a tree shaped structure starting with the genesis block at the root,...
Information about a peer.
Capture information about block/transaction validation.
CQuorumBlockProcessor(CEvoDB &_evoDb)
bool GetMinableCommitmentByHash(const uint256 &commitmentHash, CFinalCommitment &ret)
RecursiveMutex minableCommitmentsCs
std::map< Consensus::LLMQType, unordered_lru_cache< uint256, bool, StaticSaltedHasher > > mapHasMinedCommitmentCache GUARDED_BY(minableCommitmentsCs)
bool IsCommitmentRequired(Consensus::LLMQType llmqType, int nHeight)
bool ProcessCommitment(int nHeight, const uint256 &blockHash, const CFinalCommitment &qc, CValidationState &state, bool fJustCheck)
std::map< uint256, CFinalCommitment > minableCommitments
bool HasBetterMinableCommitment(const CFinalCommitment &qc)
bool HasMinableCommitment(const uint256 &hash)
bool UndoBlock(const CBlock &block, const CBlockIndex *pindex)
static uint256 GetQuorumBlockHash(Consensus::LLMQType llmqType, int nHeight)
std::map< std::pair< uint8_t, uint256 >, uint256 > minableCommitmentsByQuorum
bool ProcessBlock(const CBlock &block, const CBlockIndex *pindex, CValidationState &state, bool fJustCheck)
std::map< Consensus::LLMQType, std::vector< const CBlockIndex * > > GetMinedAndActiveCommitmentsUntilBlock(const CBlockIndex *pindex)
std::vector< const CBlockIndex * > GetMinedCommitmentsUntilBlock(Consensus::LLMQType llmqType, const CBlockIndex *pindex, size_t maxCount)
bool GetMinableCommitment(Consensus::LLMQType llmqType, int nHeight, CFinalCommitment &ret)
bool GetMinedCommitment(Consensus::LLMQType llmqType, const uint256 &quorumHash, CFinalCommitment &ret, uint256 &retMinedBlockHash)
static bool GetCommitmentsFromBlock(const CBlock &block, const CBlockIndex *pindex, std::map< Consensus::LLMQType, CFinalCommitment > &ret, CValidationState &state)
bool HasMinedCommitment(Consensus::LLMQType llmqType, const uint256 &quorumHash)
static bool IsMiningPhase(Consensus::LLMQType llmqType, int nHeight)
void AddAndRelayMinableCommitment(const CFinalCommitment &fqc, uint256 *cached_fqc_hash=nullptr)
void ProcessMessage(CNode *pfrom, CDataStream &vRecv, int &retMisbehavingScore)
bool GetMinableCommitmentTx(Consensus::LLMQType llmqType, int nHeight, CTransactionRef &ret)
std::unique_ptr< CQuorumBlockProcessor > quorumBlockProcessor
std::shared_ptr< const CTransaction > CTransactionRef