From f21beb8d2ac5a2a91a71306683cb1b986c0cbd09 Mon Sep 17 00:00:00 2001 From: Mrs-X Date: Sat, 12 Nov 2016 12:57:45 +0100 Subject: [PATCH 1/2] Implementation of pubKeyCollateralAddress for CMasternode and CMasternodeBroadcast. --- .gitignore | 1 + src/masternode.cpp | 18 +++++++++++++++--- src/masternode.h | 2 ++ src/obfuscation.cpp | 4 ++-- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 5864de739a95..dc08d42e8f99 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.gitignore *.sublime-project *.sublime-workspace todo.txt diff --git a/src/masternode.cpp b/src/masternode.cpp index 632275293f1e..58fb7eed7834 100644 --- a/src/masternode.cpp +++ b/src/masternode.cpp @@ -61,6 +61,8 @@ CMasternode::CMasternode() addr = CService(); pubkey = CPubKey(); pubkey2 = CPubKey(); + pubKeyCollateralAddress = CPubKey(); + pubKeyMasternode = CPubKey(); sig = std::vector(); activeState = MASTERNODE_ENABLED; sigTime = GetAdjustedTime(); @@ -86,6 +88,8 @@ CMasternode::CMasternode(const CMasternode& other) addr = other.addr; pubkey = other.pubkey; pubkey2 = other.pubkey2; + pubKeyCollateralAddress = CPubKey(); + pubKeyMasternode = CPubKey(); sig = other.sig; activeState = other.activeState; sigTime = other.sigTime; @@ -111,6 +115,8 @@ CMasternode::CMasternode(const CMasternodeBroadcast& mnb) addr = mnb.addr; pubkey = mnb.pubkey; pubkey2 = mnb.pubkey2; + pubKeyCollateralAddress = CPubKey(); + pubKeyMasternode = CPubKey(); sig = mnb.sig; activeState = MASTERNODE_ENABLED; sigTime = mnb.sigTime; @@ -136,6 +142,8 @@ bool CMasternode::UpdateFromNewBroadcast(CMasternodeBroadcast& mnb) { if(mnb.sigTime > sigTime) { pubkey2 = mnb.pubkey2; + pubKeyMasternode = mnb.pubKeyMasternode; + pubKeyCollateralAddress = mnb.pubKeyCollateralAddress; sigTime = mnb.sigTime; sig = mnb.sig; protocolVersion = mnb.protocolVersion; @@ -315,6 +323,8 @@ CMasternodeBroadcast::CMasternodeBroadcast() addr = CService(); pubkey = CPubKey(); pubkey2 = CPubKey(); + pubKeyCollateralAddress = CPubKey(); + pubKeyMasternode = CPubKey(); sig = std::vector(); activeState = MASTERNODE_ENABLED; sigTime = GetAdjustedTime(); @@ -329,12 +339,12 @@ CMasternodeBroadcast::CMasternodeBroadcast() nLastScanningErrorBlockHeight = 0; } -CMasternodeBroadcast::CMasternodeBroadcast(CService newAddr, CTxIn newVin, CPubKey newPubkey, CPubKey newPubkey2, int protocolVersionIn) +CMasternodeBroadcast::CMasternodeBroadcast(CService newAddr, CTxIn newVin, CPubKey pubKeyCollateralAddressNew, CPubKey pubKeyMasternodeNew, int protocolVersionIn) { vin = newVin; addr = newAddr; - pubkey = newPubkey; - pubkey2 = newPubkey2; + pubKeyCollateralAddress = pubKeyCollateralAddressNew; + pubKeyMasternode = pubKeyMasternodeNew; sig = std::vector(); activeState = MASTERNODE_ENABLED; sigTime = GetAdjustedTime(); @@ -355,6 +365,8 @@ CMasternodeBroadcast::CMasternodeBroadcast(const CMasternode& mn) addr = mn.addr; pubkey = mn.pubkey; pubkey2 = mn.pubkey2; + pubKeyCollateralAddress = mn.pubKeyCollateralAddress; + pubKeyMasternode = mn.pubKeyMasternode; sig = mn.sig; activeState = mn.activeState; sigTime = mn.sigTime; diff --git a/src/masternode.h b/src/masternode.h index 3a5337d8a498..16083378e719 100644 --- a/src/masternode.h +++ b/src/masternode.h @@ -161,6 +161,8 @@ class CMasternode swap(first.addr, second.addr); swap(first.pubkey, second.pubkey); swap(first.pubkey2, second.pubkey2); + swap(first.pubKeyCollateralAddress, second.pubKeyCollateralAddress); + swap(first.pubKeyMasternode, second.pubKeyMasternode); swap(first.sig, second.sig); swap(first.activeState, second.activeState); swap(first.sigTime, second.sigTime); diff --git a/src/obfuscation.cpp b/src/obfuscation.cpp index 9abd5495907c..d2fef44eb7c8 100644 --- a/src/obfuscation.cpp +++ b/src/obfuscation.cpp @@ -1699,8 +1699,8 @@ bool CObfuscationPool::MakeCollateralAmounts() std::string strFail = ""; vector< pair > vecSend; CCoinControl coinControl; - coinControl.fAllowOtherInputs = false; // TKS probable crash reason - coinControl.fAllowWatchOnly = false; // TKS + coinControl.fAllowOtherInputs = false; + coinControl.fAllowWatchOnly = false; // make our collateral address CReserveKey reservekeyCollateral(pwalletMain); // make our change address From 56b922be05e184dc279acde482296e83bb8d2da8 Mon Sep 17 00:00:00 2001 From: Mrs-X Date: Sat, 12 Nov 2016 14:24:55 +0100 Subject: [PATCH 2/2] Make refactoring of pubKeyCollateralAddress consistent --- src/main.cpp | 2 +- src/masternode-budget.cpp | 4 +-- src/masternode-payments.cpp | 8 +++--- src/masternode.cpp | 49 ++++++++++++++----------------------- src/masternode.h | 16 ++++++------ src/masternodeman.cpp | 16 ++++++------ src/obfuscation.cpp | 2 +- src/rpcmasternode.cpp | 8 +++--- src/swifttx.cpp | 2 +- 9 files changed, 47 insertions(+), 60 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index dc6760d46898..239929a8fd47 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -5316,7 +5316,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, std::string strMessage = tx.GetHash().ToString() + boost::lexical_cast(sigTime); std::string errorMessage = ""; - if(!obfuScationSigner.VerifyMessage(pmn->pubkey2, vchSig, strMessage, errorMessage)){ + if(!obfuScationSigner.VerifyMessage(pmn->pubKeyMasternode, vchSig, strMessage, errorMessage)){ LogPrintf("dstx: Got bad masternode address signature %s \n", vin.ToString()); //pfrom->Misbehaving(20); return false; diff --git a/src/masternode-budget.cpp b/src/masternode-budget.cpp index 609aad0a8e43..9bc9b7264cdf 100644 --- a/src/masternode-budget.cpp +++ b/src/masternode-budget.cpp @@ -1632,7 +1632,7 @@ bool CBudgetVote::SignatureValid(bool fSignatureCheck) if(!fSignatureCheck) return true; - if(!obfuScationSigner.VerifyMessage(pmn->pubkey2, vchSig, strMessage, errorMessage)) { + if(!obfuScationSigner.VerifyMessage(pmn->pubKeyMasternode, vchSig, strMessage, errorMessage)) { LogPrintf("CBudgetVote::SignatureValid() - Verify message failed\n"); return false; } @@ -2034,7 +2034,7 @@ bool CFinalizedBudgetVote::SignatureValid(bool fSignatureCheck) if(!fSignatureCheck) return true; - if(!obfuScationSigner.VerifyMessage(pmn->pubkey2, vchSig, strMessage, errorMessage)) { + if(!obfuScationSigner.VerifyMessage(pmn->pubKeyMasternode, vchSig, strMessage, errorMessage)) { LogPrintf("CFinalizedBudgetVote::SignatureValid() - Verify message failed\n"); return false; } diff --git a/src/masternode-payments.cpp b/src/masternode-payments.cpp index 9f473b7d6cff..8d6c508ebc2f 100644 --- a/src/masternode-payments.cpp +++ b/src/masternode-payments.cpp @@ -304,7 +304,7 @@ void CMasternodePayments::FillBlockPayee(CMutableTransaction& txNew, int64_t nFe //no masternode detected CMasternode* winningNode = mnodeman.GetCurrentMasterNode(1); if(winningNode){ - payee = GetScriptForDestination(winningNode->pubkey.GetID()); + payee = GetScriptForDestination(winningNode->pubKeyCollateralAddress.GetID()); } else { LogPrintf("CreateNewBlock: Failed to detect masternode to pay\n"); hasPayment = false; @@ -467,7 +467,7 @@ bool CMasternodePayments::IsScheduled(CMasternode& mn, int nNotBlockHeight) if(pindexPrev == NULL) return false; CScript mnpayee; - mnpayee = GetScriptForDestination(mn.pubkey.GetID()); + mnpayee = GetScriptForDestination(mn.pubKeyCollateralAddress.GetID()); CScript payee; for(int64_t h = pindexPrev->nHeight; h <= pindexPrev->nHeight+8; h++){ @@ -722,7 +722,7 @@ bool CMasternodePayments::ProcessBlock(int nBlockHeight) newWinner.nBlockHeight = nBlockHeight; - CScript payee = GetScriptForDestination(pmn->pubkey.GetID()); + CScript payee = GetScriptForDestination(pmn->pubKeyCollateralAddress.GetID()); newWinner.AddPayee(payee); CTxDestination address1; @@ -780,7 +780,7 @@ bool CMasternodePaymentWinner::SignatureValid() payee.ToString(); std::string errorMessage = ""; - if(!obfuScationSigner.VerifyMessage(pmn->pubkey2, vchSig, strMessage, errorMessage)){ + if(!obfuScationSigner.VerifyMessage(pmn->pubKeyMasternode, vchSig, strMessage, errorMessage)){ return error("CMasternodePaymentWinner::SignatureValid() - Got bad Masternode address signature %s \n", vinMasternode.ToString().c_str()); } diff --git a/src/masternode.cpp b/src/masternode.cpp index 58fb7eed7834..d6b6401b4a08 100644 --- a/src/masternode.cpp +++ b/src/masternode.cpp @@ -59,8 +59,6 @@ CMasternode::CMasternode() LOCK(cs); vin = CTxIn(); addr = CService(); - pubkey = CPubKey(); - pubkey2 = CPubKey(); pubKeyCollateralAddress = CPubKey(); pubKeyMasternode = CPubKey(); sig = std::vector(); @@ -86,10 +84,8 @@ CMasternode::CMasternode(const CMasternode& other) LOCK(cs); vin = other.vin; addr = other.addr; - pubkey = other.pubkey; - pubkey2 = other.pubkey2; - pubKeyCollateralAddress = CPubKey(); - pubKeyMasternode = CPubKey(); + pubKeyCollateralAddress = other.pubKeyCollateralAddress; + pubKeyMasternode = other.pubKeyMasternode; sig = other.sig; activeState = other.activeState; sigTime = other.sigTime; @@ -113,10 +109,8 @@ CMasternode::CMasternode(const CMasternodeBroadcast& mnb) LOCK(cs); vin = mnb.vin; addr = mnb.addr; - pubkey = mnb.pubkey; - pubkey2 = mnb.pubkey2; - pubKeyCollateralAddress = CPubKey(); - pubKeyMasternode = CPubKey(); + pubKeyCollateralAddress = mnb.pubKeyCollateralAddress; + pubKeyMasternode = mnb.pubKeyMasternode; sig = mnb.sig; activeState = MASTERNODE_ENABLED; sigTime = mnb.sigTime; @@ -141,7 +135,6 @@ CMasternode::CMasternode(const CMasternodeBroadcast& mnb) bool CMasternode::UpdateFromNewBroadcast(CMasternodeBroadcast& mnb) { if(mnb.sigTime > sigTime) { - pubkey2 = mnb.pubkey2; pubKeyMasternode = mnb.pubKeyMasternode; pubKeyCollateralAddress = mnb.pubKeyCollateralAddress; sigTime = mnb.sigTime; @@ -236,7 +229,7 @@ void CMasternode::Check(bool forceCheck) int64_t CMasternode::SecondsSincePayment() { CScript pubkeyScript; - pubkeyScript = GetScriptForDestination(pubkey.GetID()); + pubkeyScript = GetScriptForDestination(pubKeyCollateralAddress.GetID()); int64_t sec = (GetAdjustedTime() - GetLastPaid()); int64_t month = 60*60*24*30; @@ -256,7 +249,7 @@ int64_t CMasternode::GetLastPaid() { if(pindexPrev == NULL) return false; CScript mnpayee; - mnpayee = GetScriptForDestination(pubkey.GetID()); + mnpayee = GetScriptForDestination(pubKeyCollateralAddress.GetID()); CHashWriter ss(SER_GETHASH, PROTOCOL_VERSION); ss << vin; @@ -321,10 +314,8 @@ CMasternodeBroadcast::CMasternodeBroadcast() { vin = CTxIn(); addr = CService(); - pubkey = CPubKey(); - pubkey2 = CPubKey(); pubKeyCollateralAddress = CPubKey(); - pubKeyMasternode = CPubKey(); + pubKeyMasternode1 = CPubKey(); sig = std::vector(); activeState = MASTERNODE_ENABLED; sigTime = GetAdjustedTime(); @@ -363,8 +354,6 @@ CMasternodeBroadcast::CMasternodeBroadcast(const CMasternode& mn) { vin = mn.vin; addr = mn.addr; - pubkey = mn.pubkey; - pubkey2 = mn.pubkey2; pubKeyCollateralAddress = mn.pubKeyCollateralAddress; pubKeyMasternode = mn.pubKeyMasternode; sig = mn.sig; @@ -472,8 +461,8 @@ bool CMasternodeBroadcast::CheckAndUpdate(int& nDos) return false; } - std::string vchPubKey(pubkey.begin(), pubkey.end()); - std::string vchPubKey2(pubkey2.begin(), pubkey2.end()); + std::string vchPubKey(pubKeyCollateralAddress.begin(), pubKeyCollateralAddress.end()); + std::string vchPubKey2(pubKeyMasternode.begin(), pubKeyMasternode.end()); std::string strMessage = addr.ToString() + boost::lexical_cast(sigTime) + vchPubKey + vchPubKey2 + boost::lexical_cast(protocolVersion); if(protocolVersion < masternodePayments.GetMinMasternodePaymentsProto()) { @@ -482,7 +471,7 @@ bool CMasternodeBroadcast::CheckAndUpdate(int& nDos) } CScript pubkeyScript; - pubkeyScript = GetScriptForDestination(pubkey.GetID()); + pubkeyScript = GetScriptForDestination(pubKeyCollateralAddress.GetID()); if(pubkeyScript.size() != 25) { LogPrintf("mnb - pubkey the wrong size\n"); @@ -491,7 +480,7 @@ bool CMasternodeBroadcast::CheckAndUpdate(int& nDos) } CScript pubkeyScript2; - pubkeyScript2 = GetScriptForDestination(pubkey2.GetID()); + pubkeyScript2 = GetScriptForDestination(pubKeyMasternode.GetID()); if(pubkeyScript2.size() != 25) { LogPrintf("mnb - pubkey2 the wrong size\n"); @@ -505,7 +494,7 @@ bool CMasternodeBroadcast::CheckAndUpdate(int& nDos) } std::string errorMessage = ""; - if(!obfuScationSigner.VerifyMessage(pubkey, sig, strMessage, errorMessage)){ + if(!obfuScationSigner.VerifyMessage(pubKeyCollateralAddress, sig, strMessage, errorMessage)){ LogPrintf("mnb - Got bad Masternode address signature\n"); nDos = 100; return false; @@ -533,7 +522,7 @@ bool CMasternodeBroadcast::CheckAndUpdate(int& nDos) // mn.pubkey = pubkey, IsVinAssociatedWithPubkey is validated once below, // after that they just need to match - if(pmn->pubkey == pubkey && !pmn->IsBroadcastedWithin(MASTERNODE_MIN_MNB_SECONDS)) { + if(pmn->pubKeyCollateralAddress == pubKeyCollateralAddress && !pmn->IsBroadcastedWithin(MASTERNODE_MIN_MNB_SECONDS)) { //take the newest entry LogPrintf("mnb - Got updated entry for %s\n", addr.ToString()); if(pmn->UpdateFromNewBroadcast((*this))){ @@ -550,7 +539,7 @@ bool CMasternodeBroadcast::CheckInputsAndAdd(int& nDoS) { // we are a masternode with the same vin (i.e. already activated) and this mnb is ours (matches our Masternode privkey) // so nothing to do here for us - if(fMasterNode && vin.prevout == activeMasternode.vin.prevout && pubkey2 == activeMasternode.pubKeyMasternode) + if(fMasterNode && vin.prevout == activeMasternode.vin.prevout && pubKeyMasternode == activeMasternode.pubKeyMasternode) return true; // search existing Masternode list @@ -618,7 +607,7 @@ bool CMasternodeBroadcast::CheckInputsAndAdd(int& nDoS) mnodeman.Add(mn); // if it matches our Masternode privkey, then we've been remotely activated - if(pubkey2 == activeMasternode.pubKeyMasternode && protocolVersion == PROTOCOL_VERSION){ + if(pubKeyMasternode == activeMasternode.pubKeyMasternode && protocolVersion == PROTOCOL_VERSION){ activeMasternode.EnableHotColdMasterNode(vin, addr); } @@ -640,8 +629,8 @@ bool CMasternodeBroadcast::Sign(CKey& keyCollateralAddress) { std::string errorMessage; - std::string vchPubKey(pubkey.begin(), pubkey.end()); - std::string vchPubKey2(pubkey2.begin(), pubkey2.end()); + std::string vchPubKey(pubKeyCollateralAddress.begin(), pubKeyCollateralAddress.end()); + std::string vchPubKey2(pubKeyMasternode.begin(), pubKeyMasternode.end()); sigTime = GetAdjustedTime(); @@ -652,7 +641,7 @@ bool CMasternodeBroadcast::Sign(CKey& keyCollateralAddress) return false; } - if(!obfuScationSigner.VerifyMessage(pubkey, sig, strMessage, errorMessage)) { + if(!obfuScationSigner.VerifyMessage(pubKeyCollateralAddress, sig, strMessage, errorMessage)) { LogPrintf("CMasternodeBroadcast::Sign() - Error: %s\n", errorMessage); return false; } @@ -728,7 +717,7 @@ bool CMasternodePing::CheckAndUpdate(int& nDos, bool fRequireEnabled) std::string strMessage = vin.ToString() + blockHash.ToString() + boost::lexical_cast(sigTime); std::string errorMessage = ""; - if(!obfuScationSigner.VerifyMessage(pmn->pubkey2, vchSig, strMessage, errorMessage)) + if(!obfuScationSigner.VerifyMessage(pmn->pubKeyMasternode, vchSig, strMessage, errorMessage)) { LogPrintf("CMasternodePing::CheckAndUpdate - Got bad Masternode address signature %s\n", vin.ToString()); nDos = 33; diff --git a/src/masternode.h b/src/masternode.h index 16083378e719..205f94d19a5b 100644 --- a/src/masternode.h +++ b/src/masternode.h @@ -124,10 +124,10 @@ class CMasternode CTxIn vin; CService addr; - CPubKey pubkey; - CPubKey pubkey2; CPubKey pubKeyCollateralAddress; CPubKey pubKeyMasternode; + CPubKey pubKeyCollateralAddress1; + CPubKey pubKeyMasternode1; std::vector sig; int activeState; int64_t sigTime; //mnb message time @@ -159,8 +159,6 @@ class CMasternode // the two classes are effectively swapped swap(first.vin, second.vin); swap(first.addr, second.addr); - swap(first.pubkey, second.pubkey); - swap(first.pubkey2, second.pubkey2); swap(first.pubKeyCollateralAddress, second.pubKeyCollateralAddress); swap(first.pubKeyMasternode, second.pubKeyMasternode); swap(first.sig, second.sig); @@ -201,8 +199,8 @@ class CMasternode READWRITE(vin); READWRITE(addr); - READWRITE(pubkey); - READWRITE(pubkey2); + READWRITE(pubKeyCollateralAddress); + READWRITE(pubKeyMasternode); READWRITE(sig); READWRITE(sigTime); READWRITE(protocolVersion); @@ -309,8 +307,8 @@ class CMasternodeBroadcast : public CMasternode inline void SerializationOp(Stream& s, Operation ser_action, int nType, int nVersion) { READWRITE(vin); READWRITE(addr); - READWRITE(pubkey); - READWRITE(pubkey2); + READWRITE(pubKeyCollateralAddress); + READWRITE(pubKeyMasternode); READWRITE(sig); READWRITE(sigTime); READWRITE(protocolVersion); @@ -321,7 +319,7 @@ class CMasternodeBroadcast : public CMasternode uint256 GetHash(){ CHashWriter ss(SER_GETHASH, PROTOCOL_VERSION); ss << sigTime; - ss << pubkey; + ss << pubKeyCollateralAddress; return ss.GetHash(); } diff --git a/src/masternodeman.cpp b/src/masternodeman.cpp index 274a5e4ccff5..c96385b989f1 100644 --- a/src/masternodeman.cpp +++ b/src/masternodeman.cpp @@ -403,7 +403,7 @@ CMasternode *CMasternodeMan::Find(const CScript &payee) BOOST_FOREACH(CMasternode& mn, vMasternodes) { - payee2 = GetScriptForDestination(mn.pubkey.GetID()); + payee2 = GetScriptForDestination(mn.pubKeyCollateralAddress.GetID()); if(payee2 == payee) return &mn; } @@ -429,7 +429,7 @@ CMasternode *CMasternodeMan::Find(const CPubKey &pubKeyMasternode) BOOST_FOREACH(CMasternode& mn, vMasternodes) { - if(mn.pubkey2 == pubKeyMasternode) + if(mn.pubKeyMasternode == pubKeyMasternode) return &mn; } return NULL; @@ -704,7 +704,7 @@ void CMasternodeMan::ProcessMessage(CNode* pfrom, std::string& strCommand, CData // make sure the vout that was signed is related to the transaction that spawned the Masternode // - this is expensive, so it's only done once per Masternode - if(!obfuScationSigner.IsVinAssociatedWithPubkey(mnb.vin, mnb.pubkey)) { + if(!obfuScationSigner.IsVinAssociatedWithPubkey(mnb.vin, mnb.pubKeyCollateralAddress)) { LogPrintf("mnb - Got mismatched pubkey and vin\n"); Misbehaving(pfrom->GetId(), 33); return; @@ -890,12 +890,12 @@ void CMasternodeMan::ProcessMessage(CNode* pfrom, std::string& strCommand, CData // e.g. We don't want the entry relayed/time updated when we're syncing the list // mn.pubkey = pubkey, IsVinAssociatedWithPubkey is validated once below, // after that they just need to match - if(count == -1 && pmn->pubkey == pubkey && (GetAdjustedTime() - pmn->nLastDsee > MASTERNODE_MIN_MNB_SECONDS)){ + if(count == -1 && pmn->pubKeyCollateralAddress == pubkey && (GetAdjustedTime() - pmn->nLastDsee > MASTERNODE_MIN_MNB_SECONDS)){ if(pmn->protocolVersion > GETHEADERS_VERSION && sigTime - pmn->lastPing.sigTime < MASTERNODE_MIN_MNB_SECONDS) return; if(pmn->nLastDsee < sigTime){ //take the newest entry LogPrintf("dsee - Got updated entry for %s\n", addr.ToString().c_str()); if(pmn->protocolVersion < GETHEADERS_VERSION) { - pmn->pubkey2 = pubkey2; + pmn->pubKeyMasternode = pubkey2; pmn->sigTime = sigTime; pmn->sig = vchSig; pmn->protocolVersion = protocolVersion; @@ -983,10 +983,10 @@ void CMasternodeMan::ProcessMessage(CNode* pfrom, std::string& strCommand, CData CMasternode mn = CMasternode(); mn.addr = addr; mn.vin = vin; - mn.pubkey = pubkey; + mn.pubKeyCollateralAddress = pubkey; mn.sig = vchSig; mn.sigTime = sigTime; - mn.pubkey2 = pubkey2; + mn.pubKeyMasternode = pubkey2; mn.protocolVersion = protocolVersion; // fake ping mn.lastPing = CMasternodePing(vin); @@ -1059,7 +1059,7 @@ void CMasternodeMan::ProcessMessage(CNode* pfrom, std::string& strCommand, CData std::string strMessage = pmn->addr.ToString() + boost::lexical_cast(sigTime) + boost::lexical_cast(stop); std::string errorMessage = ""; - if(!obfuScationSigner.VerifyMessage(pmn->pubkey2, vchSig, strMessage, errorMessage)) + if(!obfuScationSigner.VerifyMessage(pmn->pubKeyMasternode, vchSig, strMessage, errorMessage)) { LogPrintf("dseep - Got bad Masternode address signature %s \n", vin.ToString().c_str()); //Misbehaving(pfrom->GetId(), 100); diff --git a/src/obfuscation.cpp b/src/obfuscation.cpp index d2fef44eb7c8..848bbd7b20a8 100644 --- a/src/obfuscation.cpp +++ b/src/obfuscation.cpp @@ -2183,7 +2183,7 @@ bool CObfuscationQueue::CheckSignature() std::string strMessage = vin.ToString() + boost::lexical_cast(nDenom) + boost::lexical_cast(time) + boost::lexical_cast(ready); std::string errorMessage = ""; - if(!obfuScationSigner.VerifyMessage(pmn->pubkey2, vchSig, strMessage, errorMessage)){ + if(!obfuScationSigner.VerifyMessage(pmn->pubKeyMasternode, vchSig, strMessage, errorMessage)){ return error("CObfuscationQueue::CheckSignature() - Got bad Masternode address signature %s \n", vin.ToString().c_str()); } diff --git a/src/rpcmasternode.cpp b/src/rpcmasternode.cpp index baa75daadafa..55b7424e1190 100644 --- a/src/rpcmasternode.cpp +++ b/src/rpcmasternode.cpp @@ -215,7 +215,7 @@ Value masternode(const Array& params, bool fHelp) obj.push_back(Pair("IP:port", winner->addr.ToString())); obj.push_back(Pair("protocol", (int64_t)winner->protocolVersion)); obj.push_back(Pair("vin", winner->vin.prevout.hash.ToString())); - obj.push_back(Pair("pubkey", CBitcoinAddress(winner->pubkey.GetID()).ToString())); + obj.push_back(Pair("pubkey", CBitcoinAddress(winner->pubKeyCollateralAddress.GetID()).ToString())); obj.push_back(Pair("lastseen", (winner->lastPing == CMasternodePing()) ? winner->sigTime : (int64_t)winner->lastPing.sigTime)); obj.push_back(Pair("activeseconds", (winner->lastPing == CMasternodePing()) ? 0 : @@ -454,7 +454,7 @@ Value masternode(const Array& params, bool fHelp) mnObj.push_back(Pair("vin", activeMasternode.vin.ToString())); mnObj.push_back(Pair("service", activeMasternode.service.ToString())); - if (pmn) mnObj.push_back(Pair("pubkey", CBitcoinAddress(pmn->pubkey.GetID()).ToString())); + if (pmn) mnObj.push_back(Pair("pubkey", CBitcoinAddress(pmn->pubKeyCollateralAddress.GetID()).ToString())); mnObj.push_back(Pair("status", activeMasternode.GetStatus())); return mnObj; } @@ -574,7 +574,7 @@ Value masternodelist(const Array& params, bool fHelp) stringStream << setw(9) << mn.Status() << " " << mn.protocolVersion << " " << - CBitcoinAddress(mn.pubkey.GetID()).ToString() << " " << setw(21) << + CBitcoinAddress(mn.pubKeyCollateralAddress.GetID()).ToString() << " " << setw(21) << mn.addr.ToString() << " " << (int64_t)mn.lastPing.sigTime << " " << setw(8) << (int64_t)(mn.lastPing.sigTime - mn.sigTime) << " " << @@ -596,7 +596,7 @@ Value masternodelist(const Array& params, bool fHelp) strVin.find(strFilter) == string::npos) continue; obj.push_back(Pair(strVin, (int64_t)mn.protocolVersion)); } else if (strMode == "pubkey") { - CBitcoinAddress address(mn.pubkey.GetID()); + CBitcoinAddress address(mn.pubKeyCollateralAddress.GetID()); if(strFilter !="" && address.ToString().find(strFilter) == string::npos && strVin.find(strFilter) == string::npos) continue; diff --git a/src/swifttx.cpp b/src/swifttx.cpp index d6b37f8ee852..8f54751fc365 100644 --- a/src/swifttx.cpp +++ b/src/swifttx.cpp @@ -480,7 +480,7 @@ bool CConsensusVote::SignatureValid() return false; } - if(!obfuScationSigner.VerifyMessage(pmn->pubkey2, vchMasterNodeSignature, strMessage, errorMessage)) { + if(!obfuScationSigner.VerifyMessage(pmn->pubKeyMasternode, vchMasterNodeSignature, strMessage, errorMessage)) { LogPrintf("SwiftTX::CConsensusVote::SignatureValid() - Verify message failed\n"); return false; }