gArgs.AddArg("-timeout=<n>",strprintf("Specify connection timeout in milliseconds (minimum: 1, default: %d)",DEFAULT_CONNECT_TIMEOUT),ArgsManager::ALLOW_ANY,OptionsCategory::CONNECTION);
gArgs.AddArg("-timeout=<n>",strprintf("Specify connection timeout in milliseconds (minimum: 1, default: %d)",DEFAULT_CONNECT_TIMEOUT),ArgsManager::ALLOW_ANY,OptionsCategory::CONNECTION);
gArgs.AddArg("-peertimeout=<n>",strprintf("Specify p2p connection timeout in seconds. This option determines the amount of time a peer may be inactive before the connection to it is dropped. (minimum: 1, default: %d)",DEFAULT_PEER_CONNECT_TIMEOUT),ArgsManager::ALLOW_ANY|ArgsManager::DEBUG_ONLY,OptionsCategory::CONNECTION);
gArgs.AddArg("-peertimeout=<n>",strprintf("Specify p2p connection timeout in seconds. This option determines the amount of time a peer may be inactive before the connection to it is dropped. (minimum: 1, default: %d)",DEFAULT_PEER_CONNECT_TIMEOUT),ArgsManager::ALLOW_ANY|ArgsManager::DEBUG_ONLY,OptionsCategory::CONNECTION);
gArgs.AddArg("-torcontrol=<ip>:<port>",strprintf("Tor control port to use if onion listening enabled (default: %s)",DEFAULT_TOR_CONTROL),ArgsManager::ALLOW_ANY,OptionsCategory::CONNECTION);
gArgs.AddArg("-torcontrol=<ip>:<port>",strprintf("Tor control port to use if onion listening enabled (default: %s)",DEFAULT_TOR_CONTROL),ArgsManager::ALLOW_ANY,OptionsCategory::CONNECTION);
gArgs.AddArg("-torpassword=<pass>","Tor control port password (default: empty)",ArgsManager::ALLOW_ANY,OptionsCategory::CONNECTION);
gArgs.AddArg("-torpassword=<pass>","Tor control port password (default: empty)",ArgsManager::ALLOW_ANY|ArgsManager::SENSITIVE,OptionsCategory::CONNECTION);
gArgs.AddArg("-asmap=<file>","Specify asn mapping used for bucketing of the peers. Path should be relative to the -datadir path.",ArgsManager::ALLOW_ANY,OptionsCategory::CONNECTION);
gArgs.AddArg("-asmap=<file>","Specify asn mapping used for bucketing of the peers. Path should be relative to the -datadir path.",ArgsManager::ALLOW_ANY,OptionsCategory::CONNECTION);
#ifdef USE_UPNP
#ifdef USE_UPNP
#if USE_UPNP
#if USE_UPNP
@ -537,15 +537,15 @@ void SetupServerArgs()
gArgs.AddArg("-rest",strprintf("Accept public REST requests (default: %u)",DEFAULT_REST_ENABLE),ArgsManager::ALLOW_ANY,OptionsCategory::RPC);
gArgs.AddArg("-rest",strprintf("Accept public REST requests (default: %u)",DEFAULT_REST_ENABLE),ArgsManager::ALLOW_ANY,OptionsCategory::RPC);
gArgs.AddArg("-rpcallowip=<ip>","Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times",ArgsManager::ALLOW_ANY,OptionsCategory::RPC);
gArgs.AddArg("-rpcallowip=<ip>","Allow JSON-RPC connections from specified source. Valid for <ip> are a single IP (e.g. 1.2.3.4), a network/netmask (e.g. 1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This option can be specified multiple times",ArgsManager::ALLOW_ANY,OptionsCategory::RPC);
gArgs.AddArg("-rpcauth=<userpw>","Username and HMAC-SHA-256 hashed password for JSON-RPC connections. The field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A canonical python script is included in share/rpcauth. The client then connects normally using the rpcuser=<USERNAME>/rpcpassword=<PASSWORD> pair of arguments. This option can be specified multiple times",ArgsManager::ALLOW_ANY,OptionsCategory::RPC);
gArgs.AddArg("-rpcauth=<userpw>","Username and HMAC-SHA-256 hashed password for JSON-RPC connections. The field <userpw> comes in the format: <USERNAME>:<SALT>$<HASH>. A canonical python script is included in share/rpcauth. The client then connects normally using the rpcuser=<USERNAME>/rpcpassword=<PASSWORD> pair of arguments. This option can be specified multiple times",ArgsManager::ALLOW_ANY|ArgsManager::SENSITIVE,OptionsCategory::RPC);
gArgs.AddArg("-rpcbind=<addr>[:port]","Bind to given address to listen for JSON-RPC connections. Do not expose the RPC server to untrusted networks such as the public internet! This option is ignored unless -rpcallowip is also passed. Port is optional and overrides -rpcport. Use [host]:port notation for IPv6. This option can be specified multiple times (default: 127.0.0.1 and ::1 i.e., localhost)",ArgsManager::ALLOW_ANY|ArgsManager::NETWORK_ONLY,OptionsCategory::RPC);
gArgs.AddArg("-rpcbind=<addr>[:port]","Bind to given address to listen for JSON-RPC connections. Do not expose the RPC server to untrusted networks such as the public internet! This option is ignored unless -rpcallowip is also passed. Port is optional and overrides -rpcport. Use [host]:port notation for IPv6. This option can be specified multiple times (default: 127.0.0.1 and ::1 i.e., localhost)",ArgsManager::ALLOW_ANY|ArgsManager::NETWORK_ONLY|ArgsManager::SENSITIVE,OptionsCategory::RPC);
gArgs.AddArg("-rpccookiefile=<loc>","Location of the auth cookie. Relative paths will be prefixed by a net-specific datadir location. (default: data dir)",ArgsManager::ALLOW_ANY,OptionsCategory::RPC);
gArgs.AddArg("-rpccookiefile=<loc>","Location of the auth cookie. Relative paths will be prefixed by a net-specific datadir location. (default: data dir)",ArgsManager::ALLOW_ANY,OptionsCategory::RPC);
gArgs.AddArg("-rpcpassword=<pw>","Password for JSON-RPC connections",ArgsManager::ALLOW_ANY,OptionsCategory::RPC);
gArgs.AddArg("-rpcpassword=<pw>","Password for JSON-RPC connections",ArgsManager::ALLOW_ANY|ArgsManager::SENSITIVE,OptionsCategory::RPC);
gArgs.AddArg("-rpcport=<port>",strprintf("Listen for JSON-RPC connections on <port> (default: %u, testnet: %u, regtest: %u)",defaultBaseParams->RPCPort(),testnetBaseParams->RPCPort(),regtestBaseParams->RPCPort()),ArgsManager::ALLOW_ANY|ArgsManager::NETWORK_ONLY,OptionsCategory::RPC);
gArgs.AddArg("-rpcport=<port>",strprintf("Listen for JSON-RPC connections on <port> (default: %u, testnet: %u, regtest: %u)",defaultBaseParams->RPCPort(),testnetBaseParams->RPCPort(),regtestBaseParams->RPCPort()),ArgsManager::ALLOW_ANY|ArgsManager::NETWORK_ONLY,OptionsCategory::RPC);
gArgs.AddArg("-rpcserialversion",strprintf("Sets the serialization of raw transaction or block hex returned in non-verbose mode, non-segwit(0) or segwit(1) (default: %d)",DEFAULT_RPC_SERIALIZE_VERSION),ArgsManager::ALLOW_ANY,OptionsCategory::RPC);
gArgs.AddArg("-rpcserialversion",strprintf("Sets the serialization of raw transaction or block hex returned in non-verbose mode, non-segwit(0) or segwit(1) (default: %d)",DEFAULT_RPC_SERIALIZE_VERSION),ArgsManager::ALLOW_ANY,OptionsCategory::RPC);
gArgs.AddArg("-rpcservertimeout=<n>",strprintf("Timeout during HTTP requests (default: %d)",DEFAULT_HTTP_SERVER_TIMEOUT),ArgsManager::ALLOW_ANY|ArgsManager::DEBUG_ONLY,OptionsCategory::RPC);
gArgs.AddArg("-rpcservertimeout=<n>",strprintf("Timeout during HTTP requests (default: %d)",DEFAULT_HTTP_SERVER_TIMEOUT),ArgsManager::ALLOW_ANY|ArgsManager::DEBUG_ONLY,OptionsCategory::RPC);
gArgs.AddArg("-rpcthreads=<n>",strprintf("Set the number of threads to service RPC calls (default: %d)",DEFAULT_HTTP_THREADS),ArgsManager::ALLOW_ANY,OptionsCategory::RPC);
gArgs.AddArg("-rpcthreads=<n>",strprintf("Set the number of threads to service RPC calls (default: %d)",DEFAULT_HTTP_THREADS),ArgsManager::ALLOW_ANY,OptionsCategory::RPC);
gArgs.AddArg("-rpcuser=<user>","Username for JSON-RPC connections",ArgsManager::ALLOW_ANY,OptionsCategory::RPC);
gArgs.AddArg("-rpcuser=<user>","Username for JSON-RPC connections",ArgsManager::ALLOW_ANY|ArgsManager::SENSITIVE,OptionsCategory::RPC);
gArgs.AddArg("-rpcwhitelist=<whitelist>","Set a whitelist to filter incoming RPC calls for a specific user. The field <whitelist> comes in the format: <USERNAME>:<rpc 1>,<rpc 2>,...,<rpc n>. If multiple whitelists are set for a given user, they are set-intersected. See -rpcwhitelistdefault documentation for information on default whitelist behavior.",ArgsManager::ALLOW_ANY,OptionsCategory::RPC);
gArgs.AddArg("-rpcwhitelist=<whitelist>","Set a whitelist to filter incoming RPC calls for a specific user. The field <whitelist> comes in the format: <USERNAME>:<rpc 1>,<rpc 2>,...,<rpc n>. If multiple whitelists are set for a given user, they are set-intersected. See -rpcwhitelistdefault documentation for information on default whitelist behavior.",ArgsManager::ALLOW_ANY,OptionsCategory::RPC);
gArgs.AddArg("-rpcwhitelistdefault","Sets default behavior for rpc whitelisting. Unless rpcwhitelistdefault is set to 0, if any -rpcwhitelist is set, the rpc server acts as if all rpc users are subject to empty-unless-otherwise-specified whitelists. If rpcwhitelistdefault is set to 1 and no -rpcwhitelist is set, rpc server acts as if all rpc users are subject to empty whitelists.",ArgsManager::ALLOW_BOOL,OptionsCategory::RPC);
gArgs.AddArg("-rpcwhitelistdefault","Sets default behavior for rpc whitelisting. Unless rpcwhitelistdefault is set to 0, if any -rpcwhitelist is set, the rpc server acts as if all rpc users are subject to empty-unless-otherwise-specified whitelists. If rpcwhitelistdefault is set to 1 and no -rpcwhitelist is set, rpc server acts as if all rpc users are subject to empty whitelists.",ArgsManager::ALLOW_BOOL,OptionsCategory::RPC);
gArgs.AddArg("-rpcworkqueue=<n>",strprintf("Set the depth of the work queue to service RPC calls (default: %d)",DEFAULT_HTTP_WORKQUEUE),ArgsManager::ALLOW_ANY|ArgsManager::DEBUG_ONLY,OptionsCategory::RPC);
gArgs.AddArg("-rpcworkqueue=<n>",strprintf("Set the depth of the work queue to service RPC calls (default: %d)",DEFAULT_HTTP_WORKQUEUE),ArgsManager::ALLOW_ANY|ArgsManager::DEBUG_ONLY,OptionsCategory::RPC);