Browse Source

Check for double signs on notarisation checks. revert minsigs to normal value.

pull/27/head
blackjok3r 5 years ago
parent
commit
de0ced7444
  1. 6
      src/komodo_bitcoind.h
  2. 9
      src/miner.cpp
  3. 4
      src/rpc/misc.cpp

6
src/komodo_bitcoind.h

@ -1886,6 +1886,12 @@ uint64_t komodo_checknotarypay(CBlock *pblock,int32_t height)
}
}
}
// check a notary didnt sign twice (this would be an invalid notarisation later on and cause problems)
std::set<int> checkdupes( NotarisationNotaries.begin(), NotarisationNotaries.end() );
if ( checkdupes.size() != NotarisationNotaries.size() ) {
fprintf(stderr, "Possible notarisation is signed multiple times by same notary. It is invalid.\n");
return(0);
}
const CChainParams& chainparams = Params();
const Consensus::Params &consensusParams = chainparams.GetConsensus();
uint64_t totalsats = 0;

9
src/miner.cpp

@ -367,7 +367,14 @@ CBlockTemplate* CreateNewBlock(CPubKey _pk,const CScript& _scriptPubKeyIn, int32
dPriority += (double)nValueIn * nConf;
}
if ( numSN != 0 && numNotaryVins >= numSN / 5 )
fNotarisation = true;
{
// check a notary didnt sign twice (this would be an invalid notarisation later on and cause problems)
std::set<int> checkdupes( NotarisationNotaries.begin(), NotarisationNotaries.end() );
if ( checkdupes.size() != NotarisationNotaries.size() ) {
NotarisationNotaries.clear();
fprintf(stderr, "possible notarisation is signed multiple times by same notary, passed as normal transaction.\n");
} else fNotarisation = true;
}
else
NotarisationNotaries.clear();

4
src/rpc/misc.cpp

@ -128,8 +128,8 @@ UniValue getiguanajson(const UniValue& params, bool fHelp)
json.push_back(Pair("port",iguanaPort));
json.push_back(Pair("BTCminsigs",BTCminsigs));
json.push_back(Pair("minsigs",2));
json.push_back(Pair("seeds", seeds));
json.push_back(Pair("minsigs",minsigs));
json.push_back(Pair("seeds",seeds));
json.push_back(Pair("notaries",notaries));
return json;
}

Loading…
Cancel
Save