Bitcoin Core 28.99.0
P2P Digital Currency
|
#include <consensus/amount.h>
#include <policy/packages.h>
#include <policy/policy.h>
#include <primitives/transaction.h>
#include <txmempool.h>
#include <util/result.h>
#include <set>
#include <string>
Go to the source code of this file.
Functions | |
std::optional< std::pair< std::string, CTransactionRef > > | SingleTRUCChecks (const CTransactionRef &ptx, const CTxMemPool::setEntries &mempool_ancestors, const std::set< Txid > &direct_conflicts, int64_t vsize) |
Must be called for every transaction, even if not TRUC. More... | |
std::optional< std::string > | PackageTRUCChecks (const CTransactionRef &ptx, int64_t vsize, const Package &package, const CTxMemPool::setEntries &mempool_ancestors) |
Must be called for every transaction that is submitted within a package, even if not TRUC. More... | |
Variables | |
static constexpr decltype(CTransaction::version) | TRUC_VERSION {3} |
static constexpr unsigned int | TRUC_DESCENDANT_LIMIT {2} |
Maximum number of transactions including an unconfirmed tx and its descendants. More... | |
static constexpr unsigned int | TRUC_ANCESTOR_LIMIT {2} |
Maximum number of transactions including a TRUC tx and all its mempool ancestors. More... | |
static constexpr int64_t | TRUC_MAX_VSIZE {10000} |
Maximum sigop-adjusted virtual size of all v3 transactions. More... | |
static constexpr int64_t | TRUC_CHILD_MAX_VSIZE {1000} |
Maximum sigop-adjusted virtual size of a tx which spends from an unconfirmed TRUC transaction. More... | |
std::optional< std::string > PackageTRUCChecks | ( | const CTransactionRef & | ptx, |
int64_t | vsize, | ||
const Package & | package, | ||
const CTxMemPool::setEntries & | mempool_ancestors | ||
) |
Must be called for every transaction that is submitted within a package, even if not TRUC.
For each transaction in a package: If it's not a TRUC transaction, verify it has no direct TRUC parents in the mempool or the package.
If it is a TRUC transaction, verify that any direct parents in the mempool or the package are TRUC. If such a parent exists, verify that parent has no other children in the package or the mempool, and that the transaction itself has no children in the package.
If any TRUC violations in the package exist, this test will fail for one of them:
Definition at line 58 of file truc_policy.cpp.
std::optional< std::pair< std::string, CTransactionRef > > SingleTRUCChecks | ( | const CTransactionRef & | ptx, |
const CTxMemPool::setEntries & | mempool_ancestors, | ||
const std::set< Txid > & | direct_conflicts, | ||
int64_t | vsize | ||
) |
Must be called for every transaction, even if not TRUC.
Not strictly necessary for transactions accepted through AcceptMultipleTransactions.
Checks the following rules:
[in] | mempool_ancestors | The in-mempool ancestors of ptx. |
[in] | direct_conflicts | In-mempool transactions this tx conflicts with. These conflicts are used to more accurately calculate the resulting descendant count of in-mempool ancestors. |
[in] | vsize | The sigop-adjusted virtual size of ptx. |
Definition at line 164 of file truc_policy.cpp.
|
staticconstexpr |
Maximum number of transactions including a TRUC tx and all its mempool ancestors.
Definition at line 27 of file truc_policy.h.
|
staticconstexpr |
Maximum sigop-adjusted virtual size of a tx which spends from an unconfirmed TRUC transaction.
Definition at line 32 of file truc_policy.h.
|
staticconstexpr |
Maximum number of transactions including an unconfirmed tx and its descendants.
Definition at line 25 of file truc_policy.h.
|
staticconstexpr |
Maximum sigop-adjusted virtual size of all v3 transactions.
Definition at line 30 of file truc_policy.h.
|
staticconstexpr |
Definition at line 20 of file truc_policy.h.