mempool: Introduce (still-unused) MemPoolLimits

They live as a CTxMemPool member.

[META] These limits will be used in subsequent commits to replace calls
       to gArgs.
This commit is contained in:
Carl Dong committed 2022-06-28 15:46:10 -04:00
1 parent 716bb5fbd3
commit 9333427014
7 files changed
+61 -1

No files matched your search

+26
View File
@@ -0,0 +1,26 @@
// Copyright (c) 2022 The Bitcoin Core developers
// Distributed under the MIT software license, see the accompanying
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
#ifndef BITCOIN_KERNEL_MEMPOOL_LIMITS_H
#define BITCOIN_KERNEL_MEMPOOL_LIMITS_H
#include <policy/policy.h>
#include <cstdint>
namespace kernel {
/**
* Options struct containing limit options for a CTxMemPool. Default constructor
* populates the struct with sane default values which can be modified.
*
* Most of the time, this struct should be referenced as CTxMemPool::Limits.
*/
struct MemPoolLimits {
int64_t ancestor_count{DEFAULT_ANCESTOR_LIMIT};
int64_t ancestor_size_vbytes{DEFAULT_ANCESTOR_SIZE_LIMIT_KVB * 1'000};
int64_t descendant_count{DEFAULT_DESCENDANT_LIMIT};
int64_t descendant_size_vbytes{DEFAULT_DESCENDANT_SIZE_LIMIT_KVB * 1'000};
};
} // namespace kernel
#endif // BITCOIN_KERNEL_MEMPOOL_LIMITS_H
+3
View File
@@ -4,6 +4,8 @@
#ifndef BITCOIN_KERNEL_MEMPOOL_OPTIONS_H
#define BITCOIN_KERNEL_MEMPOOL_OPTIONS_H
#include <kernel/mempool_limits.h>
#include <chrono>
#include <cstdint>
@@ -29,6 +31,7 @@ struct MemPoolOptions {
int check_ratio{0};
int64_t max_size_bytes{DEFAULT_MAX_MEMPOOL_SIZE_MB * 1'000'000};
std::chrono::seconds expiry{std::chrono::hours{DEFAULT_MEMPOOL_EXPIRY_HOURS}};
MemPoolLimits limits{};
};
} // namespace kernel