mirror of
https://github.com/Retropex/bitcoin.git
synced 2025-05-12 19:20:42 +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::fReindex;
|
||||
|
||||
static constexpr bool DEFAULT_COREPOLICY{false};
|
||||
static constexpr bool DEFAULT_PROXYRANDOMIZE{true};
|
||||
static constexpr bool DEFAULT_REST_ENABLE{false};
|
||||
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("-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("-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("-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);
|
||||
@ -712,6 +714,18 @@ static bool AppInitServers(NodeContext& node)
|
||||
// Parameter interaction based on rules
|
||||
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
|
||||
// even when -connect or -proxy is specified
|
||||
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 */
|
||||
static constexpr unsigned int DEFAULT_MEMPOOL_EXPIRY_HOURS{336};
|
||||
/** 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 {
|
||||
/**
|
||||
|
@ -58,8 +58,8 @@ void RegenerateCommitments(CBlock& block, ChainstateManager& chainman)
|
||||
|
||||
static BlockAssembler::Options ClampOptions(BlockAssembler::Options options)
|
||||
{
|
||||
// Limit weight to between 4K and DEFAULT_BLOCK_MAX_WEIGHT for sanity:
|
||||
options.nBlockMaxWeight = std::clamp<size_t>(options.nBlockMaxWeight, 4000, DEFAULT_BLOCK_MAX_WEIGHT);
|
||||
// Limit weight to between 4K and MAX_BLOCK_WEIGHT-4k for sanity:
|
||||
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:
|
||||
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)
|
||||
|
@ -22,13 +22,13 @@ class CFeeRate;
|
||||
class CScript;
|
||||
|
||||
/** 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 **/
|
||||
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 **/
|
||||
static const double MINIMUM_TX_PRIORITY = COIN * 144 / 250;
|
||||
/** 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 **/
|
||||
static constexpr unsigned int DEFAULT_BLOCK_MIN_TX_FEE{1000};
|
||||
/** 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) */
|
||||
static constexpr unsigned int DEFAULT_WEIGHT_PER_DATA_BYTE{1};
|
||||
/** 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 */
|
||||
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 */
|
||||
|
@ -35,6 +35,7 @@
|
||||
#include <QFontDialog>
|
||||
#include <QGroupBox>
|
||||
#include <QHBoxLayout>
|
||||
#include <QInputDialog>
|
||||
#include <QIntValidator>
|
||||
#include <QLabel>
|
||||
#include <QLocale>
|
||||
@ -692,14 +693,25 @@ void OptionsDialog::on_resetButton_clicked()
|
||||
with a client shutdown. */
|
||||
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.
|
||||
QMessageBox::StandardButton btnRetVal = QMessageBox::question(this, tr("Confirm options reset"),
|
||||
reset_dialog_text, QMessageBox::Yes | QMessageBox::Cancel, QMessageBox::Cancel);
|
||||
QStringList items;
|
||||
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;
|
||||
}
|
||||
|
||||
/* reset all options and close GUI */
|
||||
model->Reset();
|
||||
model->setData(model->index(OptionsModel::corepolicy, 0), items.indexOf(dialog.textValue()));
|
||||
close();
|
||||
Q_EMIT quitOnReset();
|
||||
}
|
||||
|
@ -1201,6 +1201,9 @@ bool OptionsModel::setOption(OptionID option, const QVariant& value, const std::
|
||||
gArgs.ModifyRWConfigFile("blockreconstructionextratxn", strNv);
|
||||
}
|
||||
break;
|
||||
case corepolicy:
|
||||
gArgs.ModifyRWConfigFile("corepolicy", value.toString().toStdString());
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
@ -103,6 +103,7 @@ public:
|
||||
blockprioritysize,
|
||||
blockmaxweight,
|
||||
blockreconstructionextratxn,
|
||||
corepolicy,
|
||||
OptionIDRowCount,
|
||||
};
|
||||
|
||||
|
@ -33,10 +33,10 @@ public:
|
||||
};
|
||||
|
||||
/**
|
||||
* Default setting for -datacarriersize. 80 bytes of data, +1 for OP_RETURN,
|
||||
* +2 for the pushdata opcodes.
|
||||
* Default setting for -datacarriersize. 40 bytes of data, +1 for OP_RETURN,
|
||||
* +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 */
|
||||
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!
|
||||
BOOST_AUTO_TEST_CASE(CreateNewBlock_validity)
|
||||
{
|
||||
gArgs.ForceSetArg("-blockprioritysize", "0");
|
||||
|
||||
// Note that by default, these tests run with size accounting enabled.
|
||||
CScript scriptPubKey = CScript() << ParseHex("04678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5f") << OP_CHECKSIG;
|
||||
std::unique_ptr<CBlockTemplate> pblocktemplate;
|
||||
|
@ -120,6 +120,7 @@ class TestNode():
|
||||
|
||||
if self.version is None:
|
||||
self.args += [
|
||||
"-corepolicy",
|
||||
"-softwareexpiry=0",
|
||||
"-walletimplicitsegwit",
|
||||
]
|
||||
|
Loading…
Reference in New Issue
Block a user