21 Chainstate& chainstate{m_node.chainman->ActiveChainstate()};
29 constexpr size_t MAX_COINS_BYTES{8_MiB};
30 constexpr size_t MAX_MEMPOOL_BYTES{4_MiB};
31 constexpr size_t MAX_ATTEMPTS{50'000};
34 for (
size_t max_mempool_size_bytes : {
size_t{0}, MAX_MEMPOOL_BYTES}) {
35 const int64_t full_cap{int64_t(MAX_COINS_BYTES + max_mempool_size_bytes)};
39 auto state{chainstate.GetCoinsCacheSizeState(MAX_COINS_BYTES, max_mempool_size_bytes)};
40 for (
size_t i{0}; i < MAX_ATTEMPTS && int64_t(view.
DynamicMemoryUsage()) <= large_cap; ++i) {
43 state = chainstate.GetCoinsCacheSizeState(MAX_COINS_BYTES, max_mempool_size_bytes);
47 for (
size_t i{0}; i < MAX_ATTEMPTS && int64_t(view.
DynamicMemoryUsage()) <= full_cap; ++i) {
50 state = chainstate.GetCoinsCacheSizeState(MAX_COINS_BYTES, max_mempool_size_bytes);
56 for (
int i{0}; i < 1'000; ++i) {
RecursiveMutex cs_main
Mutex to guard access to validation specific variables, such as reading or changing the chainstate.
COutPoint AddTestCoin(FastRandomContext &rng, CCoinsViewCache &coins_view)
Create a Coin with DynamicMemoryUsage of 80 bytes and add it to the given view.