mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-24 12:41:41 -05:00
![]() Rather than individually calling addUnchecked for each transaction added in a changeset (after removing all the to-be-removed transactions), instead we can take advantage of boost::multi_index's splicing features to extract and insert entries directly from the staging multi_index into mapTx. This has the immediate advantage of saving allocation overhead for mempool entries which have already been allocated once. This also means that the memory locations of mempool entries will not change when transactions go from staging to the main mempool. Additionally, eliminate addUnchecked and require all new transactions to enter the mempool via a CTxMemPoolChangeSet. |
||
---|---|---|
.. | ||
blockfilter.cpp | ||
blockfilter.h | ||
chainstate.h | ||
cluster_linearize.h | ||
CMakeLists.txt | ||
coins.cpp | ||
coins.h | ||
index.cpp | ||
index.h | ||
json.cpp | ||
json.h | ||
logging.cpp | ||
logging.h | ||
mining.cpp | ||
mining.h | ||
net.cpp | ||
net.h | ||
poolresourcetester.h | ||
random.cpp | ||
random.h | ||
README.md | ||
script.cpp | ||
script.h | ||
setup_common.cpp | ||
setup_common.h | ||
str.cpp | ||
str.h | ||
transaction_utils.cpp | ||
transaction_utils.h | ||
txmempool.cpp | ||
txmempool.h | ||
validation.cpp | ||
validation.h |
Test library
This contains files for the test library, which is used by the test binaries (unit tests, benchmarks, fuzzers, gui tests).
Generally, the files in this folder should be well-separated modules. New code should be added to existing modules or (when in doubt) a new module should be created.
The utilities in here are compiled into a library, which does not hold any state. However, the main file setup_common
defines the common test setup for all test binaries. The test binaries will handle the global state when they
instantiate the BasicTestingSetup
(or one of its derived classes).