mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-11 06:28:31 +01:00
validationcaches: Add and use ValidationCacheSizes
Also:
- Make DEFAULT_MAX_SIG_CACHE_SIZE into constexpr
DEFAULT_MAX_SIG_CACHE_BYTES to utilize the compile-time integer
arithmetic overflow checking available to constexpr.
- Fix comment (MiB instead of MB) for DEFAULT_MAX_SIG_CACHE_BYTES.
- Pass in max_size_bytes parameter to InitS*Cache(), modify log line to
no longer allude to maxsigcachesize being split evenly between the two
validation caches.
- Fix possible integer truncation and add a comment.
[META] I've kept the integer types as int64_t in order to not introduce
unintended behaviour changes, in the next commit we will make
them size_t.
This commit is contained in:
28
src/node/validation_cache_args.cpp
Normal file
28
src/node/validation_cache_args.cpp
Normal file
@@ -0,0 +1,28 @@
|
||||
// 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.
|
||||
|
||||
#include <node/validation_cache_args.h>
|
||||
|
||||
#include <kernel/validation_cache_sizes.h>
|
||||
|
||||
#include <util/system.h>
|
||||
|
||||
#include <memory>
|
||||
#include <optional>
|
||||
|
||||
using kernel::ValidationCacheSizes;
|
||||
|
||||
namespace node {
|
||||
void ApplyArgsManOptions(const ArgsManager& argsman, ValidationCacheSizes& cache_sizes)
|
||||
{
|
||||
if (auto max_size = argsman.GetIntArg("-maxsigcachesize")) {
|
||||
// Multiply first, divide after to avoid integer truncation
|
||||
int64_t size_each = *max_size * (1 << 20) / 2;
|
||||
cache_sizes = {
|
||||
.signature_cache_bytes = size_each,
|
||||
.script_execution_cache_bytes = size_each,
|
||||
};
|
||||
}
|
||||
}
|
||||
} // namespace node
|
||||
Reference in New Issue
Block a user