From ae8e6df709ff3d52b8e9918e09cacb64f83ae379 Mon Sep 17 00:00:00 2001 From: glozow Date: Mon, 5 Apr 2021 11:13:27 -0700 Subject: [policy] limit package sizes Maximum number of transactions allowed in a package is 25, equal to the default mempool descendant limit: if a package has more transactions than this, either it would fail default mempool descendant limit or the transactions don't all have a dependency relationship (but then they shouldn't be in a package together). Same rationale for 101KvB virtual size package limit. Note that these policies are only used in test accepts so far. --- src/policy/packages.h | 5 ++++ src/test/txvalidation_tests.cpp | 58 +++++++++++++++++++++++++++++++++++++++++ src/validation.cpp | 14 ++++++++++ 3 files changed, 77 insertions(+) diff --git a/src/policy/packages.h b/src/policy/packages.h index 60aafb6d74..4b1463dcb3 100644 --- a/src/policy/packages.h +++ b/src/policy/packages.h @@ -10,6 +10,11 @@ #include +/** Default maximum number of transactions in a package. */ +static constexpr uint32_t MAX_PACKAGE_COUNT{25}; +/** Default maximum total virtual size of transactions in a package in KvB. */ +static constexpr uint32_t MAX_PACKAGE_SIZE{101}; + /** A "reason" why a package was invalid. It may be that one or more of the included * transactions is invalid or the package itself violates our rules. * We don't distinguish between consensus and policy violations right now. diff --git a/src/test/txvalidation_tests.cpp b/src/test/txvalidation_tests.cpp index 5242c66628..95ad85d0f8 100644 --- a/src/test/txvalidation_tests.cpp +++ b/src/test/txvalidation_tests.cpp @@ -4,6 +4,8 @@ #include #include +#include +#include #include #include