From 13a3661aba95b54b822c99ecbb695b14a22536d2 Mon Sep 17 00:00:00 2001 From: TheCharlatan Date: Fri, 17 May 2024 23:33:25 +0200 Subject: [PATCH] kernel: De-globalize script execution cache Move its ownership to the ChainstateManager class. Next to simplifying usage of the kernel library by no longer requiring manual setup of the cache prior to using validation code, it also slims down the amount of memory allocated by BasicTestingSetup. --- src/bitcoin-chainstate.cpp | 1 - src/init.cpp | 1 - src/kernel/chainstatemanager_opts.h | 2 ++ src/kernel/validation_cache_sizes.h | 1 - src/node/chainstatemanager_args.cpp | 9 +++++++ src/node/validation_cache_args.cpp | 1 - src/script/sigcache.h | 1 + src/test/txvalidationcache_tests.cpp | 36 ++++++++++++++------------- src/test/util/setup_common.cpp | 1 - src/validation.cpp | 37 +++++++++++++++++----------- src/validation.h | 21 +++++++++++++--- 11 files changed, 70 insertions(+), 41 deletions(-) diff --git a/src/bitcoin-chainstate.cpp b/src/bitcoin-chainstate.cpp index ecbdcd48bb..d11d793d21 100644 --- a/src/bitcoin-chainstate.cpp +++ b/src/bitcoin-chainstate.cpp @@ -68,7 +68,6 @@ int main(int argc, char* argv[]) // performing the check with the signature cache. kernel::ValidationCacheSizes validation_cache_sizes{}; Assert(InitSignatureCache(validation_cache_sizes.signature_cache_bytes)); - Assert(InitScriptExecutionCache(validation_cache_sizes.script_execution_cache_bytes)); ValidationSignals validation_signals{std::make_unique()}; diff --git a/src/init.cpp b/src/init.cpp index 985b8d3d63..5accc63f37 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -1157,7 +1157,6 @@ bool AppInitMain(NodeContext& node, interfaces::BlockAndHeaderTipInfo* tip_info) ValidationCacheSizes validation_cache_sizes{}; ApplyArgsManOptions(args, validation_cache_sizes); (void)InitSignatureCache(validation_cache_sizes.signature_cache_bytes); - (void)InitScriptExecutionCache(validation_cache_sizes.script_execution_cache_bytes); assert(!node.scheduler); node.scheduler = std::make_unique(); diff --git a/src/kernel/chainstatemanager_opts.h b/src/kernel/chainstatemanager_opts.h index 076841c3c9..1b08eeeca7 100644 --- a/src/kernel/chainstatemanager_opts.h +++ b/src/kernel/chainstatemanager_opts.h @@ -9,6 +9,7 @@ #include #include +#include