@@ -600,8 +600,7 @@ std::string HelpMessage(HelpMessageMode mode)
600600 strUsage += HelpMessageOpt (" -minsporkkeys=<n>" , strprintf (_ (" Overrides minimum spork signers to change spork value. Only useful for regtest and devnet. Using this on mainnet or testnet will ban you." )));
601601
602602 strUsage += HelpMessageGroup (_ (" Masternode options:" ));
603- strUsage += HelpMessageOpt (" -masternode" , strprintf (_ (" Enable the client to act as a masternode (0-1, default: %u)" ), 0 ));
604- strUsage += HelpMessageOpt (" -masternodeblsprivkey=<hex>" , _ (" Set the masternode BLS private key" ));
603+ strUsage += HelpMessageOpt (" -masternodeblsprivkey=<hex>" , _ (" Set the masternode BLS private key and enable the client to act as a masternode" ));
605604
606605#ifdef ENABLE_WALLET
607606 strUsage += HelpMessageGroup (_ (" PrivateSend options:" ));
@@ -908,19 +907,19 @@ void InitParameterInteraction()
908907 LogPrintf (" %s: parameter interaction: -whitebind set -> setting -listen=1\n " , __func__);
909908 }
910909
911- if (gArgs .GetBoolArg (" -masternode " , false )) {
910+ if (gArgs .IsArgSet (" -masternodeblsprivkey " )) {
912911 // masternodes MUST accept connections from outside
913912 gArgs .ForceSetArg (" -listen" , " 1" );
914- LogPrintf (" %s: parameter interaction: -masternode=1 -> setting -listen=1\n " , __func__);
913+ LogPrintf (" %s: parameter interaction: -masternodeblsprivkey=... -> setting -listen=1\n " , __func__);
915914#ifdef ENABLE_WALLET
916915 // masternode should not have wallet enabled
917916 gArgs .ForceSetArg (" -disablewallet" , " 1" );
918- LogPrintf (" %s: parameter interaction: -masternode=1 -> setting -disablewallet=1\n " , __func__);
917+ LogPrintf (" %s: parameter interaction: -masternodeblsprivkey=... -> setting -disablewallet=1\n " , __func__);
919918#endif // ENABLE_WALLET
920919 if (gArgs .GetArg (" -maxconnections" , DEFAULT_MAX_PEER_CONNECTIONS) < DEFAULT_MAX_PEER_CONNECTIONS) {
921920 // masternodes MUST be able to handle at least DEFAULT_MAX_PEER_CONNECTIONS connections
922921 gArgs .ForceSetArg (" -maxconnections" , itostr (DEFAULT_MAX_PEER_CONNECTIONS));
923- LogPrintf (" %s: parameter interaction: -masternode=1 -> setting -maxconnections=%d instead of specified -maxconnections=%d\n " ,
922+ LogPrintf (" %s: parameter interaction: -masternodeblsprivkey=... -> setting -maxconnections=%d instead of specified -maxconnections=%d\n " ,
924923 __func__, DEFAULT_MAX_PEER_CONNECTIONS, gArgs .GetArg (" -maxconnections" , DEFAULT_MAX_PEER_CONNECTIONS));
925924 }
926925 }
@@ -1435,6 +1434,10 @@ bool AppInitParameterInteraction()
14351434 InitWarning (" -maxorphantx is not supported anymore. Use -maxorphantxsize instead." );
14361435 }
14371436
1437+ if (gArgs .IsArgSet (" -masternode" )) {
1438+ InitWarning (_ (" -masternode option is deprecated and ignored, specifying -masternodeblsprivkey is enough to start this node as a masternode." ));
1439+ }
1440+
14381441 return true ;
14391442}
14401443
@@ -1970,7 +1973,21 @@ bool AppInitMain(boost::thread_group& threadGroup, CScheduler& scheduler)
19701973 }
19711974
19721975 // ********************************************************* Step 10a: Prepare Masternode related stuff
1973- fMasternodeMode = gArgs .GetBoolArg (" -masternode" , false );
1976+ fMasternodeMode = false ;
1977+ std::string strMasterNodeBLSPrivKey = gArgs .GetArg (" -masternodeblsprivkey" , " " );
1978+ if (!strMasterNodeBLSPrivKey.empty ()) {
1979+ auto binKey = ParseHex (strMasterNodeBLSPrivKey);
1980+ CBLSSecretKey keyOperator;
1981+ keyOperator.SetBuf (binKey);
1982+ if (!keyOperator.IsValid ()) {
1983+ return InitError (_ (" Invalid masternodeblsprivkey. Please see documentation." ));
1984+ }
1985+ fMasternodeMode = true ;
1986+ activeMasternodeInfo.blsKeyOperator = std::make_unique<CBLSSecretKey>(keyOperator);
1987+ activeMasternodeInfo.blsPubKeyOperator = std::make_unique<CBLSPublicKey>(activeMasternodeInfo.blsKeyOperator ->GetPublicKey ());
1988+ LogPrintf (" MASTERNODE:\n " );
1989+ LogPrintf (" blsPubKeyOperator: %s\n " , keyOperator.GetPublicKey ().ToString ());
1990+ }
19741991
19751992 if (fLiteMode && fMasternodeMode ) {
19761993 return InitError (_ (" You can not start a masternode in lite mode." ));
@@ -1982,25 +1999,6 @@ bool AppInitMain(boost::thread_group& threadGroup, CScheduler& scheduler)
19821999 return InitError (_ (" You can not start a masternode with wallet enabled." ));
19832000 }
19842001#endif // ENABLE_WALLET
1985-
1986- LogPrintf (" MASTERNODE:\n " );
1987-
1988- std::string strMasterNodeBLSPrivKey = gArgs .GetArg (" -masternodeblsprivkey" , " " );
1989- if (!strMasterNodeBLSPrivKey.empty ()) {
1990- auto binKey = ParseHex (strMasterNodeBLSPrivKey);
1991- CBLSSecretKey keyOperator;
1992- keyOperator.SetBuf (binKey);
1993- if (keyOperator.IsValid ()) {
1994- activeMasternodeInfo.blsKeyOperator = std::make_unique<CBLSSecretKey>(keyOperator);
1995- activeMasternodeInfo.blsPubKeyOperator = std::make_unique<CBLSPublicKey>(activeMasternodeInfo.blsKeyOperator ->GetPublicKey ());
1996- LogPrintf (" blsPubKeyOperator: %s\n " , keyOperator.GetPublicKey ().ToString ());
1997- } else {
1998- return InitError (_ (" Invalid masternodeblsprivkey. Please see documentation." ));
1999- }
2000- } else {
2001- return InitError (_ (" You must specify a masternodeblsprivkey in the configuration. Please see documentation for help." ));
2002- }
2003-
20042002 // Create and register activeMasternodeManager, will init later in ThreadImport
20052003 activeMasternodeManager = new CActiveMasternodeManager ();
20062004 RegisterValidationInterface (activeMasternodeManager);
0 commit comments