mirror of
https://github.com/Retropex/bitcoin.git
synced 2025-05-12 19:20:42 +02:00
Merge 29309 via permitbarepubkey-28+knots
This commit is contained in:
commit
22193cca11
@ -683,6 +683,8 @@ void SetupServerArgs(ArgsManager& argsman)
|
||||
argsman.AddArg("-mempoolfullrbf", strprintf("Accept transaction replace-by-fee without requiring replaceability signaling (default: %u)", (DEFAULT_MEMPOOL_RBF_POLICY == RBFPolicy::Always)), ArgsManager::ALLOW_ANY, OptionsCategory::NODE_RELAY);
|
||||
argsman.AddArg("-mempoolreplacement", strprintf("Set to 0 to disable RBF entirely, \"fee,optin\" to honour RBF opt-out signal, or \"fee,-optin\" to always RBF aka full RBF (default: %s)", "fee,-optin"), ArgsManager::ALLOW_ANY, OptionsCategory::NODE_RELAY);
|
||||
argsman.AddArg("-mempooltruc", strprintf("Behaviour for transactions requesting TRUC limits: \"reject\" the transactions entirely, \"accept\" them just like any other, or \"enforce\" to impose their requested restrictions (default: %s)", "enforce"), ArgsManager::ALLOW_ANY, OptionsCategory::NODE_RELAY);
|
||||
argsman.AddArg("-permitbarepubkey", strprintf("Relay legacy pubkey outputs (default: %u)", DEFAULT_PERMIT_BAREPUBKEY), ArgsManager::ALLOW_ANY,
|
||||
OptionsCategory::NODE_RELAY);
|
||||
argsman.AddArg("-permitbaremultisig", strprintf("Relay transactions creating non-P2SH multisig outputs (default: %u)", DEFAULT_PERMIT_BAREMULTISIG), ArgsManager::ALLOW_ANY,
|
||||
OptionsCategory::NODE_RELAY);
|
||||
argsman.AddArg("-minrelaytxfee=<amt>", strprintf("Fees (in %s/kvB) smaller than this are considered zero fee for relaying, mining and transaction creation (default: %s)",
|
||||
|
@ -58,6 +58,7 @@ struct MemPoolOptions {
|
||||
* If nullopt, any size is nonstandard.
|
||||
*/
|
||||
std::optional<unsigned> max_datacarrier_bytes{DEFAULT_ACCEPT_DATACARRIER ? std::optional{MAX_OP_RETURN_RELAY} : std::nullopt};
|
||||
bool permit_bare_pubkey{DEFAULT_PERMIT_BAREPUBKEY};
|
||||
bool permit_bare_multisig{DEFAULT_PERMIT_BAREMULTISIG};
|
||||
bool require_standard{true};
|
||||
RBFPolicy rbf_policy{DEFAULT_MEMPOOL_RBF_POLICY};
|
||||
|
@ -81,6 +81,8 @@ util::Result<void> ApplyArgsManOptions(const ArgsManager& argsman, const CChainP
|
||||
}
|
||||
}
|
||||
|
||||
mempool_opts.permit_bare_pubkey = argsman.GetBoolArg("-permitbarepubkey", DEFAULT_PERMIT_BAREPUBKEY);
|
||||
|
||||
mempool_opts.permit_bare_multisig = argsman.GetBoolArg("-permitbaremultisig", DEFAULT_PERMIT_BAREMULTISIG);
|
||||
|
||||
if (argsman.GetBoolArg("-datacarrier", DEFAULT_ACCEPT_DATACARRIER)) {
|
||||
|
@ -161,6 +161,9 @@ bool IsStandardTx(const CTransaction& tx, const kernel::MemPoolOptions& opts, st
|
||||
nDataOut++;
|
||||
continue;
|
||||
}
|
||||
else if ((whichType == TxoutType::PUBKEY) && (!opts.permit_bare_pubkey)) {
|
||||
MaybeReject("bare-pubkey");
|
||||
}
|
||||
else if ((whichType == TxoutType::MULTISIG) && (!opts.permit_bare_multisig)) {
|
||||
MaybeReject("bare-multisig");
|
||||
}
|
||||
|
@ -45,6 +45,8 @@ static constexpr unsigned int MAX_STANDARD_TX_SIGOPS_COST{MAX_BLOCK_SIGOPS_COST/
|
||||
static constexpr unsigned int DEFAULT_INCREMENTAL_RELAY_FEE{1000};
|
||||
/** Default for -bytespersigop */
|
||||
static constexpr unsigned int DEFAULT_BYTES_PER_SIGOP{20};
|
||||
/** Default for -permitbarepubkey */
|
||||
static constexpr bool DEFAULT_PERMIT_BAREPUBKEY{true};
|
||||
/** Default for -permitbaremultisig */
|
||||
static constexpr bool DEFAULT_PERMIT_BAREMULTISIG{true};
|
||||
/** The maximum number of witness stack items in a standard P2WSH script */
|
||||
|
@ -59,8 +59,8 @@ FUZZ_TARGET(transaction, .init = initialize_transaction)
|
||||
}
|
||||
|
||||
std::string reason;
|
||||
const bool is_standard_with_permit_bare_multisig = IsStandardTx(tx, kernel::MemPoolOptions{.permit_bare_multisig = true}, reason);
|
||||
const bool is_standard_without_permit_bare_multisig = IsStandardTx(tx, kernel::MemPoolOptions{.permit_bare_multisig = false}, reason);
|
||||
const bool is_standard_with_permit_bare_multisig = IsStandardTx(tx, kernel::MemPoolOptions{.permit_bare_pubkey = true, .permit_bare_multisig = true}, reason);
|
||||
const bool is_standard_without_permit_bare_multisig = IsStandardTx(tx, kernel::MemPoolOptions{.permit_bare_pubkey = true, .permit_bare_multisig = false}, reason);
|
||||
if (is_standard_without_permit_bare_multisig) {
|
||||
assert(is_standard_with_permit_bare_multisig);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user