7 #include <test/util/setup_common.h> 28 const auto testing_setup = MakeNoLogFileContext<const TestingSetup>();
33 tx1.vin[0].scriptWitness.stack.push_back({1});
36 tx1.vout[0].nValue = 10 *
COIN;
41 tx2.
vin[0].scriptWitness.stack.push_back({2});
50 tx3.
vin[0].scriptWitness.stack.push_back({3});
57 tx4.
vin[0].prevout.SetNull();
59 tx4.
vin[0].scriptWitness.stack.push_back({4});
60 tx4.
vin[1].prevout.SetNull();
62 tx4.
vin[1].scriptWitness.stack.push_back({4});
73 tx5.
vin[0].scriptWitness.stack.push_back({4});
74 tx5.
vin[1].prevout.SetNull();
76 tx5.
vin[1].scriptWitness.stack.push_back({5});
87 tx6.
vin[0].scriptWitness.stack.push_back({4});
88 tx6.
vin[1].prevout.SetNull();
90 tx6.
vin[1].scriptWitness.stack.push_back({6});
101 tx7.
vin[0].scriptWitness.stack.push_back({5});
104 tx7.
vin[1].scriptWitness.stack.push_back({6});
123 AddTx(tx1_r, 10000LL, pool);
124 AddTx(tx2_r, 5000LL, pool);
125 AddTx(tx3_r, 20000LL, pool);
126 AddTx(tx4_r, 7000LL, pool);
127 AddTx(tx5_r, 1000LL, pool);
128 AddTx(tx6_r, 1100LL, pool);
129 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
static const CAmount COIN
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.
An outpoint - a combination of a transaction hash and an index n into its vout.
std::vector< CTxOut > vout
BENCHMARK(MempoolEviction)
static CTransactionRef MakeTransactionRef(Tx &&txIn)
RecursiveMutex cs_main
Mutex to guard access to validation specific variables, such as reading or changing the chainstate...
#define EXCLUSIVE_LOCKS_REQUIRED(...)
CTxMemPool stores valid-according-to-the-current-best-chain transactions that may be included in the ...
uint256 GetHash() const
Compute the hash of this CMutableTransaction.
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
This mutex needs to be locked when accessing mapTx or other members that are guarded by it...