mirror of
https://github.com/Retropex/bitcoin.git
synced 2025-05-28 04:52:36 +02:00
Adjust default policy for Knots and add -corepolicy option to undo
This commit is contained in:
parent
c505d5abab
commit
b7eb294a25
14
src/init.cpp
14
src/init.cpp
@ -129,6 +129,7 @@ using node::ThreadImport;
|
|||||||
using node::VerifyLoadedChainstate;
|
using node::VerifyLoadedChainstate;
|
||||||
using node::fReindex;
|
using node::fReindex;
|
||||||
|
|
||||||
|
static constexpr bool DEFAULT_COREPOLICY{false};
|
||||||
static constexpr bool DEFAULT_PROXYRANDOMIZE{true};
|
static constexpr bool DEFAULT_PROXYRANDOMIZE{true};
|
||||||
static constexpr bool DEFAULT_REST_ENABLE{false};
|
static constexpr bool DEFAULT_REST_ENABLE{false};
|
||||||
static constexpr bool DEFAULT_I2P_ACCEPT_INCOMING{true};
|
static constexpr bool DEFAULT_I2P_ACCEPT_INCOMING{true};
|
||||||
@ -443,6 +444,7 @@ void SetupServerArgs(ArgsManager& argsman)
|
|||||||
argsman.AddArg("-coinstatsindex", strprintf("Maintain coinstats index used by the gettxoutsetinfo RPC (default: %u)", DEFAULT_COINSTATSINDEX), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
argsman.AddArg("-coinstatsindex", strprintf("Maintain coinstats index used by the gettxoutsetinfo RPC (default: %u)", DEFAULT_COINSTATSINDEX), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
||||||
argsman.AddArg("-conf=<file>", strprintf("Specify path to read-only configuration file. Relative paths will be prefixed by datadir location (only useable from command line, not configuration file) (default: %s)", BITCOIN_CONF_FILENAME), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
argsman.AddArg("-conf=<file>", strprintf("Specify path to read-only configuration file. Relative paths will be prefixed by datadir location (only useable from command line, not configuration file) (default: %s)", BITCOIN_CONF_FILENAME), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
||||||
argsman.AddArg("-confrw=<file>", strprintf("Specify read/write configuration file. Relative paths will be prefixed by the network-specific datadir location (default: %s)", BITCOIN_RW_CONF_FILENAME), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
argsman.AddArg("-confrw=<file>", strprintf("Specify read/write configuration file. Relative paths will be prefixed by the network-specific datadir location (default: %s)", BITCOIN_RW_CONF_FILENAME), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
||||||
|
argsman.AddArg("-corepolicy", strprintf("Use Bitcoin Core policy defaults (default: %s)", DEFAULT_COREPOLICY), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
||||||
argsman.AddArg("-datadir=<dir>", "Specify data directory", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
argsman.AddArg("-datadir=<dir>", "Specify data directory", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
||||||
argsman.AddArg("-dbbatchsize", strprintf("Maximum database write batch size in bytes (default: %u)", nDefaultDbBatchSize), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::OPTIONS);
|
argsman.AddArg("-dbbatchsize", strprintf("Maximum database write batch size in bytes (default: %u)", nDefaultDbBatchSize), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::OPTIONS);
|
||||||
argsman.AddArg("-dbcache=<n>", strprintf("Maximum database cache size <n> MiB (%d to %d, default: %d). In addition, unused mempool memory is shared for this cache (see -maxmempool).", nMinDbCache, nMaxDbCache, nDefaultDbCache), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
argsman.AddArg("-dbcache=<n>", strprintf("Maximum database cache size <n> MiB (%d to %d, default: %d). In addition, unused mempool memory is shared for this cache (see -maxmempool).", nMinDbCache, nMaxDbCache, nDefaultDbCache), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
|
||||||
@ -712,6 +714,18 @@ static bool AppInitServers(NodeContext& node)
|
|||||||
// Parameter interaction based on rules
|
// Parameter interaction based on rules
|
||||||
void InitParameterInteraction(ArgsManager& args)
|
void InitParameterInteraction(ArgsManager& args)
|
||||||
{
|
{
|
||||||
|
if (args.GetBoolArg("-corepolicy", DEFAULT_COREPOLICY)) {
|
||||||
|
args.SoftSetArg("-bytespersigopstrict", "0");
|
||||||
|
args.SoftSetArg("-permitbaremultisig", "1");
|
||||||
|
args.SoftSetArg("-datacarriersize", "83");
|
||||||
|
|
||||||
|
args.SoftSetArg("-mempoolreplacement", args.GetBoolArg("-mempoolfullrbf", false) ? "fee,-optin" : "fee,optin");
|
||||||
|
args.SoftSetArg("-spkreuse", "allow");
|
||||||
|
args.SoftSetArg("-blockprioritysize", "0");
|
||||||
|
args.SoftSetArg("-blockmaxsize", "4000000");
|
||||||
|
args.SoftSetArg("-blockmaxweight", "3996000");
|
||||||
|
}
|
||||||
|
|
||||||
// when specifying an explicit binding address, you want to listen on it
|
// when specifying an explicit binding address, you want to listen on it
|
||||||
// even when -connect or -proxy is specified
|
// even when -connect or -proxy is specified
|
||||||
if (args.IsArgSet("-bind")) {
|
if (args.IsArgSet("-bind")) {
|
||||||
|
@ -25,7 +25,7 @@ static constexpr unsigned int DEFAULT_BLOCKSONLY_MAX_MEMPOOL_SIZE_MB{5};
|
|||||||
/** Default for -mempoolexpiry, expiration time for mempool transactions in hours */
|
/** Default for -mempoolexpiry, expiration time for mempool transactions in hours */
|
||||||
static constexpr unsigned int DEFAULT_MEMPOOL_EXPIRY_HOURS{336};
|
static constexpr unsigned int DEFAULT_MEMPOOL_EXPIRY_HOURS{336};
|
||||||
/** Default for -mempoolreplacement; must update docs in init.cpp manually */
|
/** Default for -mempoolreplacement; must update docs in init.cpp manually */
|
||||||
static constexpr RBFPolicy DEFAULT_MEMPOOL_RBF_POLICY{RBFPolicy::OptIn};
|
static constexpr RBFPolicy DEFAULT_MEMPOOL_RBF_POLICY{RBFPolicy::Always};
|
||||||
|
|
||||||
namespace kernel {
|
namespace kernel {
|
||||||
/**
|
/**
|
||||||
|
@ -58,8 +58,8 @@ void RegenerateCommitments(CBlock& block, ChainstateManager& chainman)
|
|||||||
|
|
||||||
static BlockAssembler::Options ClampOptions(BlockAssembler::Options options)
|
static BlockAssembler::Options ClampOptions(BlockAssembler::Options options)
|
||||||
{
|
{
|
||||||
// Limit weight to between 4K and DEFAULT_BLOCK_MAX_WEIGHT for sanity:
|
// Limit weight to between 4K and MAX_BLOCK_WEIGHT-4k for sanity:
|
||||||
options.nBlockMaxWeight = std::clamp<size_t>(options.nBlockMaxWeight, 4000, DEFAULT_BLOCK_MAX_WEIGHT);
|
options.nBlockMaxWeight = std::clamp<size_t>(options.nBlockMaxWeight, 4000, MAX_BLOCK_WEIGHT - 4000);
|
||||||
// Limit size to between 1K and MAX_BLOCK_SERIALIZED_SIZE-1K for sanity:
|
// Limit size to between 1K and MAX_BLOCK_SERIALIZED_SIZE-1K for sanity:
|
||||||
options.nBlockMaxSize = std::clamp<size_t>(options.nBlockMaxSize, 1000, MAX_BLOCK_SERIALIZED_SIZE - 1000);
|
options.nBlockMaxSize = std::clamp<size_t>(options.nBlockMaxSize, 1000, MAX_BLOCK_SERIALIZED_SIZE - 1000);
|
||||||
// Whether we need to account for byte usage (in addition to weight usage)
|
// Whether we need to account for byte usage (in addition to weight usage)
|
||||||
|
@ -22,13 +22,13 @@ class CFeeRate;
|
|||||||
class CScript;
|
class CScript;
|
||||||
|
|
||||||
/** Default for -blockmaxsize, which controls the maximum size of block the mining code will create **/
|
/** Default for -blockmaxsize, which controls the maximum size of block the mining code will create **/
|
||||||
static const unsigned int DEFAULT_BLOCK_MAX_SIZE = MAX_BLOCK_SERIALIZED_SIZE;
|
static const unsigned int DEFAULT_BLOCK_MAX_SIZE = 300000;
|
||||||
/** Default for -blockprioritysize, maximum space for zero/low-fee transactions **/
|
/** Default for -blockprioritysize, maximum space for zero/low-fee transactions **/
|
||||||
static const unsigned int DEFAULT_BLOCK_PRIORITY_SIZE = 0;
|
static const unsigned int DEFAULT_BLOCK_PRIORITY_SIZE = 100000;
|
||||||
/** Minimum priority for transactions to be accepted into the priority area **/
|
/** Minimum priority for transactions to be accepted into the priority area **/
|
||||||
static const double MINIMUM_TX_PRIORITY = COIN * 144 / 250;
|
static const double MINIMUM_TX_PRIORITY = COIN * 144 / 250;
|
||||||
/** Default for -blockmaxweight, which controls the range of block weights the mining code will create **/
|
/** Default for -blockmaxweight, which controls the range of block weights the mining code will create **/
|
||||||
static constexpr unsigned int DEFAULT_BLOCK_MAX_WEIGHT{MAX_BLOCK_WEIGHT - 4000};
|
static constexpr unsigned int DEFAULT_BLOCK_MAX_WEIGHT{1500000};
|
||||||
/** Default for -blockmintxfee, which sets the minimum feerate for a transaction in blocks created by mining code **/
|
/** Default for -blockmintxfee, which sets the minimum feerate for a transaction in blocks created by mining code **/
|
||||||
static constexpr unsigned int DEFAULT_BLOCK_MIN_TX_FEE{1000};
|
static constexpr unsigned int DEFAULT_BLOCK_MIN_TX_FEE{1000};
|
||||||
/** The maximum weight for transactions we're willing to relay/mine */
|
/** The maximum weight for transactions we're willing to relay/mine */
|
||||||
@ -50,7 +50,7 @@ static constexpr unsigned int DEFAULT_BYTES_PER_SIGOP_STRICT{20};
|
|||||||
/** Default for -datacarriercost (multiplied by WITNESS_SCALE_FACTOR) */
|
/** Default for -datacarriercost (multiplied by WITNESS_SCALE_FACTOR) */
|
||||||
static constexpr unsigned int DEFAULT_WEIGHT_PER_DATA_BYTE{1};
|
static constexpr unsigned int DEFAULT_WEIGHT_PER_DATA_BYTE{1};
|
||||||
/** Default for -permitbaremultisig */
|
/** Default for -permitbaremultisig */
|
||||||
static constexpr bool DEFAULT_PERMIT_BAREMULTISIG{true};
|
static constexpr bool DEFAULT_PERMIT_BAREMULTISIG{false};
|
||||||
/** The maximum number of witness stack items in a standard P2WSH script */
|
/** The maximum number of witness stack items in a standard P2WSH script */
|
||||||
static constexpr unsigned int MAX_STANDARD_P2WSH_STACK_ITEMS{100};
|
static constexpr unsigned int MAX_STANDARD_P2WSH_STACK_ITEMS{100};
|
||||||
/** The maximum size in bytes of each witness stack item in a standard P2WSH script */
|
/** The maximum size in bytes of each witness stack item in a standard P2WSH script */
|
||||||
|
@ -35,6 +35,7 @@
|
|||||||
#include <QFontDialog>
|
#include <QFontDialog>
|
||||||
#include <QGroupBox>
|
#include <QGroupBox>
|
||||||
#include <QHBoxLayout>
|
#include <QHBoxLayout>
|
||||||
|
#include <QInputDialog>
|
||||||
#include <QIntValidator>
|
#include <QIntValidator>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QLocale>
|
#include <QLocale>
|
||||||
@ -692,14 +693,25 @@ void OptionsDialog::on_resetButton_clicked()
|
|||||||
with a client shutdown. */
|
with a client shutdown. */
|
||||||
reset_dialog_text.append(tr("Client will be shut down. Do you want to proceed?"));
|
reset_dialog_text.append(tr("Client will be shut down. Do you want to proceed?"));
|
||||||
//: Window title text of pop-up window shown when the user has chosen to reset options.
|
//: Window title text of pop-up window shown when the user has chosen to reset options.
|
||||||
QMessageBox::StandardButton btnRetVal = QMessageBox::question(this, tr("Confirm options reset"),
|
QStringList items;
|
||||||
reset_dialog_text, QMessageBox::Yes | QMessageBox::Cancel, QMessageBox::Cancel);
|
QString strPrefix = tr("Use policy defaults for %1");
|
||||||
|
items << strPrefix.arg(tr(PACKAGE_NAME));
|
||||||
|
items << strPrefix.arg(tr("Bitcoin Core")+" ");
|
||||||
|
|
||||||
if (btnRetVal == QMessageBox::Cancel)
|
QInputDialog dialog(this);
|
||||||
|
dialog.setWindowTitle(tr("Confirm options reset"));
|
||||||
|
dialog.setLabelText(reset_dialog_text);
|
||||||
|
dialog.setComboBoxItems(items);
|
||||||
|
dialog.setTextValue(items[0]);
|
||||||
|
dialog.setComboBoxEditable(false);
|
||||||
|
|
||||||
|
if (!dialog.exec()) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/* reset all options and close GUI */
|
/* reset all options and close GUI */
|
||||||
model->Reset();
|
model->Reset();
|
||||||
|
model->setData(model->index(OptionsModel::corepolicy, 0), items.indexOf(dialog.textValue()));
|
||||||
close();
|
close();
|
||||||
Q_EMIT quitOnReset();
|
Q_EMIT quitOnReset();
|
||||||
}
|
}
|
||||||
|
@ -1201,6 +1201,9 @@ bool OptionsModel::setOption(OptionID option, const QVariant& value, const std::
|
|||||||
gArgs.ModifyRWConfigFile("blockreconstructionextratxn", strNv);
|
gArgs.ModifyRWConfigFile("blockreconstructionextratxn", strNv);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case corepolicy:
|
||||||
|
gArgs.ModifyRWConfigFile("corepolicy", value.toString().toStdString());
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -103,6 +103,7 @@ public:
|
|||||||
blockprioritysize,
|
blockprioritysize,
|
||||||
blockmaxweight,
|
blockmaxweight,
|
||||||
blockreconstructionextratxn,
|
blockreconstructionextratxn,
|
||||||
|
corepolicy,
|
||||||
OptionIDRowCount,
|
OptionIDRowCount,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -33,10 +33,10 @@ public:
|
|||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Default setting for -datacarriersize. 80 bytes of data, +1 for OP_RETURN,
|
* Default setting for -datacarriersize. 40 bytes of data, +1 for OP_RETURN,
|
||||||
* +2 for the pushdata opcodes.
|
* +1 for the pushdata opcode.
|
||||||
*/
|
*/
|
||||||
static const unsigned int MAX_OP_RETURN_RELAY = 83;
|
static constexpr unsigned int MAX_OP_RETURN_RELAY{42};
|
||||||
/** Default for -datacarrierfullcount */
|
/** Default for -datacarrierfullcount */
|
||||||
static constexpr bool DEFAULT_DATACARRIER_FULLCOUNT{false};
|
static constexpr bool DEFAULT_DATACARRIER_FULLCOUNT{false};
|
||||||
|
|
||||||
|
@ -604,6 +604,8 @@ void MinerTestingSetup::TestPrioritisedMining(const CScript& scriptPubKey, const
|
|||||||
// NOTE: These tests rely on CreateNewBlock doing its own self-validation!
|
// NOTE: These tests rely on CreateNewBlock doing its own self-validation!
|
||||||
BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
|
BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
|
||||||
{
|
{
|
||||||
|
gArgs.ForceSetArg("-blockprioritysize", "0");
|
||||||
|
|
||||||
// Note that by default, these tests run with size accounting enabled.
|
// Note that by default, these tests run with size accounting enabled.
|
||||||
CScript scriptPubKey = CScript() << ParseHex("04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f") << OP_CHECKSIG;
|
CScript scriptPubKey = CScript() << ParseHex("04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f") << OP_CHECKSIG;
|
||||||
std::unique_ptr<CBlockTemplate> pblocktemplate;
|
std::unique_ptr<CBlockTemplate> pblocktemplate;
|
||||||
|
@ -120,6 +120,7 @@ class TestNode():
|
|||||||
|
|
||||||
if self.version is None:
|
if self.version is None:
|
||||||
self.args += [
|
self.args += [
|
||||||
|
"-corepolicy",
|
||||||
"-softwareexpiry=0",
|
"-softwareexpiry=0",
|
||||||
"-walletimplicitsegwit",
|
"-walletimplicitsegwit",
|
||||||
]
|
]
|
||||||
|
Loading…
Reference in New Issue
Block a user