30 const auto testing_setup = MakeNoLogFileContext<const TestingSetup>();
35 tx1.vin[0].scriptWitness.stack.push_back({1});
38 tx1.vout[0].nValue = 10 *
COIN;
43 tx2.
vin[0].scriptWitness.stack.push_back({2});
52 tx3.
vin[0].scriptWitness.stack.push_back({3});
59 tx4.
vin[0].prevout.SetNull();
61 tx4.
vin[0].scriptWitness.stack.push_back({4});
62 tx4.
vin[1].prevout.SetNull();
64 tx4.
vin[1].scriptWitness.stack.push_back({4});
75 tx5.
vin[0].scriptWitness.stack.push_back({4});
76 tx5.
vin[1].prevout.SetNull();
78 tx5.
vin[1].scriptWitness.stack.push_back({5});
89 tx6.
vin[0].scriptWitness.stack.push_back({4});
90 tx6.
vin[1].prevout.SetNull();
92 tx6.
vin[1].scriptWitness.stack.push_back({6});
103 tx7.
vin[0].scriptWitness.stack.push_back({5});
106 tx7.
vin[1].scriptWitness.stack.push_back({6});
125 AddTx(tx1_r, 10000LL, pool);
126 AddTx(tx2_r, 5000LL, pool);
127 AddTx(tx3_r, 20000LL, pool);
128 AddTx(tx4_r, 7000LL, pool);
129 AddTx(tx5_r, 1000LL, pool);
130 AddTx(tx6_r, 1100LL, pool);
131 AddTx(tx7_r, 9000LL, pool);
std::shared_ptr< const CTransaction > CTransactionRef
#define NO_THREAD_SAFETY_ANALYSIS
static void AddTx(const CTransactionRef &tx, const CAmount &nFee, CTxMemPool &pool) EXCLUSIVE_LOCKS_REQUIRED(cs_main
static void MempoolEviction(benchmark::Bench &bench)
size_t DynamicMemoryUsage() const
int64_t GetVirtualTransactionSize(int64_t nWeight, int64_t nSigOpCost, unsigned int bytes_per_sigop)
Compute the virtual transaction size (weight reinterpreted as bytes).
CTxMemPoolEntry stores data about the corresponding transaction, as well as data about all in-mempool...
int64_t CAmount
Amount in satoshis (Can be negative)
Bench & run(char const *benchmarkName, Op &&op)
Repeatedly calls op() based on the configuration, and performs measurements.
Txid GetHash() const
Compute the hash of this CMutableTransaction.
An outpoint - a combination of a transaction hash and an index n into its vout.
std::vector< CTxOut > vout
static CTransactionRef MakeTransactionRef(Tx &&txIn)
#define EXCLUSIVE_LOCKS_REQUIRED(...)
CTxMemPool stores valid-according-to-the-current-best-chain transactions that may be included in the ...
Serialized script, used inside transaction inputs and outputs.
A mutable version of CTransaction.
void TrimToSize(size_t sizelimit, std::vector< COutPoint > *pvNoSpendsRemaining=nullptr) EXCLUSIVE_LOCKS_REQUIRED(cs)
Remove transactions from the mempool until its dynamic size is <= sizelimit.
Main entry point to nanobench's benchmarking facility.
RecursiveMutex cs_main
Mutex to guard access to validation specific variables, such as reading or changing the chainstate...
RecursiveMutex cs
This mutex needs to be locked when accessing mapTx or other members that are guarded by it...
#define Assert(val)
Identity function.
static constexpr CAmount COIN
The amount of satoshis in one BTC.
BENCHMARK(MempoolEviction, benchmark::PriorityLevel::HIGH)