argsman.AddArg("-maxsendbuffer=<n>",strprintf("Maximum per-connection memory usage for the send buffer, <n>*1000 bytes (default: %u)",DEFAULT_MAXSENDBUFFER),ArgsManager::ALLOW_ANY,OptionsCategory::CONNECTION);
argsman.AddArg("-maxtimeadjustment",strprintf("Maximum allowed median peer time offset adjustment. Local perspective of time may be influenced by outbound peers forward or backward by this amount (default: %u seconds).",DEFAULT_MAX_TIME_ADJUSTMENT),ArgsManager::ALLOW_ANY,OptionsCategory::CONNECTION);
argsman.AddArg("-maxuploadtarget=<n>",strprintf("Tries to keep outbound traffic under the given target per 24h. Limit does not apply to peers with 'download' permission or blocks created within past week. 0 = no limit (default: %s). Optional suffix units [k|K|m|M|g|G|t|T] (default: M). Lowercase is 1000 base while uppercase is 1024 base",DEFAULT_MAX_UPLOAD_TARGET),ArgsManager::ALLOW_ANY,OptionsCategory::CONNECTION);
#if HAVE_SOCKADDR_UN
argsman.AddArg("-onion=<ip:port|path>","Use separate SOCKS5 proxy to reach peers via Tor onion services, set -noonion to disable (default: -proxy). May be a local file path prefixed with 'unix:'.",ArgsManager::ALLOW_ANY,OptionsCategory::CONNECTION);
#else
argsman.AddArg("-onion=<ip:port>","Use separate SOCKS5 proxy to reach peers via Tor onion services, set -noonion to disable (default: -proxy)",ArgsManager::ALLOW_ANY,OptionsCategory::CONNECTION);
#endif
argsman.AddArg("-i2psam=<ip:port>","I2P SAM proxy to reach I2P peers and accept I2P connections (default: none)",ArgsManager::ALLOW_ANY,OptionsCategory::CONNECTION);
argsman.AddArg("-i2pacceptincoming",strprintf("Whether to accept inbound I2P connections (default: %i). Ignored if -i2psam is not set. Listening for inbound I2P connections is done through the SAM proxy, not by binding to a local address and port.",DEFAULT_I2P_ACCEPT_INCOMING),ArgsManager::ALLOW_ANY,OptionsCategory::CONNECTION);
argsman.AddArg("-onlynet=<net>","Make automatic outbound connections only to network <net> ("+Join(GetNetworkNames(),", ")+"). Inbound and manual connections are not affected by this option. It can be specified multiple times to allow multiple networks.",ArgsManager::ALLOW_ANY,OptionsCategory::CONNECTION);
// TODO: remove the sentence "Nodes not using ... incoming connections." once the changes from
// https://github.com/bitcoin/bitcoin/pull/23542 have become widespread.
argsman.AddArg("-port=<port>",strprintf("Listen for connections on <port>. Nodes not using the default ports (default: %u, testnet: %u, signet: %u, regtest: %u) are unlikely to get incoming connections. Not relevant for I2P (see doc/i2p.md).",defaultChainParams->GetDefaultPort(),testnetChainParams->GetDefaultPort(),signetChainParams->GetDefaultPort(),regtestChainParams->GetDefaultPort()),ArgsManager::ALLOW_ANY|ArgsManager::NETWORK_ONLY,OptionsCategory::CONNECTION);
#if HAVE_SOCKADDR_UN
argsman.AddArg("-proxy=<ip:port|path>","Connect through SOCKS5 proxy, set -noproxy to disable (default: disabled). May be a local file path prefixed with 'unix:' if the proxy supports it.",ArgsManager::ALLOW_ANY|ArgsManager::DISALLOW_ELISION,OptionsCategory::CONNECTION);
#else
argsman.AddArg("-proxy=<ip:port>","Connect through SOCKS5 proxy, set -noproxy to disable (default: disabled)",ArgsManager::ALLOW_ANY|ArgsManager::DISALLOW_ELISION,OptionsCategory::CONNECTION);
#endif
argsman.AddArg("-proxyrandomize",strprintf("Randomize credentials for every proxy connection. This enables Tor stream isolation (default: %u)",DEFAULT_PROXYRANDOMIZE),ArgsManager::ALLOW_ANY,OptionsCategory::CONNECTION);
argsman.AddArg("-seednode=<ip>","Connect to a node to retrieve peer addresses, and disconnect. This option can be specified multiple times to connect to multiple nodes.",ArgsManager::ALLOW_ANY,OptionsCategory::CONNECTION);
argsman.AddArg("-networkactive","Enable all P2P network activity (default: 1). Can be changed by the setnetworkactive RPC command",ArgsManager::ALLOW_ANY,OptionsCategory::CONNECTION);