MCPcopy Create free account
hub / github.com/bitcoin/bitcoin / SetupServerArgs

Function SetupServerArgs

src/init.cpp:485–761  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

483#endif
484
485void SetupServerArgs(ArgsManager& argsman, bool can_listen_ipc)
486{
487 SetupHelpOptions(argsman);
488 argsman.AddArg("-help-debug", "Print help message with debugging options and exit", ArgsManager::ALLOW_ANY, OptionsCategory::DEBUG_TEST); // server-only for now
489
490 init::AddLoggingArgs(argsman);
491
492 const auto defaultBaseParams = CreateBaseChainParams(ChainType::MAIN);
493 const auto testnetBaseParams = CreateBaseChainParams(ChainType::TESTNET);
494 const auto testnet4BaseParams = CreateBaseChainParams(ChainType::TESTNET4);
495 const auto signetBaseParams = CreateBaseChainParams(ChainType::SIGNET);
496 const auto regtestBaseParams = CreateBaseChainParams(ChainType::REGTEST);
497 const auto defaultChainParams = CreateChainParams(argsman, ChainType::MAIN);
498 const auto testnetChainParams = CreateChainParams(argsman, ChainType::TESTNET);
499 const auto testnet4ChainParams = CreateChainParams(argsman, ChainType::TESTNET4);
500 const auto signetChainParams = CreateChainParams(argsman, ChainType::SIGNET);
501 const auto regtestChainParams = CreateChainParams(argsman, ChainType::REGTEST);
502
503 // Hidden Options
504 std::vector<std::string> hidden_args = {
505 "-dbcrashratio", "-forcecompactdb",
506 // GUI args. These will be overwritten by SetupUIArgs for the GUI
507 "-choosedatadir", "-lang=<lang>", "-min", "-resetguisettings", "-splash", "-uiplatform"};
508
509 argsman.AddArg("-version", "Print version and exit", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
510#if HAVE_SYSTEM
511 argsman.AddArg("-alertnotify=<cmd>", "Execute command when an alert is raised (%s in cmd is replaced by message)", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
512#endif
513 argsman.AddArg("-assumevalid=<hex>", strprintf("If this block is in the chain assume that it and its ancestors are valid and potentially skip their script verification (0 to verify all, default: %s, testnet3: %s, testnet4: %s, signet: %s)", defaultChainParams->GetConsensus().defaultAssumeValid.GetHex(), testnetChainParams->GetConsensus().defaultAssumeValid.GetHex(), testnet4ChainParams->GetConsensus().defaultAssumeValid.GetHex(), signetChainParams->GetConsensus().defaultAssumeValid.GetHex()), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
514 argsman.AddArg("-blocksdir=<dir>", "Specify directory to hold blocks subdirectory for *.dat files (default: <datadir>)", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
515 argsman.AddArg("-blocksxor",
516 strprintf("Whether an XOR-key applies to blocksdir *.dat files. "
517 "The created XOR-key will be zeros for an existing blocksdir or when `-blocksxor=0` is "
518 "set, and random for a freshly initialized blocksdir. "
519 "(default: %u)",
520 kernel::DEFAULT_XOR_BLOCKSDIR),
521 ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
522 argsman.AddArg("-fastprune", "Use smaller block files and lower minimum prune height for testing purposes", ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::DEBUG_TEST);
523#if HAVE_SYSTEM
524 argsman.AddArg("-blocknotify=<cmd>", "Execute command when the best block changes (%s in cmd is replaced by block hash)", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
525#endif
526 argsman.AddArg("-blockreconstructionextratxn=<n>", strprintf("Extra transactions to keep in memory for compact block reconstructions (default: %u)", DEFAULT_BLOCK_RECONSTRUCTION_EXTRA_TXN), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
527 argsman.AddArg("-blocksonly", strprintf("Whether to reject transactions from network peers. Disables automatic broadcast and rebroadcast of transactions, unless the source peer has the 'forcerelay' permission. RPC transactions are not affected. (default: %u)", DEFAULT_BLOCKSONLY), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
528 argsman.AddArg("-coinstatsindex", strprintf("Maintain coinstats index used by the gettxoutsetinfo RPC (default: %u)", DEFAULT_COINSTATSINDEX), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
529 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);
530 argsman.AddArg("-datadir=<dir>", "Specify data directory", ArgsManager::ALLOW_ANY | ArgsManager::DISALLOW_NEGATION, OptionsCategory::OPTIONS);
531 argsman.AddArg("-dbbatchsize", strprintf("Maximum database write batch size in bytes (default: %u)", DEFAULT_DB_CACHE_BATCH), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::OPTIONS);
532 argsman.AddArg("-dbcache=<n>", strprintf("Maximum database cache size <n> MiB (minimum %d, default: %d). Make sure you have enough RAM. In addition, unused memory allocated to the mempool is shared with this cache (see -maxmempool).", MIN_DB_CACHE >> 20, node::GetDefaultDBCache() >> 20), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
533 argsman.AddArg("-includeconf=<file>", "Specify additional configuration file, relative to the -datadir path (only useable from configuration file, not command line)", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
534 argsman.AddArg("-allowignoredconf", strprintf("For backwards compatibility, treat an unused %s file in the datadir as a warning, not an error.", BITCOIN_CONF_FILENAME), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
535 argsman.AddArg("-loadblock=<file>", "Imports blocks from an external file on startup. Obfuscated blocks are not supported.", ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
536 argsman.AddArg("-maxmempool=<n>", strprintf("Keep the transaction memory pool below <n> megabytes (default: %u)", DEFAULT_MAX_MEMPOOL_SIZE_MB), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
537 argsman.AddArg("-mempoolexpiry=<n>", strprintf("Do not keep transactions in the mempool longer than <n> hours (default: %u)", DEFAULT_MEMPOOL_EXPIRY_HOURS), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
538 argsman.AddArg("-minimumchainwork=<hex>", strprintf("Minimum work assumed to exist on a valid chain in hex (default: %s, testnet3: %s, testnet4: %s, signet: %s)", defaultChainParams->GetConsensus().nMinimumChainWork.GetHex(), testnetChainParams->GetConsensus().nMinimumChainWork.GetHex(), testnet4ChainParams->GetConsensus().nMinimumChainWork.GetHex(), signetChainParams->GetConsensus().nMinimumChainWork.GetHex()), ArgsManager::ALLOW_ANY | ArgsManager::DEBUG_ONLY, OptionsCategory::OPTIONS);
539 argsman.AddArg("-par=<n>", strprintf("Set the number of script verification threads (0 = auto, up to %d, <0 = leave that many cores free, default: %d)",
540 MAX_SCRIPTCHECK_THREADS, DEFAULT_SCRIPTCHECK_THREADS), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
541 argsman.AddArg("-persistmempool", strprintf("Whether to save the mempool on shutdown and load on restart (default: %u)", DEFAULT_PERSIST_MEMPOOL), ArgsManager::ALLOW_ANY, OptionsCategory::OPTIONS);
542 argsman.AddArg("-persistmempoolv1",

Callers 3

ParseArgsFunction · 0.85
BasicTestingSetupMethod · 0.85
GuiMainFunction · 0.85

Calls 15

SetupHelpOptionsFunction · 0.85
AddLoggingArgsFunction · 0.85
CreateBaseChainParamsFunction · 0.85
CreateChainParamsFunction · 0.85
GetDefaultDBCacheFunction · 0.85
JoinFunction · 0.85
GetNetworkNamesFunction · 0.85
FormatMoneyFunction · 0.85
AddArgMethod · 0.80
RPCPortMethod · 0.80

Tested by 1

BasicTestingSetupMethod · 0.68