diff options
author | Carl Dong <contact@carldong.me> | 2022-07-25 16:07:56 -0400 |
---|---|---|
committer | Carl Dong <contact@carldong.me> | 2022-08-03 12:02:31 -0400 |
commit | b370164b319df1a500b70694b077f92265a777fb (patch) | |
tree | 4bbaf4169e3cba27d70395c2ecc21c8e0326a852 /src | |
parent | 08dbc6ef72db48168dc03991f5f838dae42c8dfd (diff) | |
download | bitcoin-b370164b319df1a500b70694b077f92265a777fb.tar.xz |
validationcaches: Abolish arbitrary limit
1. -maxsigcachesize is a DEBUG_ONLY option
2. Almost 7 years has passed since its semantics change in
830e3f3d027ba5c8121eed0f6a9ce99961352572 from "number of entries" to
"number of mebibytes"
3. A std::new_handler was added to the codebase after the original PR
which introduced this limit, which will terminate immediately instead
of causing trouble by being caught somewhere unexpected.
Diffstat (limited to 'src')
-rw-r--r-- | src/script/sigcache.cpp | 2 | ||||
-rw-r--r-- | src/script/sigcache.h | 2 | ||||
-rw-r--r-- | src/validation.cpp | 2 |
3 files changed, 2 insertions, 4 deletions
diff --git a/src/script/sigcache.cpp b/src/script/sigcache.cpp index 7cee55a431..43b594f3cb 100644 --- a/src/script/sigcache.cpp +++ b/src/script/sigcache.cpp @@ -96,7 +96,7 @@ bool InitSignatureCache() { // nMaxCacheSize is unsigned. If -maxsigcachesize is set to zero, // setup_bytes creates the minimum possible cache (2 elements). - size_t nMaxCacheSize = std::min(std::max((int64_t)0, gArgs.GetIntArg("-maxsigcachesize", DEFAULT_MAX_SIG_CACHE_SIZE) / 2), MAX_MAX_SIG_CACHE_SIZE) * ((size_t) 1 << 20); + size_t nMaxCacheSize = std::max((int64_t)0, gArgs.GetIntArg("-maxsigcachesize", DEFAULT_MAX_SIG_CACHE_SIZE) / 2) * ((size_t) 1 << 20); auto setup_results = signatureCache.setup_bytes(nMaxCacheSize); diff --git a/src/script/sigcache.h b/src/script/sigcache.h index edcba2543c..0e3f900acf 100644 --- a/src/script/sigcache.h +++ b/src/script/sigcache.h @@ -16,8 +16,6 @@ // systems). Due to how we count cache size, actual memory usage is slightly // more (~32.25 MB) static const unsigned int DEFAULT_MAX_SIG_CACHE_SIZE = 32; -// Maximum sig cache size allowed -static const int64_t MAX_MAX_SIG_CACHE_SIZE = 16384; class CPubKey; diff --git a/src/validation.cpp b/src/validation.cpp index d0c84ba317..4d174a4b16 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -1666,7 +1666,7 @@ bool InitScriptExecutionCache() { g_scriptExecutionCacheHasher.Write(nonce.begin(), 32); // nMaxCacheSize is unsigned. If -maxsigcachesize is set to zero, // setup_bytes creates the minimum possible cache (2 elements). - size_t nMaxCacheSize = std::min(std::max((int64_t)0, gArgs.GetIntArg("-maxsigcachesize", DEFAULT_MAX_SIG_CACHE_SIZE) / 2), MAX_MAX_SIG_CACHE_SIZE) * ((size_t) 1 << 20); + size_t nMaxCacheSize = std::max((int64_t)0, gArgs.GetIntArg("-maxsigcachesize", DEFAULT_MAX_SIG_CACHE_SIZE) / 2) * ((size_t) 1 << 20); auto setup_results = g_scriptExecutionCache.setup_bytes(nMaxCacheSize); |