6 #ifndef BITCOIN_MINER_H 7 #define BITCOIN_MINER_H 17 #include <boost/multi_index_container.hpp> 18 #include <boost/multi_index/ordered_index.hpp> 85 if (a->GetCountWithAncestors() != b->GetCountWithAncestors())
86 return a->GetCountWithAncestors() < b->GetCountWithAncestors();
91 typedef boost::multi_index_container<
93 boost::multi_index::indexed_by<
94 boost::multi_index::ordered_unique<
99 boost::multi_index::ordered_non_unique<
101 boost::multi_index::tag<ancestor_score>,
102 boost::multi_index::identity<CTxMemPoolModifiedEntry>,
108 typedef indexed_modified_transaction_set::nth_index<0>::type::iterator
modtxiter;
109 typedef indexed_modified_transaction_set::index<ancestor_score>::type::iterator
modtxscoreiter;
205 #endif // BITCOIN_MINER_H static Optional< int64_t > m_last_block_num_txs
Definition: miner.h:164
void operator()(CTxMemPoolModifiedEntry &e)
Definition: miner.h:115
indexed_modified_transaction_set::nth_index< 0 >::type::iterator modtxiter
Definition: miner.h:108
bool fIncludeWitness
Definition: miner.h:135
#define EXCLUSIVE_LOCKS_REQUIRED(...)
Definition: thread_annotations.h:13
BlockAssembler(const CChainParams ¶ms)
Definition: miner.cpp:72
CTxMemPool::setEntries inBlock
Definition: miner.h:144
CFeeRate blockMinFeeRate
Definition: miner.h:137
const CChainParams & chainparams
Definition: miner.h:149
void SortForBlock(const CTxMemPool::setEntries &package, std::vector< CTxMemPool::txiter > &sortedEntries)
Definition: miner.cpp:277
int nHeight
Definition: miner.h:147
uint64_t nSizeWithAncestors
Definition: miner.h:54
bool operator()(const CTxMemPool::txiter &a, const CTxMemPool::txiter &b) const
Definition: miner.h:83
std::vector< unsigned char > vchCoinbaseCommitment
Definition: miner.h:33
std::vector< CAmount > vTxFees
Definition: miner.h:31
indexed_transaction_set::nth_index< 0 >::type::const_iterator txiter
Definition: txmempool.h:521
indexed_modified_transaction_set::index< ancestor_score >::type::iterator modtxscoreiter
Definition: miner.h:109
int64_t CAmount
Definition: amount.h:12
CTxMemPool::txiter iter
Definition: miner.h:53
bool operator()(const CTxMemPool::txiter &a, const CTxMemPool::txiter &b) const
Definition: miner.h:65
uint64_t nBlockTx
Definition: miner.h:141
void onlyUnconfirmed(CTxMemPool::setEntries &testSet)
Definition: miner.cpp:178
Definition: chainparams.h:47
CTxMemPool::txiter result_type
Definition: miner.h:72
std::unique_ptr< CBlockTemplate > CreateNewBlock(const CScript &scriptPubKeyIn)
Definition: miner.cpp:91
Definition: transaction.h:270
static Optional< int64_t > m_last_block_weight
Definition: miner.h:165
boost::multi_index_container< CTxMemPoolModifiedEntry, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< modifiedentry_iter, CompareCTxMemPoolIter >, boost::multi_index::ordered_non_unique< boost::multi_index::tag< ancestor_score >, boost::multi_index::identity< CTxMemPoolModifiedEntry >, CompareTxMemPoolEntryByAncestorFee > >> indexed_modified_transaction_set
Definition: miner.h:106
unsigned long long uint64_t
Definition: stdint.h:22
void addPackageTxs(int &nPackagesSelected, int &nDescendantsUpdated) EXCLUSIVE_LOCKS_REQUIRED(mempool.cs)
Definition: miner.cpp:298
update_for_parent_inclusion(CTxMemPool::txiter it)
Definition: miner.h:113
uint64_t nBlockWeight
Definition: miner.h:140
int UpdatePackagesForAdded(const CTxMemPool::setEntries &alreadyAdded, indexed_modified_transaction_set &mapModifiedTx) EXCLUSIVE_LOCKS_REQUIRED(mempool.cs)
Definition: miner.cpp:235
void resetBlock()
Definition: miner.cpp:74
int64_t nSigOpCostWithAncestors
Definition: miner.h:56
uint64_t nBlockSigOpsCost
Definition: miner.h:142
size_t nBlockMaxWeight
Definition: miner.h:154
CTxMemPool::txiter iter
Definition: miner.h:122
CBlock block
Definition: miner.h:30
std::unique_ptr< CBlockTemplate > pblocktemplate
Definition: miner.h:130
int64_t UpdateTime(CBlockHeader *pblock, const Consensus::Params &consensusParams, const CBlockIndex *pindexPrev)
Definition: miner.cpp:30
std::set< txiter, CompareIteratorByHash > setEntries
Definition: txmempool.h:529
void AddToBlock(CTxMemPool::txiter iter)
Definition: miner.cpp:216
Definition: txmempool.h:524
CAmount nModFeesWithAncestors
Definition: miner.h:55
bool TestPackage(uint64_t packageSize, int64_t packageSigOpsCost) const
Definition: miner.cpp:191
const CChainParams & Params()
Definition: chainparams.cpp:399
int64_t nLockTimeCutoff
Definition: miner.h:148
Options()
Definition: miner.cpp:45
std::vector< int64_t > vTxSigOpsCost
Definition: miner.h:32
size_t GetTxSize() const
Definition: miner.h:50
signed long long int64_t
Definition: stdint.h:18
bool TestPackageTransactions(const CTxMemPool::setEntries &package)
Definition: miner.cpp:205
int64_t GetModifiedFee() const
Definition: miner.h:47
void IncrementExtraNonce(CBlock *pblock, const CBlockIndex *pindexPrev, unsigned int &nExtraNonce)
Definition: miner.cpp:428
boost::optional< T > Optional
Substitute for C++17 std::optional.
Definition: optional.h:14
CAmount nFees
Definition: miner.h:143
static const bool DEFAULT_PRINTPRIORITY
Definition: miner.h:26
CFeeRate blockMinFeeRate
Definition: miner.h:155
CBlock * pblock
Definition: miner.h:132
const CTransaction & GetTx() const
Definition: miner.h:51
CAmount GetModFeesWithAncestors() const
Definition: miner.h:49
auto it
Definition: validation.cpp:360
result_type operator()(const CTxMemPoolModifiedEntry &entry) const
Definition: miner.h:73
Definition: txmempool.h:279
bool SkipMapTxEntry(CTxMemPool::txiter it, indexed_modified_transaction_set &mapModifiedTx, CTxMemPool::setEntries &failedTx) EXCLUSIVE_LOCKS_REQUIRED(mempool.cs)
Definition: miner.cpp:271
unsigned int nBlockMaxWeight
Definition: miner.h:136
RecursiveMutex cs
Definition: txmempool.h:518
uint64_t GetSizeWithAncestors() const
Definition: miner.h:48
CTxMemPoolModifiedEntry(CTxMemPool::txiter entry)
Definition: miner.h:39