Dash Core Source Documentation (0.16.0.1)
Find detailed information regarding the Dash Core source code.
#include <quorums_instantsend.h>
Classes | |
struct | NonLockedTxInfo |
Private Attributes | |
CCriticalSection | cs |
CInstantSendDb | db |
std::thread | workThread |
CThreadInterrupt | workInterrupt |
std::unordered_set< uint256, StaticSaltedHasher > | inputRequestIds |
Request ids of inputs that we signed. More... | |
std::unordered_map< uint256, CInstantSendLock, StaticSaltedHasher > | creatingInstantSendLocks |
These are the islocks that are currently in the middle of being created. More... | |
std::unordered_map< uint256, CInstantSendLock *, StaticSaltedHasher > | txToCreatingInstantSendLocks |
std::unordered_map< uint256, std::pair< NodeId, CInstantSendLock >, StaticSaltedHasher > | pendingInstantSendLocks |
std::unordered_map< uint256, NonLockedTxInfo, StaticSaltedHasher > | nonLockedTxs |
std::unordered_map< COutPoint, uint256, SaltedOutpointHasher > | nonLockedTxsByOutpoints |
std::unordered_set< uint256, StaticSaltedHasher > | pendingRetryTxs |
Detailed Description
Definition at line 75 of file quorums_instantsend.h.
Constructor & Destructor Documentation
◆ CInstantSendManager()
|
explicit |
Definition at line 342 of file quorums_instantsend.cpp.
References CThreadInterrupt::reset(), and workInterrupt.
◆ ~CInstantSendManager()
llmq::CInstantSendManager::~CInstantSendManager | ( | ) |
Definition at line 348 of file quorums_instantsend.cpp.
Member Function Documentation
◆ AddNonLockedTx()
void llmq::CInstantSendManager::AddNonLockedTx | ( | const CTransactionRef & | tx, |
const CBlockIndex * | pindexMined | ||
) |
Definition at line 1051 of file quorums_instantsend.cpp.
References AssertLockHeld(), cs, CBlockIndex::GetBlockHash(), BCLog::INSTANTSEND, LogPrint, nonLockedTxs, nonLockedTxsByOutpoints, and base_blob< BITS >::ToString().
Referenced by ProcessNewTransaction().
◆ AlreadyHave()
bool llmq::CInstantSendManager::AlreadyHave | ( | const CInv & | inv | ) |
Definition at line 1428 of file quorums_instantsend.cpp.
References cs, db, llmq::CInstantSendDb::GetInstantSendLockByHash(), llmq::CInstantSendDb::HasArchivedInstantSendLock(), CInv::hash, llmq::IsInstantSendEnabled(), LOCK, and pendingInstantSendLocks.
Referenced by AlreadyHave().
◆ AskNodesForLockedTx()
void llmq::CInstantSendManager::AskNodesForLockedTx | ( | const uint256 & | txid | ) |
Definition at line 1336 of file quorums_instantsend.cpp.
References CNode::AddRef(), CNode::cs_filter, cs_main, g_connman, CNode::GetId(), LOCK, LogPrintf, MSG_TX, CNode::Release(), RequestObject(), and base_blob< BITS >::ToString().
Referenced by RemoveMempoolConflictsForLock().
◆ BlockConnected()
void llmq::CInstantSendManager::BlockConnected | ( | const std::shared_ptr< const CBlock > & | pblock, |
const CBlockIndex * | pindex, | ||
const std::vector< CTransactionRef > & | vtxConflicted | ||
) |
Definition at line 1022 of file quorums_instantsend.cpp.
References cs, llmq::IsInstantSendEnabled(), LOCK, ProcessNewTransaction(), and RemoveConflictedTx().
Referenced by CDSNotificationInterface::BlockConnected().
◆ BlockDisconnected()
void llmq::CInstantSendManager::BlockDisconnected | ( | const std::shared_ptr< const CBlock > & | pblock, |
const CBlockIndex * | pindexDisconnected | ||
) |
Definition at line 1040 of file quorums_instantsend.cpp.
References cs, db, llmq::CInstantSendDb::GetInstantSendLockHashByTxid(), LOCK, CBlockIndex::nHeight, and llmq::CInstantSendDb::RemoveInstantSendLockMined().
Referenced by CDSNotificationInterface::BlockDisconnected().
◆ CheckCanLock() [1/2]
bool llmq::CInstantSendManager::CheckCanLock | ( | const CTransaction & | tx, |
bool | printDebug, | ||
const Consensus::Params & | params | ||
) |
Definition at line 481 of file quorums_instantsend.cpp.
References CTransaction::GetHash(), and CTransaction::vin.
Referenced by ProcessPendingRetryLockTxs(), and ProcessTx().
◆ CheckCanLock() [2/2]
bool llmq::CInstantSendManager::CheckCanLock | ( | const COutPoint & | outpoint, |
bool | printDebug, | ||
const uint256 & | txHash, | ||
CAmount * | retValue, | ||
const Consensus::Params & | params | ||
) |
Definition at line 498 of file quorums_instantsend.cpp.
References chainActive, llmq::chainLocksHandler, cs_main, CTxMemPool::get(), CBlockIndex::GetBlockHash(), GetTransaction(), COutPoint::hash, CChain::Height(), BCLog::INSTANTSEND, IsLocked(), LOCK, LogPrint, mapBlockIndex, mempool, COutPoint::n, CBlockIndex::nHeight, Consensus::Params::nInstantSendConfirmationsRequired, base_blob< BITS >::ToString(), and COutPoint::ToStringShort().
◆ GetConflictingLock()
CInstantSendLockPtr llmq::CInstantSendManager::GetConflictingLock | ( | const CTransaction & | tx | ) |
Definition at line 1479 of file quorums_instantsend.cpp.
References cs, db, CTransaction::GetHash(), llmq::CInstantSendDb::GetInstantSendLockByInput(), llmq::IsInstantSendEnabled(), LOCK, and CTransaction::vin.
Referenced by AcceptToMemoryPoolWorker(), CChainState::ConnectBlock(), IsConflicted(), and ProcessTx().
◆ GetInstantSendLockByHash()
bool llmq::CInstantSendManager::GetInstantSendLockByHash | ( | const uint256 & | hash, |
llmq::CInstantSendLock & | ret | ||
) |
Definition at line 1438 of file quorums_instantsend.cpp.
References cs, db, llmq::CInstantSendDb::GetInstantSendLockByHash(), llmq::IsInstantSendEnabled(), and LOCK.
◆ GetInstantSendLockCount()
size_t llmq::CInstantSendManager::GetInstantSendLockCount | ( | ) |
Definition at line 1499 of file quorums_instantsend.cpp.
References db, and llmq::CInstantSendDb::GetInstantSendLockCount().
Referenced by ClientModel::getInstantSentLockCount().
◆ GetInstantSendLockHashByTxid()
bool llmq::CInstantSendManager::GetInstantSendLockHashByTxid | ( | const uint256 & | txid, |
uint256 & | ret | ||
) |
Definition at line 1453 of file quorums_instantsend.cpp.
References cs, db, llmq::CInstantSendDb::GetInstantSendLockHashByTxid(), llmq::IsInstantSendEnabled(), base_blob< BITS >::IsNull(), and LOCK.
◆ HandleFullyConfirmedBlock()
void llmq::CInstantSendManager::HandleFullyConfirmedBlock | ( | const CBlockIndex * | pindex | ) |
Definition at line 1158 of file quorums_instantsend.cpp.
References cs, db, CBlockIndex::GetAncestor(), CChainParams::GetConsensus(), BCLog::INSTANTSEND, LOCK, LogPrint, CBlockIndex::nHeight, nonLockedTxs, Params(), llmq::quorumSigningManager, llmq::CInstantSendDb::RemoveArchivedInstantSendLocks(), llmq::CInstantSendDb::RemoveConfirmedInstantSendLocks(), RemoveNonLockedTx(), llmq::CSigningManager::TruncateRecoveredSig(), and TruncateRecoveredSigsForInputs().
Referenced by NotifyChainLock(), and UpdatedBlockTip().
◆ HandleNewInputLockRecoveredSig()
void llmq::CInstantSendManager::HandleNewInputLockRecoveredSig | ( | const CRecoveredSig & | recoveredSig, |
const uint256 & | txid | ||
) |
Definition at line 582 of file quorums_instantsend.cpp.
References GetTransaction(), llmq::CRecoveredSig::id, llmq::INPUTLOCK_REQUESTID_PREFIX, BCLog::INSTANTSEND, LogAcceptCategory(), LogPrint, Params(), SerializeHash(), base_blob< BITS >::ToString(), and TrySignInstantSendLock().
Referenced by HandleNewRecoveredSig().
◆ HandleNewInstantSendLockRecoveredSig()
void llmq::CInstantSendManager::HandleNewInstantSendLockRecoveredSig | ( | const CRecoveredSig & | recoveredSig | ) |
Definition at line 642 of file quorums_instantsend.cpp.
References creatingInstantSendLocks, cs, llmq::CRecoveredSig::id, LOCK, LogPrintf, llmq::CRecoveredSig::msgHash, ProcessInstantSendLock(), SerializeHash(), llmq::CInstantSendLock::sig, llmq::CRecoveredSig::sig, base_blob< BITS >::ToString(), llmq::CInstantSendLock::txid, and txToCreatingInstantSendLocks.
Referenced by HandleNewRecoveredSig().
◆ HandleNewRecoveredSig()
|
virtual |
Implements llmq::CRecoveredSigsListener.
Definition at line 552 of file quorums_instantsend.cpp.
References creatingInstantSendLocks, cs, CChainParams::GetConsensus(), HandleNewInputLockRecoveredSig(), HandleNewInstantSendLockRecoveredSig(), llmq::CRecoveredSig::id, inputRequestIds, llmq::IsInstantSendEnabled(), base_blob< BITS >::IsNull(), Consensus::LLMQ_NONE, Consensus::Params::llmqs, Consensus::Params::llmqTypeInstantSend, LOCK, llmq::CRecoveredSig::msgHash, and Params().
◆ InterruptWorkerThread()
void llmq::CInstantSendManager::InterruptWorkerThread | ( | ) |
Definition at line 378 of file quorums_instantsend.cpp.
References workInterrupt.
Referenced by llmq::InterruptLLMQSystem().
◆ IsConflicted()
bool llmq::CInstantSendManager::IsConflicted | ( | const CTransaction & | tx | ) |
Definition at line 1474 of file quorums_instantsend.cpp.
References GetConflictingLock().
Referenced by ProcessPendingRetryLockTxs().
◆ IsLocked()
bool llmq::CInstantSendManager::IsLocked | ( | const uint256 & | txHash | ) |
Definition at line 1464 of file quorums_instantsend.cpp.
References cs, db, llmq::CInstantSendDb::GetInstantSendLockByTxid(), llmq::IsInstantSendEnabled(), and LOCK.
Referenced by AlreadyHave(), blockToJSON(), CheckCanLock(), CPrivateSend::IsCollateralValid(), CMerkleTx::IsLockedByInstantSend(), CPrivateSendBaseSession::IsValidInOuts(), ProcessPendingRetryLockTxs(), TxToJSON(), and WalletTxToJSON().
◆ NotifyChainLock()
void llmq::CInstantSendManager::NotifyChainLock | ( | const CBlockIndex * | pindexChainLock | ) |
Definition at line 1135 of file quorums_instantsend.cpp.
References HandleFullyConfirmedBlock().
Referenced by CDSNotificationInterface::NotifyChainLock().
◆ PreVerifyInstantSendLock()
bool llmq::CInstantSendManager::PreVerifyInstantSendLock | ( | NodeId | nodeId, |
const CInstantSendLock & | islock, | ||
bool & | retBan | ||
) |
Definition at line 708 of file quorums_instantsend.cpp.
References llmq::CInstantSendLock::inputs, base_blob< BITS >::IsNull(), and llmq::CInstantSendLock::txid.
Referenced by ProcessMessageInstantSendLock().
◆ ProcessInstantSendLock()
void llmq::CInstantSendManager::ProcessInstantSendLock | ( | NodeId | from, |
const uint256 & | hash, | ||
const CInstantSendLock & | islock | ||
) |
Definition at line 884 of file quorums_instantsend.cpp.
References llmq::chainLocksHandler, creatingInstantSendLocks, cs, cs_main, db, EraseObjectRequest(), g_connman, CBlockIndex::GetBlockHash(), llmq::CInstantSendDb::GetInstantSendLockByHash(), llmq::CInstantSendDb::GetInstantSendLockByInput(), llmq::CInstantSendDb::GetInstantSendLockByTxid(), llmq::CInstantSendLock::GetRequestId(), GetTransaction(), llmq::CInstantSendLock::inputs, BCLog::INSTANTSEND, base_blob< BITS >::IsNull(), LLMQS_PROTO_VERSION, LOCK, LogPrint, LogPrintf, mapBlockIndex, MSG_ISLOCK, CBlockIndex::nHeight, Params(), RemoveMempoolConflictsForLock(), RemoveNonLockedTx(), ResolveBlockConflicts(), SerializeHash(), base_blob< BITS >::ToString(), TruncateRecoveredSigsForInputs(), llmq::CInstantSendLock::txid, txToCreatingInstantSendLocks, UpdateWalletTransaction(), llmq::CInstantSendDb::WriteInstantSendLockMined(), and llmq::CInstantSendDb::WriteNewInstantSendLock().
Referenced by HandleNewInstantSendLockRecoveredSig(), and ProcessPendingInstantSendLocks().
◆ ProcessMessage()
void llmq::CInstantSendManager::ProcessMessage | ( | CNode * | pfrom, |
const std::string & | strCommand, | ||
CDataStream & | vRecv, | ||
CConnman & | connman | ||
) |
Definition at line 668 of file quorums_instantsend.cpp.
References llmq::IsInstantSendEnabled(), NetMsgType::ISLOCK, and ProcessMessageInstantSendLock().
Referenced by ProcessMessage().
◆ ProcessMessageInstantSendLock()
void llmq::CInstantSendManager::ProcessMessageInstantSendLock | ( | CNode * | pfrom, |
const CInstantSendLock & | islock, | ||
CConnman & | connman | ||
) |
Definition at line 681 of file quorums_instantsend.cpp.
References cs, cs_main, db, CNode::GetId(), llmq::CInstantSendDb::GetInstantSendLockByHash(), BCLog::INSTANTSEND, LOCK, LogPrint, Misbehaving(), pendingInstantSendLocks, PreVerifyInstantSendLock(), SerializeHash(), base_blob< BITS >::ToString(), and llmq::CInstantSendLock::txid.
Referenced by ProcessMessage().
◆ ProcessNewTransaction()
void llmq::CInstantSendManager::ProcessNewTransaction | ( | const CTransactionRef & | tx, |
const CBlockIndex * | pindex, | ||
bool | allowReSigning | ||
) |
Definition at line 976 of file quorums_instantsend.cpp.
References AddNonLockedTx(), llmq::chainLocksHandler, cs, db, CBlockIndex::GetBlockHash(), llmq::CInstantSendDb::GetInstantSendLockHashByTxid(), llmq::CChainLocksHandler::HasChainLock(), CMasternodeSync::IsBlockchainSynced(), llmq::IsInstantSendEnabled(), base_blob< BITS >::IsNull(), LOCK, masternodeSync, CBlockIndex::nHeight, Params(), ProcessTx(), RemoveNonLockedTx(), and llmq::CInstantSendDb::WriteInstantSendLockMined().
Referenced by BlockConnected(), and TransactionAddedToMempool().
◆ ProcessPendingInstantSendLocks() [1/2]
bool llmq::CInstantSendManager::ProcessPendingInstantSendLocks | ( | ) |
Definition at line 728 of file quorums_instantsend.cpp.
References cs, CChainParams::GetConsensus(), llmq::IsInstantSendEnabled(), Consensus::Params::llmqs, Consensus::Params::llmqTypeInstantSend, LOCK, LogPrintf, Params(), and pendingInstantSendLocks.
Referenced by WorkThreadMain().
◆ ProcessPendingInstantSendLocks() [2/2]
std::unordered_set< uint256 > llmq::CInstantSendManager::ProcessPendingInstantSendLocks | ( | int | signOffset, |
const std::unordered_map< uint256, std::pair< NodeId, CInstantSendLock >, StaticSaltedHasher > & | pend, | ||
bool | ban | ||
) |
Definition at line 779 of file quorums_instantsend.cpp.
References CBLSBatchVerifier< SourceId, MessageId >::badMessages, CBLSBatchVerifier< SourceId, MessageId >::badSources, llmq::CLLMQUtils::BuildSignHash(), cxxtimer::Timer::count(), cs_main, CChainParams::GetConsensus(), CBLSBatchVerifier< SourceId, MessageId >::GetUniqueSourceCount(), llmq::CSigningManager::HasRecoveredSig(), llmq::CSigningManager::HasRecoveredSigForId(), llmq::CRecoveredSig::id, BCLog::INSTANTSEND, llmq::CRecoveredSig::llmqType, Consensus::Params::llmqTypeInstantSend, LOCK, LogPrint, Misbehaving(), llmq::CRecoveredSig::msgHash, Params(), ProcessInstantSendLock(), CBLSBatchVerifier< SourceId, MessageId >::PushMessage(), llmq::CSigningManager::PushReconstructedRecoveredSig(), quorum(), llmq::CRecoveredSig::quorumHash, llmq::quorumSigningManager, llmq::CSigningManager::SelectQuorumForSigning(), llmq::CRecoveredSig::sig, cxxtimer::Timer::stop(), and CBLSBatchVerifier< SourceId, MessageId >::Verify().
◆ ProcessPendingRetryLockTxs()
bool llmq::CInstantSendManager::ProcessPendingRetryLockTxs | ( | ) |
Definition at line 1361 of file quorums_instantsend.cpp.
References CheckCanLock(), cs, CChainParams::GetConsensus(), BCLog::INSTANTSEND, IsConflicted(), llmq::IsInstantSendEnabled(), IsLocked(), LOCK, LogAcceptCategory(), LogPrint, nonLockedTxs, Params(), pendingRetryTxs, ProcessTx(), and txToCreatingInstantSendLocks.
Referenced by WorkThreadMain().
◆ ProcessTx()
bool llmq::CInstantSendManager::ProcessTx | ( | const CTransaction & | tx, |
bool | allowReSigning, | ||
const Consensus::Params & | params | ||
) |
Definition at line 383 of file quorums_instantsend.cpp.
References llmq::CSigningManager::AsyncSignIfMember(), CheckCanLock(), cs, db, fMasternodeMode, g_connman, GetConflictingLock(), CTransaction::GetHash(), llmq::CInstantSendDb::GetInstantSendLockHashByTxid(), llmq::CSigningManager::GetVoteForId(), llmq::INPUTLOCK_REQUESTID_PREFIX, inputRequestIds, BCLog::INSTANTSEND, CMasternodeSync::IsBlockchainSynced(), llmq::CSigningManager::IsConflicting(), llmq::IsInstantSendEnabled(), base_blob< BITS >::IsNull(), Consensus::LLMQ_NONE, LLMQS_PROTO_VERSION, Consensus::Params::llmqTypeInstantSend, LOCK, LogPrint, LogPrintf, masternodeSync, MSG_ISLOCK, llmq::quorumSigningManager, SerializeHash(), base_blob< BITS >::ToString(), TrySignInstantSendLock(), and CTransaction::vin.
Referenced by ProcessNewTransaction(), and ProcessPendingRetryLockTxs().
◆ RemoveChainLockConflictingLock()
void llmq::CInstantSendManager::RemoveChainLockConflictingLock | ( | const uint256 & | islockHash, |
const CInstantSendLock & | islock | ||
) |
Definition at line 1318 of file quorums_instantsend.cpp.
References chainActive, cs, cs_main, db, CChain::Height(), LOCK, LogPrintf, llmq::CInstantSendDb::RemoveChainedInstantSendLocks(), base_blob< BITS >::ToString(), and llmq::CInstantSendLock::txid.
Referenced by CChainState::ConnectBlock(), and ResolveBlockConflicts().
◆ RemoveConflictedTx()
void llmq::CInstantSendManager::RemoveConflictedTx | ( | const CTransaction & | tx | ) |
Definition at line 1113 of file quorums_instantsend.cpp.
References AssertLockHeld(), cs, CTransaction::GetHash(), llmq::INPUTLOCK_REQUESTID_PREFIX, inputRequestIds, RemoveNonLockedTx(), SerializeHash(), and CTransaction::vin.
Referenced by BlockConnected(), RemoveMempoolConflictsForLock(), and ResolveBlockConflicts().
◆ RemoveMempoolConflictsForLock()
void llmq::CInstantSendManager::RemoveMempoolConflictsForLock | ( | const uint256 & | hash, |
const CInstantSendLock & | islock | ||
) |
Definition at line 1200 of file quorums_instantsend.cpp.
References AskNodesForLockedTx(), CONFLICT, cs, CTxMemPool::cs, indirectmap< K, T >::end(), indirectmap< K, T >::find(), CTxMemPool::get(), llmq::CInstantSendLock::inputs, LOCK, LogPrintf, CTxMemPool::mapNextTx, mempool, RemoveConflictedTx(), CTxMemPool::removeRecursive(), base_blob< BITS >::ToString(), and llmq::CInstantSendLock::txid.
Referenced by ProcessInstantSendLock().
◆ RemoveNonLockedTx()
void llmq::CInstantSendManager::RemoveNonLockedTx | ( | const uint256 & | txid, |
bool | retryChildren | ||
) |
Definition at line 1075 of file quorums_instantsend.cpp.
References AssertLockHeld(), cs, BCLog::INSTANTSEND, LogPrint, nonLockedTxs, nonLockedTxsByOutpoints, pendingRetryTxs, and base_blob< BITS >::ToString().
Referenced by HandleFullyConfirmedBlock(), ProcessInstantSendLock(), ProcessNewTransaction(), and RemoveConflictedTx().
◆ ResolveBlockConflicts()
void llmq::CInstantSendManager::ResolveBlockConflicts | ( | const uint256 & | islockHash, |
const CInstantSendLock & | islock | ||
) |
Definition at line 1236 of file quorums_instantsend.cpp.
References ActivateBestChain(), llmq::chainLocksHandler, cs, cs_main, FormatStateMessage(), llmq::CChainLocksHandler::HasChainLock(), llmq::CInstantSendLock::inputs, InvalidateBlock(), LOCK, LogPrintf, mapBlockIndex, nonLockedTxs, nonLockedTxsByOutpoints, Params(), RemoveChainLockConflictingLock(), RemoveConflictedTx(), base_blob< BITS >::ToString(), and llmq::CInstantSendLock::txid.
Referenced by ProcessInstantSendLock().
◆ Start()
void llmq::CInstantSendManager::Start | ( | ) |
Definition at line 352 of file quorums_instantsend.cpp.
References llmq::quorumSigningManager, llmq::CSigningManager::RegisterRecoveredSigsListener(), TraceThread(), workThread, and WorkThreadMain().
Referenced by llmq::StartLLMQSystem().
◆ Stop()
void llmq::CInstantSendManager::Stop | ( | ) |
Definition at line 364 of file quorums_instantsend.cpp.
References llmq::quorumSigningManager, llmq::CSigningManager::UnregisterRecoveredSigsListener(), workInterrupt, and workThread.
Referenced by llmq::StopLLMQSystem().
◆ TransactionAddedToMempool()
void llmq::CInstantSendManager::TransactionAddedToMempool | ( | const CTransactionRef & | tx | ) |
Definition at line 1017 of file quorums_instantsend.cpp.
References ProcessNewTransaction().
Referenced by CDSNotificationInterface::TransactionAddedToMempool().
◆ TruncateRecoveredSigsForInputs()
void llmq::CInstantSendManager::TruncateRecoveredSigsForInputs | ( | const CInstantSendLock & | islock | ) |
Definition at line 1124 of file quorums_instantsend.cpp.
References CChainParams::GetConsensus(), llmq::INPUTLOCK_REQUESTID_PREFIX, inputRequestIds, llmq::CInstantSendLock::inputs, Params(), llmq::quorumSigningManager, SerializeHash(), and llmq::CSigningManager::TruncateRecoveredSig().
Referenced by HandleFullyConfirmedBlock(), and ProcessInstantSendLock().
◆ TrySignInstantSendLock()
void llmq::CInstantSendManager::TrySignInstantSendLock | ( | const CTransaction & | tx | ) |
Definition at line 604 of file quorums_instantsend.cpp.
References llmq::CSigningManager::AsyncSignIfMember(), creatingInstantSendLocks, cs, CChainParams::GetConsensus(), CTransaction::GetHash(), llmq::CSigningManager::HasRecoveredSig(), llmq::CSigningManager::HasRecoveredSigForId(), llmq::INPUTLOCK_REQUESTID_PREFIX, BCLog::INSTANTSEND, Consensus::Params::llmqTypeInstantSend, LOCK, LogPrint, Params(), llmq::quorumSigningManager, SerializeHash(), base_blob< BITS >::ToString(), llmq::CInstantSendLock::txid, txToCreatingInstantSendLocks, and CTransaction::vin.
Referenced by HandleNewInputLockRecoveredSig(), and ProcessTx().
◆ UpdatedBlockTip()
void llmq::CInstantSendManager::UpdatedBlockTip | ( | const CBlockIndex * | pindexNew | ) |
Definition at line 1140 of file quorums_instantsend.cpp.
References Consensus::DEPLOYMENT_DIP0008, CBlockIndex::GetAncestor(), CChainParams::GetConsensus(), HandleFullyConfirmedBlock(), CSporkManager::IsSporkActive(), CBlockIndex::nHeight, Consensus::Params::nInstantSendKeepLock, Params(), CBlockIndex::pprev, SPORK_19_CHAINLOCKS_ENABLED, sporkManager, THRESHOLD_ACTIVE, versionbitscache, and VersionBitsState().
Referenced by CDSNotificationInterface::UpdatedBlockTip().
◆ UpdateWalletTransaction()
void llmq::CInstantSendManager::UpdateWalletTransaction | ( | const CTransactionRef & | tx, |
const CInstantSendLock & | islock | ||
) |
Definition at line 965 of file quorums_instantsend.cpp.
References CTxMemPool::AddTransactionsUpdated(), GetMainSignals(), mempool, and CMainSignals::NotifyTransactionLock().
Referenced by ProcessInstantSendLock().
◆ WorkThreadMain()
void llmq::CInstantSendManager::WorkThreadMain | ( | ) |
Definition at line 1504 of file quorums_instantsend.cpp.
References ProcessPendingInstantSendLocks(), ProcessPendingRetryLockTxs(), CThreadInterrupt::sleep_for(), and workInterrupt.
Referenced by Start().
Member Data Documentation
◆ creatingInstantSendLocks
|
private |
These are the islocks that are currently in the middle of being created.
Entries are created when we observed recovered signatures for all inputs of a TX. At the same time, we initiate signing of our sigshare for the islock. When the recovered sig for the islock later arrives, we can finish the islock and propagate it.
Definition at line 95 of file quorums_instantsend.h.
Referenced by HandleNewInstantSendLockRecoveredSig(), HandleNewRecoveredSig(), ProcessInstantSendLock(), and TrySignInstantSendLock().
◆ cs
|
private |
Definition at line 78 of file quorums_instantsend.h.
Referenced by AddNonLockedTx(), AlreadyHave(), BlockConnected(), BlockDisconnected(), GetConflictingLock(), GetInstantSendLockByHash(), GetInstantSendLockHashByTxid(), HandleFullyConfirmedBlock(), HandleNewInstantSendLockRecoveredSig(), HandleNewRecoveredSig(), IsLocked(), ProcessInstantSendLock(), ProcessMessageInstantSendLock(), ProcessNewTransaction(), ProcessPendingInstantSendLocks(), ProcessPendingRetryLockTxs(), ProcessTx(), RemoveChainLockConflictingLock(), RemoveConflictedTx(), RemoveMempoolConflictsForLock(), RemoveNonLockedTx(), ResolveBlockConflicts(), and TrySignInstantSendLock().
◆ db
|
private |
Definition at line 79 of file quorums_instantsend.h.
Referenced by AlreadyHave(), BlockDisconnected(), GetConflictingLock(), GetInstantSendLockByHash(), GetInstantSendLockCount(), GetInstantSendLockHashByTxid(), HandleFullyConfirmedBlock(), IsLocked(), ProcessInstantSendLock(), ProcessMessageInstantSendLock(), ProcessNewTransaction(), ProcessTx(), and RemoveChainLockConflictingLock().
◆ inputRequestIds
|
private |
Request ids of inputs that we signed.
Used to determine if a recovered signature belongs to an in-progress input lock.
Definition at line 88 of file quorums_instantsend.h.
Referenced by HandleNewRecoveredSig(), ProcessTx(), RemoveConflictedTx(), and TruncateRecoveredSigsForInputs().
◆ nonLockedTxs
|
private |
Definition at line 109 of file quorums_instantsend.h.
Referenced by AddNonLockedTx(), HandleFullyConfirmedBlock(), ProcessPendingRetryLockTxs(), RemoveNonLockedTx(), and ResolveBlockConflicts().
◆ nonLockedTxsByOutpoints
|
private |
Definition at line 110 of file quorums_instantsend.h.
Referenced by AddNonLockedTx(), RemoveNonLockedTx(), and ResolveBlockConflicts().
◆ pendingInstantSendLocks
|
private |
Definition at line 100 of file quorums_instantsend.h.
Referenced by AlreadyHave(), ProcessMessageInstantSendLock(), and ProcessPendingInstantSendLocks().
◆ pendingRetryTxs
|
private |
Definition at line 112 of file quorums_instantsend.h.
Referenced by ProcessPendingRetryLockTxs(), and RemoveNonLockedTx().
◆ txToCreatingInstantSendLocks
|
private |
Definition at line 97 of file quorums_instantsend.h.
Referenced by HandleNewInstantSendLockRecoveredSig(), ProcessInstantSendLock(), ProcessPendingRetryLockTxs(), and TrySignInstantSendLock().
◆ workInterrupt
|
private |
Definition at line 82 of file quorums_instantsend.h.
Referenced by CInstantSendManager(), InterruptWorkerThread(), Stop(), and WorkThreadMain().
◆ workThread
|
private |
Definition at line 81 of file quorums_instantsend.h.
The documentation for this class was generated from the following files:
- src/llmq/quorums_instantsend.h
- src/llmq/quorums_instantsend.cpp