From 7e24efd429bf3c07882fecad4de7e0b8a6401e46 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 18 Sep 2017 15:09:53 +0200 Subject: [PATCH 01/15] Print sync messages --- src/main.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main.cpp b/src/main.cpp index c14fd7995..227d6ca8f 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4583,6 +4583,7 @@ 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); + fprintf(stderr, "recv: %s (%u bytes) peer=%s\n", SanitizeString(strCommand), vRecv.size(), pfrom->addr.ToString()); if (mapArgs.count("-dropmessagestest") && GetRand(atoi(mapArgs["-dropmessagestest"])) == 0) { LogPrintf("dropmessagestest DROPPING RECV MESSAGE\n"); From 428690eefc8786184468a8f1c2bf0f03c02bd2c8 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 18 Sep 2017 15:10:57 +0200 Subject: [PATCH 02/15] Test --- src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 227d6ca8f..9f2e980d0 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4583,7 +4583,7 @@ 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); - fprintf(stderr, "recv: %s (%u bytes) peer=%s\n", SanitizeString(strCommand), vRecv.size(), pfrom->addr.ToString()); + fprintf(stderr, "recv: %s (%u bytes) peer=%s\n", SanitizeString(strCommand), vRecv.size(), pfrom->addr.ToString().c_str()); if (mapArgs.count("-dropmessagestest") && GetRand(atoi(mapArgs["-dropmessagestest"])) == 0) { LogPrintf("dropmessagestest DROPPING RECV MESSAGE\n"); From 74819673e6842d09518c29c9da49cdb760c1d244 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 18 Sep 2017 15:12:16 +0200 Subject: [PATCH 03/15] Test --- src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 9f2e980d0..11b2a18c2 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4583,7 +4583,7 @@ 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); - fprintf(stderr, "recv: %s (%u bytes) peer=%s\n", SanitizeString(strCommand), vRecv.size(), pfrom->addr.ToString().c_str()); + fprintf(stderr, "recv: %s peer=%s\n", SanitizeString(strCommand), pfrom->addr.ToString().c_str()); if (mapArgs.count("-dropmessagestest") && GetRand(atoi(mapArgs["-dropmessagestest"])) == 0) { LogPrintf("dropmessagestest DROPPING RECV MESSAGE\n"); From b4123cf2955d96adec05e1859bb058af4ffd169f Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 18 Sep 2017 15:13:56 +0200 Subject: [PATCH 04/15] Test --- src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 11b2a18c2..e9d87d780 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4583,7 +4583,7 @@ 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); - fprintf(stderr, "recv: %s peer=%s\n", SanitizeString(strCommand), pfrom->addr.ToString().c_str()); + fprintf(stderr, "recv: %s peer=%d\n", SanitizeString(strCommand), pfrom->id); if (mapArgs.count("-dropmessagestest") && GetRand(atoi(mapArgs["-dropmessagestest"])) == 0) { LogPrintf("dropmessagestest DROPPING RECV MESSAGE\n"); From 5fa9e2fe69cb9be9bd5955ddae84632abd7f6404 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 18 Sep 2017 15:15:44 +0200 Subject: [PATCH 05/15] Test --- src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index e9d87d780..858ce3f77 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4583,7 +4583,7 @@ 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); - fprintf(stderr, "recv: %s peer=%d\n", SanitizeString(strCommand), pfrom->id); + fprintf(stderr, "recv: %s peer=%d\n", SanitizeString(strCommand).c_str(), (itn32_t)pfrom->GetId()); if (mapArgs.count("-dropmessagestest") && GetRand(atoi(mapArgs["-dropmessagestest"])) == 0) { LogPrintf("dropmessagestest DROPPING RECV MESSAGE\n"); From 5323cb13a687351131005223b66bd583903fe403 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 18 Sep 2017 15:16:49 +0200 Subject: [PATCH 06/15] Test --- src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 858ce3f77..4be842e55 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4583,7 +4583,7 @@ 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); - fprintf(stderr, "recv: %s peer=%d\n", SanitizeString(strCommand).c_str(), (itn32_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"); From c2b0ec2e4e4d9bbc6363450be51c86720c767149 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 18 Sep 2017 15:30:30 +0200 Subject: [PATCH 07/15] Test --- src/main.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main.cpp b/src/main.cpp index 4be842e55..16d0df6da 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4494,7 +4494,10 @@ void static ProcessGetData(CNode* pfrom) else { if (inv.type == MSG_BLOCK) + { + fprintf(stderr,"send block %d\n",komodo_block2height(&block)); pfrom->PushMessage("block", block); + } else // MSG_FILTERED_BLOCK) { LOCK(pfrom->cs_filter); @@ -4957,6 +4960,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, vector vHeaders; int nLimit = MAX_HEADERS_RESULTS; LogPrint("net", "getheaders %d to %s from peer=%d\n", (pindex ? pindex->nHeight : -1), hashStop.ToString(), pfrom->id); + fprintf(stderr,"getheaders from %d\n",(int32_t)(pindex ? pindex->nHeight : -1)); for (; pindex; pindex = chainActive.Next(pindex)) { vHeaders.push_back(pindex->GetBlockHeader()); From e73a3943b3ed52c994dcb2d89a08502204af524d Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 18 Sep 2017 15:57:40 +0200 Subject: [PATCH 08/15] Test --- src/main.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 16d0df6da..a04dfcd18 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4495,7 +4495,11 @@ void static ProcessGetData(CNode* pfrom) { if (inv.type == MSG_BLOCK) { - fprintf(stderr,"send block %d\n",komodo_block2height(&block)); + uint256 hash; int32_t z; + hash = block.GetHash(); + for (z=0; z<32; z++) + printf("%02x",((uint8_t *)&hash)[z]); + fprintf(stderr," send block %d\n",komodo_block2height(&block)); pfrom->PushMessage("block", block); } else // MSG_FILTERED_BLOCK) From 5f27c121a989cf40389c12ce395925577424495b Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 18 Sep 2017 16:03:14 +0200 Subject: [PATCH 09/15] Test --- src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index a04dfcd18..31fb1cb17 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4498,7 +4498,7 @@ void static ProcessGetData(CNode* pfrom) uint256 hash; int32_t z; hash = block.GetHash(); for (z=0; z<32; z++) - printf("%02x",((uint8_t *)&hash)[z]); + fprintf(stderr,"%02x",((uint8_t *)&hash)[z]); fprintf(stderr," send block %d\n",komodo_block2height(&block)); pfrom->PushMessage("block", block); } From 1cf907bc7526282a374071f337250575876d8cdb Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 18 Sep 2017 16:13:32 +0200 Subject: [PATCH 10/15] Test --- src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 31fb1cb17..138682439 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4497,7 +4497,7 @@ void static ProcessGetData(CNode* pfrom) { uint256 hash; int32_t z; hash = block.GetHash(); - for (z=0; z<32; z++) + for (z=31; z>=0; z--) fprintf(stderr,"%02x",((uint8_t *)&hash)[z]); fprintf(stderr," send block %d\n",komodo_block2height(&block)); pfrom->PushMessage("block", block); From 37782e4e3b1365520d4ae07d1e967f34fe68d3cb Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 18 Sep 2017 16:35:45 +0200 Subject: [PATCH 11/15] Remove prints --- src/main.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 138682439..bc0ff9dfa 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4495,11 +4495,11 @@ void static ProcessGetData(CNode* pfrom) { if (inv.type == MSG_BLOCK) { - uint256 hash; int32_t z; - hash = block.GetHash(); - for (z=31; z>=0; z--) - fprintf(stderr,"%02x",((uint8_t *)&hash)[z]); - fprintf(stderr," send block %d\n",komodo_block2height(&block)); + //uint256 hash; int32_t z; + //hash = block.GetHash(); + //for (z=31; z>=0; z--) + // fprintf(stderr,"%02x",((uint8_t *)&hash)[z]); + //fprintf(stderr," send block %d\n",komodo_block2height(&block)); pfrom->PushMessage("block", block); } else // MSG_FILTERED_BLOCK) @@ -4590,7 +4590,7 @@ 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); - 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"); @@ -4964,7 +4964,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, vector vHeaders; int nLimit = MAX_HEADERS_RESULTS; LogPrint("net", "getheaders %d to %s from peer=%d\n", (pindex ? pindex->nHeight : -1), hashStop.ToString(), pfrom->id); - fprintf(stderr,"getheaders from %d\n",(int32_t)(pindex ? pindex->nHeight : -1)); + //fprintf(stderr,"getheaders from %d\n",(int32_t)(pindex ? pindex->nHeight : -1)); for (; pindex; pindex = chainActive.Next(pindex)) { vHeaders.push_back(pindex->GetBlockHeader()); From 336a60cf9b4e93e5a88baf7feabe82d515b54902 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 18 Sep 2017 16:57:31 +0200 Subject: [PATCH 12/15] Prevent duplicate headers --- src/main.cpp | 16 ++++++++++------ src/net.h | 1 + 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index bc0ff9dfa..57e692893 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4964,14 +4964,18 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, vector vHeaders; int nLimit = MAX_HEADERS_RESULTS; LogPrint("net", "getheaders %d to %s from peer=%d\n", (pindex ? pindex->nHeight : -1), hashStop.ToString(), pfrom->id); - //fprintf(stderr,"getheaders from %d\n",(int32_t)(pindex ? pindex->nHeight : -1)); - for (; pindex; pindex = chainActive.Next(pindex)) + fprintf(stderr,"getheaders from %d prev.%d\n",(int32_t)(pindex ? pindex->nHeight : -1),pfrom->lasthdrsreq); + if ( pfrom->lasthdrsreq != (int32_t)(pindex ? pindex->nHeight : -1) ) { - vHeaders.push_back(pindex->GetBlockHeader()); - if (--nLimit <= 0 || pindex->GetBlockHash() == hashStop) - break; + for (; pindex; pindex = chainActive.Next(pindex)) + { + vHeaders.push_back(pindex->GetBlockHeader()); + if (--nLimit <= 0 || pindex->GetBlockHash() == hashStop) + break; + } + pfrom->PushMessage("headers", vHeaders); + pfrom->lasthdrsreq = (int32_t)(pindex ? pindex->nHeight : -1); } - pfrom->PushMessage("headers", vHeaders); } diff --git a/src/net.h b/src/net.h index f7ebf11f6..5674bd40d 100644 --- a/src/net.h +++ b/src/net.h @@ -264,6 +264,7 @@ public: std::string addrName; CService addrLocal; int nVersion; + int lasthdrsreq; // strSubVer is whatever byte array we read from the wire. However, this field is intended // to be printed out, displayed to humans in various forms and so on. So we sanitize it and // store the sanitized version in cleanSubVer. The original should be used when dealing with From 4723d6acf5fe7903d8902537154d82821788a7ff Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 18 Sep 2017 16:59:22 +0200 Subject: [PATCH 13/15] Test --- src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 57e692893..8fc063f9b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4965,7 +4965,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, int nLimit = MAX_HEADERS_RESULTS; LogPrint("net", "getheaders %d to %s from peer=%d\n", (pindex ? pindex->nHeight : -1), hashStop.ToString(), pfrom->id); fprintf(stderr,"getheaders from %d prev.%d\n",(int32_t)(pindex ? pindex->nHeight : -1),pfrom->lasthdrsreq); - if ( pfrom->lasthdrsreq != (int32_t)(pindex ? pindex->nHeight : -1) ) + if ( pfrom->lasthdrsreq >= chainActive.Height()-MAX_HEADERS_RESULTS || pfrom->lasthdrsreq != (int32_t)(pindex ? pindex->nHeight : -1) ) { for (; pindex; pindex = chainActive.Next(pindex)) { From 164bbe6c3b6289f657b55733b0a495ad119b7c87 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 18 Sep 2017 17:13:58 +0200 Subject: [PATCH 14/15] Test --- src/main.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 8fc063f9b..7d4b4477c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -4964,9 +4964,9 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, vector vHeaders; int nLimit = MAX_HEADERS_RESULTS; LogPrint("net", "getheaders %d to %s from peer=%d\n", (pindex ? pindex->nHeight : -1), hashStop.ToString(), pfrom->id); - fprintf(stderr,"getheaders from %d prev.%d\n",(int32_t)(pindex ? pindex->nHeight : -1),pfrom->lasthdrsreq); if ( pfrom->lasthdrsreq >= chainActive.Height()-MAX_HEADERS_RESULTS || pfrom->lasthdrsreq != (int32_t)(pindex ? pindex->nHeight : -1) ) { + pfrom->lasthdrsreq = (int32_t)(pindex ? pindex->nHeight : -1); for (; pindex; pindex = chainActive.Next(pindex)) { vHeaders.push_back(pindex->GetBlockHeader()); @@ -4974,8 +4974,7 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, break; } pfrom->PushMessage("headers", vHeaders); - pfrom->lasthdrsreq = (int32_t)(pindex ? pindex->nHeight : -1); - } + } else fprintf(stderr,"ignore getheaders from peer.%d %d prev.%d\n",(int32_t)pfrom->id,(int32_t)(pindex ? pindex->nHeight : -1),pfrom->lasthdrsreq); } From 8dcf7f94492ab2ca9a7f94362f2f40c030eff594 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 18 Sep 2017 17:32:48 +0200 Subject: [PATCH 15/15] Test --- src/main.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index 7d4b4477c..6d831173b 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -49,6 +49,7 @@ using namespace std; */ CCriticalSection cs_main; +extern uint8_t NOTARY_PUBKEY33[33]; BlockMap mapBlockIndex; CChain chainActive; @@ -4974,7 +4975,9 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv, break; } pfrom->PushMessage("headers", vHeaders); - } else fprintf(stderr,"ignore getheaders from peer.%d %d prev.%d\n",(int32_t)pfrom->id,(int32_t)(pindex ? pindex->nHeight : -1),pfrom->lasthdrsreq); + } + else if ( NOTARY_PUBKEY33[0] != 0 ) + fprintf(stderr,"you can ignore redundant getheaders from peer.%d %d prev.%d\n",(int32_t)pfrom->id,(int32_t)(pindex ? pindex->nHeight : -1),pfrom->lasthdrsreq); }