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 ecbdcd48bb3..d11d793d218 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 985b8d3d63c..5accc63f375 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 076841c3c9d..1b08eeeca7e 100644 --- a/src/kernel/chainstatemanager_opts.h +++ b/src/kernel/chainstatemanager_opts.h @@ -9,6 +9,7 @@ #include #include +#include