|
|
@ -755,6 +755,16 @@ void InitParameterInteraction() |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static std::string ResolveErrMsg(const char * const optname, const std::string& strBind) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
return strprintf(_("Cannot resolve -%s address: '%s'"), optname, strBind); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static std::string AmountErrMsg(const char * const optname, const std::string& strValue) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
return strprintf(_("Invalid amount for -%s=<amount>: '%s'"), optname, strValue); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void InitLogging() |
|
|
|
void InitLogging() |
|
|
|
{ |
|
|
|
{ |
|
|
|
fPrintToConsole = GetBoolArg("-printtoconsole", false); |
|
|
|
fPrintToConsole = GetBoolArg("-printtoconsole", false); |
|
|
@ -948,7 +958,7 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler) |
|
|
|
if (ParseMoney(mapArgs["-minrelaytxfee"], n) && n > 0) |
|
|
|
if (ParseMoney(mapArgs["-minrelaytxfee"], n) && n > 0) |
|
|
|
::minRelayTxFee = CFeeRate(n); |
|
|
|
::minRelayTxFee = CFeeRate(n); |
|
|
|
else |
|
|
|
else |
|
|
|
return InitError(strprintf(_("Invalid amount for -minrelaytxfee=<amount>: '%s'"), mapArgs["-minrelaytxfee"])); |
|
|
|
return InitError(AmountErrMsg("minrelaytxfee", mapArgs["-minrelaytxfee"])); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
fRequireStandard = !GetBoolArg("-acceptnonstdtxn", !Params().RequireStandard()); |
|
|
|
fRequireStandard = !GetBoolArg("-acceptnonstdtxn", !Params().RequireStandard()); |
|
|
@ -962,13 +972,13 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler) |
|
|
|
if (ParseMoney(mapArgs["-mintxfee"], n) && n > 0) |
|
|
|
if (ParseMoney(mapArgs["-mintxfee"], n) && n > 0) |
|
|
|
CWallet::minTxFee = CFeeRate(n); |
|
|
|
CWallet::minTxFee = CFeeRate(n); |
|
|
|
else |
|
|
|
else |
|
|
|
return InitError(strprintf(_("Invalid amount for -mintxfee=<amount>: '%s'"), mapArgs["-mintxfee"])); |
|
|
|
return InitError(AmountErrMsg("mintxfee", mapArgs["-mintxfee"])); |
|
|
|
} |
|
|
|
} |
|
|
|
if (mapArgs.count("-paytxfee")) |
|
|
|
if (mapArgs.count("-paytxfee")) |
|
|
|
{ |
|
|
|
{ |
|
|
|
CAmount nFeePerK = 0; |
|
|
|
CAmount nFeePerK = 0; |
|
|
|
if (!ParseMoney(mapArgs["-paytxfee"], nFeePerK)) |
|
|
|
if (!ParseMoney(mapArgs["-paytxfee"], nFeePerK)) |
|
|
|
return InitError(strprintf(_("Invalid amount for -paytxfee=<amount>: '%s'"), mapArgs["-paytxfee"])); |
|
|
|
return InitError(AmountErrMsg("paytxfee", mapArgs["-paytxfee"])); |
|
|
|
if (nFeePerK > nHighTransactionFeeWarning) |
|
|
|
if (nFeePerK > nHighTransactionFeeWarning) |
|
|
|
InitWarning(_("-paytxfee is set very high! This is the transaction fee you will pay if you send a transaction.")); |
|
|
|
InitWarning(_("-paytxfee is set very high! This is the transaction fee you will pay if you send a transaction.")); |
|
|
|
payTxFee = CFeeRate(nFeePerK, 1000); |
|
|
|
payTxFee = CFeeRate(nFeePerK, 1000); |
|
|
@ -982,7 +992,7 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler) |
|
|
|
{ |
|
|
|
{ |
|
|
|
CAmount nMaxFee = 0; |
|
|
|
CAmount nMaxFee = 0; |
|
|
|
if (!ParseMoney(mapArgs["-maxtxfee"], nMaxFee)) |
|
|
|
if (!ParseMoney(mapArgs["-maxtxfee"], nMaxFee)) |
|
|
|
return InitError(strprintf(_("Invalid amount for -maxtxfee=<amount>: '%s'"), mapArgs["-maptxfee"])); |
|
|
|
return InitError(AmountErrMsg("maxtxfee", mapArgs["-maptxfee"])); |
|
|
|
if (nMaxFee > nHighTransactionMaxFeeWarning) |
|
|
|
if (nMaxFee > nHighTransactionMaxFeeWarning) |
|
|
|
InitWarning(_("-maxtxfee is set very high! Fees this large could be paid on a single transaction.")); |
|
|
|
InitWarning(_("-maxtxfee is set very high! Fees this large could be paid on a single transaction.")); |
|
|
|
maxTxFee = nMaxFee; |
|
|
|
maxTxFee = nMaxFee; |
|
|
@ -1188,13 +1198,13 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler) |
|
|
|
BOOST_FOREACH(const std::string& strBind, mapMultiArgs["-bind"]) { |
|
|
|
BOOST_FOREACH(const std::string& strBind, mapMultiArgs["-bind"]) { |
|
|
|
CService addrBind; |
|
|
|
CService addrBind; |
|
|
|
if (!Lookup(strBind.c_str(), addrBind, GetListenPort(), false)) |
|
|
|
if (!Lookup(strBind.c_str(), addrBind, GetListenPort(), false)) |
|
|
|
return InitError(strprintf(_("Cannot resolve -bind address: '%s'"), strBind)); |
|
|
|
return InitError(ResolveErrMsg("bind", strBind)); |
|
|
|
fBound |= Bind(addrBind, (BF_EXPLICIT | BF_REPORT_ERROR)); |
|
|
|
fBound |= Bind(addrBind, (BF_EXPLICIT | BF_REPORT_ERROR)); |
|
|
|
} |
|
|
|
} |
|
|
|
BOOST_FOREACH(const std::string& strBind, mapMultiArgs["-whitebind"]) { |
|
|
|
BOOST_FOREACH(const std::string& strBind, mapMultiArgs["-whitebind"]) { |
|
|
|
CService addrBind; |
|
|
|
CService addrBind; |
|
|
|
if (!Lookup(strBind.c_str(), addrBind, 0, false)) |
|
|
|
if (!Lookup(strBind.c_str(), addrBind, 0, false)) |
|
|
|
return InitError(strprintf(_("Cannot resolve -whitebind address: '%s'"), strBind)); |
|
|
|
return InitError(ResolveErrMsg("whitebind", strBind)); |
|
|
|
if (addrBind.GetPort() == 0) |
|
|
|
if (addrBind.GetPort() == 0) |
|
|
|
return InitError(strprintf(_("Need to specify a port with -whitebind: '%s'"), strBind)); |
|
|
|
return InitError(strprintf(_("Need to specify a port with -whitebind: '%s'"), strBind)); |
|
|
|
fBound |= Bind(addrBind, (BF_EXPLICIT | BF_REPORT_ERROR | BF_WHITELIST)); |
|
|
|
fBound |= Bind(addrBind, (BF_EXPLICIT | BF_REPORT_ERROR | BF_WHITELIST)); |
|
|
@ -1214,7 +1224,7 @@ bool AppInit2(boost::thread_group& threadGroup, CScheduler& scheduler) |
|
|
|
BOOST_FOREACH(const std::string& strAddr, mapMultiArgs["-externalip"]) { |
|
|
|
BOOST_FOREACH(const std::string& strAddr, mapMultiArgs["-externalip"]) { |
|
|
|
CService addrLocal(strAddr, GetListenPort(), fNameLookup); |
|
|
|
CService addrLocal(strAddr, GetListenPort(), fNameLookup); |
|
|
|
if (!addrLocal.IsValid()) |
|
|
|
if (!addrLocal.IsValid()) |
|
|
|
return InitError(strprintf(_("Cannot resolve -externalip address: '%s'"), strAddr)); |
|
|
|
return InitError(ResolveErrMsg("externalip", strAddr)); |
|
|
|
AddLocal(CService(strAddr, GetListenPort(), fNameLookup), LOCAL_MANUAL); |
|
|
|
AddLocal(CService(strAddr, GetListenPort(), fNameLookup), LOCAL_MANUAL); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|