diff --git a/src/chainparamsbase.h b/src/chainparamsbase.h --- a/src/chainparamsbase.h +++ b/src/chainparamsbase.h @@ -24,13 +24,20 @@ const std::string &DataDir() const { return strDataDir; } int RPCPort() const { return nRPCPort; } + uint16_t OnionServiceTargetPort() const { + return m_onion_service_target_port; + } CBaseChainParams() = delete; - CBaseChainParams(const std::string &data_dir, int rpc_port) - : nRPCPort(rpc_port), strDataDir(data_dir) {} + CBaseChainParams(const std::string &data_dir, int rpc_port, + uint16_t onion_service_target_port) + : nRPCPort(rpc_port), + m_onion_service_target_port(onion_service_target_port), + strDataDir(data_dir) {} private: int nRPCPort; + const uint16_t m_onion_service_target_port; std::string strDataDir; }; diff --git a/src/chainparamsbase.cpp b/src/chainparamsbase.cpp --- a/src/chainparamsbase.cpp +++ b/src/chainparamsbase.cpp @@ -38,18 +38,22 @@ return *globalChainBaseParams; } +/** + * Port numbers for incoming Tor connections (8334, 18334, 38334, 18445) have + * been chosen arbitrarily to keep ranges of used ports tight. + */ std::unique_ptr CreateBaseChainParams(const std::string &chain) { if (chain == CBaseChainParams::MAIN) { - return std::make_unique("", 8332); + return std::make_unique("", 8332, 8334); } if (chain == CBaseChainParams::TESTNET) { - return std::make_unique("testnet3", 18332); + return std::make_unique("testnet3", 18332, 18334); } if (chain == CBaseChainParams::REGTEST) { - return std::make_unique("regtest", 18443); + return std::make_unique("regtest", 18443, 18445); } throw std::runtime_error(