From fc537a2231884ed4f9ece79e5dfd64762b976582 Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 19 Jul 2019 02:47:56 -1100 Subject: [PATCH 01/11] +prints --- src/main.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index f3b714eaa..7e900bd3b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -7091,7 +7091,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, LogPrint("net", "received: %s (%u bytes) peer=%d\n", SanitizeString(strCommand), vRecv.size(), pfrom->id); //if ( KOMODO_NSPV != 0 ) //if ( strCommand != "version" && strCommand != "verack" ) - // fprintf(stderr, "recv: %s peer=%d\n", SanitizeString(strCommand).c_str(), (int32_t)pfrom->GetId()); + fprintf(stderr, "recv: %s peer=%d\n", SanitizeString(strCommand).c_str(), (int32_t)pfrom->GetId()); if (mapArgs.count("-dropmessagestest") && GetRand(atoi(mapArgs["-dropmessagestest"])) == 0) { LogPrintf("dropmessagestest DROPPING RECV MESSAGE\n"); @@ -7287,7 +7287,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, else if (pfrom->nVersion < chainparams.GetConsensus().vUpgrades[ CurrentEpoch(GetHeight(), chainparams.GetConsensus())].nProtocolVersion) { - LogPrintf("peer=%d using obsolete version %i; disconnecting\n", pfrom->id, pfrom->nVersion); + LogPrintf("peer=%d using obsolete version %i vs %d; disconnecting\n", pfrom->id, pfrom->nVersion,(int32_t)chainparams.GetConsensus())].nProtocolVersion); pfrom->PushMessage("reject", strCommand, REJECT_OBSOLETE, strprintf("Version must be %d or greater", chainparams.GetConsensus().vUpgrades[ From 8738d15aa00a3089a763190b44d4c3fb69d69386 Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 19 Jul 2019 02:56:15 -1100 Subject: [PATCH 02/11] Syntax --- src/main.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 7e900bd3b..43dbc4550 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -7287,7 +7287,8 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, else if (pfrom->nVersion < chainparams.GetConsensus().vUpgrades[ CurrentEpoch(GetHeight(), chainparams.GetConsensus())].nProtocolVersion) { - LogPrintf("peer=%d using obsolete version %i vs %d; disconnecting\n", pfrom->id, pfrom->nVersion,(int32_t)chainparams.GetConsensus())].nProtocolVersion); + LogPrintf("peer=%d using obsolete version %i vs %d; disconnecting\n", pfrom->id, pfrom->nVersion,(int32_t)chainparams.GetConsensus().vUpgrades[ + CurrentEpoch(GetHeight(), chainparams.GetConsensus())].nProtocolVersion); pfrom->PushMessage("reject", strCommand, REJECT_OBSOLETE, strprintf("Version must be %d or greater", chainparams.GetConsensus().vUpgrades[ From 2bae0f02263833b4b63d69f6522c732829d2bccf Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 19 Jul 2019 05:25:26 -1100 Subject: [PATCH 03/11] +print --- src/komodo_nSPV_fullnode.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/komodo_nSPV_fullnode.h b/src/komodo_nSPV_fullnode.h index b5eba8ed3..2d7c138da 100644 --- a/src/komodo_nSPV_fullnode.h +++ b/src/komodo_nSPV_fullnode.h @@ -513,14 +513,14 @@ void komodo_nSPVreq(CNode *pfrom,std::vector request) // received a req pfrom->prevtimes[ind] = 0; if ( request[0] == NSPV_INFO ) // info { - //fprintf(stderr,"check info %u vs %u, ind.%d\n",timestamp,pfrom->prevtimes[ind],ind); + fprintf(stderr,"check info %u vs %u, ind.%d\n",timestamp,pfrom->prevtimes[ind],ind); if ( timestamp > pfrom->prevtimes[ind] ) { struct NSPV_inforesp I; if ( len == 1+sizeof(reqheight) ) iguana_rwnum(0,&request[1],sizeof(reqheight),&reqheight); else reqheight = 0; - //fprintf(stderr,"request height.%d\n",reqheight); + fprintf(stderr,"request height.%d\n",reqheight); memset(&I,0,sizeof(I)); if ( (slen= NSPV_getinfo(&I,reqheight)) > 0 ) { From 995687de260fc5022cde8c0b1f9571f5bb2e250e Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 19 Jul 2019 05:30:36 -1100 Subject: [PATCH 04/11] +print --- src/komodo_nSPV_fullnode.h | 1 + 1 file changed, 1 insertion(+) diff --git a/src/komodo_nSPV_fullnode.h b/src/komodo_nSPV_fullnode.h index 2d7c138da..c8b9d90dd 100644 --- a/src/komodo_nSPV_fullnode.h +++ b/src/komodo_nSPV_fullnode.h @@ -529,6 +529,7 @@ void komodo_nSPVreq(CNode *pfrom,std::vector request) // received a req //fprintf(stderr,"slen.%d\n",slen); if ( NSPV_rwinforesp(1,&response[1],&I) == slen ) { + fprintf(stderr,"send info resp to id %d\n",(int32_t)pfrom->id); pfrom->PushMessage("nSPV",response); pfrom->prevtimes[ind] = timestamp; } From 59d4e939bdde89d031bc12283516fdfc3679a06e Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 19 Jul 2019 05:40:31 -1100 Subject: [PATCH 05/11] +prints --- src/main.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 43dbc4550..f6fc6d55f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -7090,8 +7090,8 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, const CChainParams& chainparams = Params(); LogPrint("net", "received: %s (%u bytes) peer=%d\n", SanitizeString(strCommand), vRecv.size(), pfrom->id); //if ( KOMODO_NSPV != 0 ) - //if ( strCommand != "version" && strCommand != "verack" ) - fprintf(stderr, "recv: %s peer=%d\n", SanitizeString(strCommand).c_str(), (int32_t)pfrom->GetId()); + if ( strCommand != "version" && strCommand != "verack" && strCommand != "ping" && strCommand != "pong" ) + fprintf(stderr, "recv: %s (%u bytes) peer=%d\n", SanitizeString(strCommand).c_str(), vRecv.size(), (int32_t)pfrom->GetId()); if (mapArgs.count("-dropmessagestest") && GetRand(atoi(mapArgs["-dropmessagestest"])) == 0) { LogPrintf("dropmessagestest DROPPING RECV MESSAGE\n"); @@ -7464,6 +7464,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, } else if (strCommand == "getnSPV") { + fprintf(stderr,"got getnSPV\n"); std::vector payload; vRecv >> payload; komodo_nSPVreq(pfrom,payload); From 9e55b41979287c2989a436a800f610cda23dd0b0 Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 19 Jul 2019 05:51:56 -1100 Subject: [PATCH 06/11] -print --- src/komodo_nSPV_fullnode.h | 6 +++--- src/main.cpp | 5 ++--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/komodo_nSPV_fullnode.h b/src/komodo_nSPV_fullnode.h index c8b9d90dd..ec682fea0 100644 --- a/src/komodo_nSPV_fullnode.h +++ b/src/komodo_nSPV_fullnode.h @@ -513,14 +513,14 @@ void komodo_nSPVreq(CNode *pfrom,std::vector request) // received a req pfrom->prevtimes[ind] = 0; if ( request[0] == NSPV_INFO ) // info { - fprintf(stderr,"check info %u vs %u, ind.%d\n",timestamp,pfrom->prevtimes[ind],ind); + //fprintf(stderr,"check info %u vs %u, ind.%d\n",timestamp,pfrom->prevtimes[ind],ind); if ( timestamp > pfrom->prevtimes[ind] ) { struct NSPV_inforesp I; if ( len == 1+sizeof(reqheight) ) iguana_rwnum(0,&request[1],sizeof(reqheight),&reqheight); else reqheight = 0; - fprintf(stderr,"request height.%d\n",reqheight); + //fprintf(stderr,"request height.%d\n",reqheight); memset(&I,0,sizeof(I)); if ( (slen= NSPV_getinfo(&I,reqheight)) > 0 ) { @@ -529,7 +529,7 @@ void komodo_nSPVreq(CNode *pfrom,std::vector request) // received a req //fprintf(stderr,"slen.%d\n",slen); if ( NSPV_rwinforesp(1,&response[1],&I) == slen ) { - fprintf(stderr,"send info resp to id %d\n",(int32_t)pfrom->id); + //fprintf(stderr,"send info resp to id %d\n",(int32_t)pfrom->id); pfrom->PushMessage("nSPV",response); pfrom->prevtimes[ind] = timestamp; } diff --git a/src/main.cpp b/src/main.cpp index f6fc6d55f..6333d18a1 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -7090,8 +7090,8 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, const CChainParams& chainparams = Params(); LogPrint("net", "received: %s (%u bytes) peer=%d\n", SanitizeString(strCommand), vRecv.size(), pfrom->id); //if ( KOMODO_NSPV != 0 ) - if ( strCommand != "version" && strCommand != "verack" && strCommand != "ping" && strCommand != "pong" ) - fprintf(stderr, "recv: %s (%u bytes) peer=%d\n", SanitizeString(strCommand).c_str(), vRecv.size(), (int32_t)pfrom->GetId()); + //if ( strCommand != "version" && strCommand != "verack" ) + fprintf(stderr, "recv: %s (%u bytes) peer=%d\n", SanitizeString(strCommand).c_str(), (int32_t)vRecv.size(), (int32_t)pfrom->GetId()); if (mapArgs.count("-dropmessagestest") && GetRand(atoi(mapArgs["-dropmessagestest"])) == 0) { LogPrintf("dropmessagestest DROPPING RECV MESSAGE\n"); @@ -7464,7 +7464,6 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, } else if (strCommand == "getnSPV") { - fprintf(stderr,"got getnSPV\n"); std::vector payload; vRecv >> payload; komodo_nSPVreq(pfrom,payload); From 3ba7d72856759347b2aa5c02ba5f2e0a360ee9ae Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 19 Jul 2019 06:02:31 -1100 Subject: [PATCH 07/11] -msg print --- src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 6333d18a1..d41d50a13 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -7091,7 +7091,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, LogPrint("net", "received: %s (%u bytes) peer=%d\n", SanitizeString(strCommand), vRecv.size(), pfrom->id); //if ( KOMODO_NSPV != 0 ) //if ( strCommand != "version" && strCommand != "verack" ) - fprintf(stderr, "recv: %s (%u bytes) peer=%d\n", SanitizeString(strCommand).c_str(), (int32_t)vRecv.size(), (int32_t)pfrom->GetId()); + // fprintf(stderr, "recv: %s (%u bytes) peer=%d\n", SanitizeString(strCommand).c_str(), (int32_t)vRecv.size(), (int32_t)pfrom->GetId()); if (mapArgs.count("-dropmessagestest") && GetRand(atoi(mapArgs["-dropmessagestest"])) == 0) { LogPrintf("dropmessagestest DROPPING RECV MESSAGE\n"); From e1bdd3bb1411643534223b6254117e908160641b Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 19 Jul 2019 07:55:16 -1100 Subject: [PATCH 08/11] Fix mempool son --- src/komodo_nSPV_superlite.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_nSPV_superlite.h b/src/komodo_nSPV_superlite.h index f8dae10bf..22f25fe05 100644 --- a/src/komodo_nSPV_superlite.h +++ b/src/komodo_nSPV_superlite.h @@ -442,7 +442,7 @@ UniValue NSPV_mempoolresp_json(struct NSPV_mempoolresp *ptr) UniValue result(UniValue::VOBJ),array(UniValue::VARR); int32_t i; result.push_back(Pair("result","success")); for (i=0; inumtxids; i++) - array.push_back(Pair("txid",ptr->txids[i].GetHex().c_str())); + array.push_back(ptr->txids[i].GetHex().c_str()); result.push_back(Pair("txids",array)); result.push_back(Pair("address",ptr->coinaddr)); result.push_back(Pair("isCC",ptr->CCflag)); From 4a1afec4e9ba758f7cc214d7d7676f9c6d5b7c18 Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 19 Jul 2019 08:01:07 -1100 Subject: [PATCH 09/11] Fix nexttxlen --- src/komodo_nSPV_superlite.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/komodo_nSPV_superlite.h b/src/komodo_nSPV_superlite.h index 22f25fe05..c8a86196d 100644 --- a/src/komodo_nSPV_superlite.h +++ b/src/komodo_nSPV_superlite.h @@ -476,7 +476,7 @@ UniValue NSPV_ntzsproof_json(struct NSPV_ntzsproofresp *ptr) result.push_back(Pair("prevtxlen",(int64_t)ptr->prevtxlen)); result.push_back(Pair("nexttxid",ptr->nexttxid.GetHex())); result.push_back(Pair("nexttxidht",(int64_t)ptr->nexttxidht)); - result.push_back(Pair("nexttxlen",(int64_t)ptr->prevtxlen)); + result.push_back(Pair("nexttxlen",(int64_t)ptr->nexttxlen)); result.push_back(Pair("numhdrs",(int64_t)ptr->common.numhdrs)); result.push_back(Pair("headers",NSPV_headers_json(ptr->common.hdrs,ptr->common.numhdrs,ptr->common.prevht))); result.push_back(Pair("lastpeer",NSPV_lastpeer)); From b52b4b7685e9b04a3398da77c8a210bccaa361b7 Mon Sep 17 00:00:00 2001 From: jl777 Date: Fri, 19 Jul 2019 22:34:09 -1100 Subject: [PATCH 10/11] Prevent nspv cli when nSPV=0 --- src/wallet/rpcdump.cpp | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/wallet/rpcdump.cpp b/src/wallet/rpcdump.cpp index 395612a3d..c734eb0d9 100644 --- a/src/wallet/rpcdump.cpp +++ b/src/wallet/rpcdump.cpp @@ -992,6 +992,8 @@ UniValue nspv_getinfo(const UniValue& params, bool fHelp) int32_t reqht = 0; if ( fHelp || params.size() > 1 ) throw runtime_error("nspv_getinfo [hdrheight]\n"); + if ( KOMODO_NSPV == 0 ) + throw runtime_error("-nSPV=1 must be set to use nspv\n"); if ( params.size() == 1 ) reqht = atoi((char *)params[0].get_str().c_str()); return(NSPV_getinfo_req(reqht)); @@ -1001,6 +1003,8 @@ UniValue nspv_logout(const UniValue& params, bool fHelp) { if ( fHelp || params.size() != 0 ) throw runtime_error("nspv_logout\n"); + if ( KOMODO_NSPV == 0 ) + throw runtime_error("-nSPV=1 must be set to use nspv\n"); return(NSPV_logout()); } @@ -1008,6 +1012,8 @@ UniValue nspv_login(const UniValue& params, bool fHelp) { if ( fHelp || params.size() != 1 ) throw runtime_error("nspv_login wif\n"); + if ( KOMODO_NSPV == 0 ) + throw runtime_error("-nSPV=1 must be set to use nspv\n"); return(NSPV_login((char *)params[0].get_str().c_str())); } @@ -1016,6 +1022,8 @@ UniValue nspv_listunspent(const UniValue& params, bool fHelp) int32_t skipcount = 0,CCflag = 0; if ( fHelp || params.size() > 3 ) throw runtime_error("nspv_listunspent [address [isCC [skipcount]]]\n"); + if ( KOMODO_NSPV == 0 ) + throw runtime_error("-nSPV=1 must be set to use nspv\n"); if ( params.size() == 0 ) { if ( NSPV_address.size() != 0 ) @@ -1039,6 +1047,8 @@ UniValue nspv_mempool(const UniValue& params, bool fHelp) memset(&txid,0,sizeof(txid)); if ( fHelp || params.size() > 5 ) throw runtime_error("nspv_mempool func(0 all, 1 address recv, 2 txid/vout spent, 3 txid inmempool) address isCC [txid vout]]]\n"); + if ( KOMODO_NSPV == 0 ) + throw runtime_error("-nSPV=1 must be set to use nspv\n"); funcid = atoi((char *)params[0].get_str().c_str()); coinaddr = (char *)params[1].get_str().c_str(); CCflag = atoi((char *)params[2].get_str().c_str()); @@ -1057,6 +1067,8 @@ UniValue nspv_listtransactions(const UniValue& params, bool fHelp) int32_t skipcount = 0,CCflag = 0; if ( fHelp || params.size() > 3 ) throw runtime_error("nspv_listtransactions [address [isCC [skipcount]]]\n"); + if ( KOMODO_NSPV == 0 ) + throw runtime_error("-nSPV=1 must be set to use nspv\n"); if ( params.size() == 0 ) { if ( NSPV_address.size() != 0 ) @@ -1080,6 +1092,8 @@ UniValue nspv_spentinfo(const UniValue& params, bool fHelp) uint256 txid; int32_t vout; if ( fHelp || params.size() != 2 ) throw runtime_error("nspv_spentinfo txid vout\n"); + if ( KOMODO_NSPV == 0 ) + throw runtime_error("-nSPV=1 must be set to use nspv\n"); txid = Parseuint256((char *)params[0].get_str().c_str()); vout = atoi((char *)params[1].get_str().c_str()); return(NSPV_spentinfo(txid,vout)); @@ -1090,6 +1104,8 @@ UniValue nspv_notarizations(const UniValue& params, bool fHelp) int32_t height; if ( fHelp || params.size() != 1 ) throw runtime_error("nspv_notarizations height\n"); + if ( KOMODO_NSPV == 0 ) + throw runtime_error("-nSPV=1 must be set to use nspv\n"); height = atoi((char *)params[0].get_str().c_str()); return(NSPV_notarizations(height)); } @@ -1099,6 +1115,8 @@ UniValue nspv_hdrsproof(const UniValue& params, bool fHelp) int32_t prevheight,nextheight; if ( fHelp || params.size() != 2 ) throw runtime_error("nspv_hdrsproof prevheight nextheight\n"); + if ( KOMODO_NSPV == 0 ) + throw runtime_error("-nSPV=1 must be set to use nspv\n"); prevheight = atoi((char *)params[0].get_str().c_str()); nextheight = atoi((char *)params[1].get_str().c_str()); return(NSPV_hdrsproof(prevheight,nextheight)); @@ -1109,6 +1127,8 @@ UniValue nspv_txproof(const UniValue& params, bool fHelp) uint256 txid; int32_t height; if ( fHelp || params.size() != 2 ) throw runtime_error("nspv_txproof txid height\n"); + if ( KOMODO_NSPV == 0 ) + throw runtime_error("-nSPV=1 must be set to use nspv\n"); txid = Parseuint256((char *)params[0].get_str().c_str()); height = atoi((char *)params[1].get_str().c_str()); return(NSPV_txproof(0,txid,height)); @@ -1118,7 +1138,9 @@ UniValue nspv_spend(const UniValue& params, bool fHelp) { uint64_t satoshis; if ( fHelp || params.size() != 2 ) - throw runtime_error("nspv_spend destaddr amount\n"); + throw runtime_error("nspv_spend address amount\n"); + if ( KOMODO_NSPV == 0 ) + throw runtime_error("-nSPV=1 must be set to use nspv\n"); if ( NSPV_address.size() == 0 ) throw runtime_error("to nspv_send you need an active nspv_login\n"); satoshis = atof(params[1].get_str().c_str())*COIN + 0.0000000049; @@ -1132,5 +1154,7 @@ UniValue nspv_broadcast(const UniValue& params, bool fHelp) { if ( fHelp || params.size() != 1 ) throw runtime_error("nspv_broadcast hex\n"); + if ( KOMODO_NSPV == 0 ) + throw runtime_error("-nSPV=1 must be set to use nspv\n"); return(NSPV_broadcast((char *)params[0].get_str().c_str())); } From f97a4a3caf54f291be38cdebc2cbe205bffd2e09 Mon Sep 17 00:00:00 2001 From: jl777 Date: Sat, 20 Jul 2019 00:05:08 -1100 Subject: [PATCH 11/11] +print --- src/komodo_nSPV.h | 2 +- src/komodo_nSPV_fullnode.h | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/komodo_nSPV.h b/src/komodo_nSPV.h index 27f03a5be..51deb18be 100644 --- a/src/komodo_nSPV.h +++ b/src/komodo_nSPV.h @@ -286,7 +286,7 @@ int32_t NSPV_rwinforesp(int32_t rwflag,uint8_t *serialized,struct NSPV_inforesp len += iguana_rwnum(rwflag,&serialized[len],sizeof(ptr->height),&ptr->height); len += iguana_rwnum(rwflag,&serialized[len],sizeof(ptr->hdrheight),&ptr->hdrheight); len += NSPV_rwequihdr(rwflag,&serialized[len],&ptr->H); - //fprintf(stderr,"hdr rwlen.%d\n",len); +fprintf(stderr,"hdr rwlen.%d\n",len); return(len); } diff --git a/src/komodo_nSPV_fullnode.h b/src/komodo_nSPV_fullnode.h index ec682fea0..ecd8dde44 100644 --- a/src/komodo_nSPV_fullnode.h +++ b/src/komodo_nSPV_fullnode.h @@ -520,16 +520,16 @@ void komodo_nSPVreq(CNode *pfrom,std::vector request) // received a req if ( len == 1+sizeof(reqheight) ) iguana_rwnum(0,&request[1],sizeof(reqheight),&reqheight); else reqheight = 0; - //fprintf(stderr,"request height.%d\n",reqheight); + fprintf(stderr,"request height.%d\n",reqheight); memset(&I,0,sizeof(I)); if ( (slen= NSPV_getinfo(&I,reqheight)) > 0 ) { response.resize(1 + slen); response[0] = NSPV_INFORESP; - //fprintf(stderr,"slen.%d\n",slen); + fprintf(stderr,"slen.%d\n",slen); if ( NSPV_rwinforesp(1,&response[1],&I) == slen ) { - //fprintf(stderr,"send info resp to id %d\n",(int32_t)pfrom->id); + fprintf(stderr,"send info resp to id %d\n",(int32_t)pfrom->id); pfrom->PushMessage("nSPV",response); pfrom->prevtimes[ind] = timestamp; }