From ce758384b8ffc624bd3e2f034097efe784efa0d1 Mon Sep 17 00:00:00 2001 From: Alexander Block Date: Thu, 9 May 2019 07:50:00 +0200 Subject: [PATCH 1/3] Print inputs on which we voted Also print the corresponding requestId. This makes debugging InstantSend issues easier. --- src/llmq/quorums_instantsend.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/llmq/quorums_instantsend.cpp b/src/llmq/quorums_instantsend.cpp index fe81cd3246c5..a2c3e7405b39 100644 --- a/src/llmq/quorums_instantsend.cpp +++ b/src/llmq/quorums_instantsend.cpp @@ -425,9 +425,14 @@ bool CInstantSendManager::ProcessTx(const CTransaction& tx, const Consensus::Par return true; } - for (auto& id : ids) { + for (size_t i = 0; i < tx.vin.size(); i++) { + auto& in = tx.vin[i]; + auto& id = ids[i]; inputRequestIds.emplace(id); - quorumSigningManager->AsyncSignIfMember(llmqType, id, tx.GetHash()); + if (quorumSigningManager->AsyncSignIfMember(llmqType, id, tx.GetHash())) { + LogPrintf("CInstantSendManager::%s -- txid=%s: voted on input %s with id %s\n", __func__, + tx.GetHash().ToString(), in.prevout.ToStringShort(), id.ToString()); + } } // We might have received all input locks before we got the corresponding TX. In this case, we have to sign the From 36717fcc199bd5221fcc46f00fa7dfc7dd6d01cd Mon Sep 17 00:00:00 2001 From: Alexander Block Date: Thu, 9 May 2019 17:27:41 +0200 Subject: [PATCH 2/3] Print quorum hash when signing a share --- src/llmq/quorums_signing_shares.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/llmq/quorums_signing_shares.cpp b/src/llmq/quorums_signing_shares.cpp index 2ab58707b092..873aeb8295dc 100644 --- a/src/llmq/quorums_signing_shares.cpp +++ b/src/llmq/quorums_signing_shares.cpp @@ -1436,8 +1436,8 @@ void CSigSharesManager::Sign(const CQuorumCPtr& quorum, const uint256& id, const sigShare.UpdateKey(); - LogPrint("llmq-sigs", "CSigSharesManager::%s -- signed sigShare. signHash=%s, id=%s, msgHash=%s, time=%s\n", __func__, - signHash.ToString(), sigShare.id.ToString(), sigShare.msgHash.ToString(), t.count()); + LogPrint("llmq-sigs", "CSigSharesManager::%s -- signed sigShare. signHash=%s, id=%s, msgHash=%s, llmqType=%d, quorum=%s, time=%s\n", __func__, + signHash.ToString(), sigShare.id.ToString(), sigShare.msgHash.ToString(), quorum->params.type, quorum->qc.quorumHash.ToString(), t.count()); ProcessSigShare(-1, sigShare, *g_connman, quorum); } From 8c271648b2b6f899972bbc24b83403ba3269b1d1 Mon Sep 17 00:00:00 2001 From: Alexander Block Date: Thu, 9 May 2019 17:28:16 +0200 Subject: [PATCH 3/3] Remove unused nodesByAddress map in CSigSharesManager::SendMessages Not related to this PR, but a simple cleanup that should have no side effects. --- src/llmq/quorums_signing_shares.cpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/llmq/quorums_signing_shares.cpp b/src/llmq/quorums_signing_shares.cpp index 873aeb8295dc..4e9103d5b997 100644 --- a/src/llmq/quorums_signing_shares.cpp +++ b/src/llmq/quorums_signing_shares.cpp @@ -984,11 +984,6 @@ void CSigSharesManager::CollectSigSharesToAnnounce(std::unordered_map nodesByAddress; - g_connman->ForEachNode([&nodesByAddress](CNode* pnode) { - nodesByAddress.emplace(pnode->addr, pnode->id); - }); - std::unordered_map> sigSharesToRequest; std::unordered_map> sigSharesToSend; std::unordered_map> sigSharesToAnnounce;