From 7b1346f314888d0e8eebcf74422f206848d7e92e Mon Sep 17 00:00:00 2001 From: pasta Date: Wed, 20 Apr 2022 13:29:12 -0500 Subject: [PATCH 1/6] refactor: implement irange::range and use it --- src/Makefile.am | 1 + src/bench/bls_dkg.cpp | 19 ++++---- src/coinjoin/client.cpp | 7 +-- src/coinjoin/server.cpp | 11 ++--- src/llmq/blockprocessor.cpp | 9 ++-- src/llmq/commitment.cpp | 11 ++--- src/llmq/debug.cpp | 3 +- src/llmq/dkgsession.cpp | 19 ++++---- src/llmq/dkgsessionmgr.cpp | 9 ++-- src/llmq/instantsend.cpp | 9 ++-- src/llmq/quorums.cpp | 18 +++++--- src/llmq/signing.cpp | 5 ++- src/llmq/signing_shares.cpp | 11 ++--- src/llmq/snapshot.h | 9 ++-- src/llmq/utils.cpp | 5 ++- src/llmq/utils.h | 3 +- src/util/irange.h | 90 +++++++++++++++++++++++++++++++++++++ 17 files changed, 174 insertions(+), 65 deletions(-) create mode 100644 src/util/irange.h diff --git a/src/Makefile.am b/src/Makefile.am index 1926f8ae0b84..1ec24d470054 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -301,6 +301,7 @@ BITCOIN_CORE_H = \ util/check.h \ util/error.h \ util/fees.h \ + util/irange.h \ util/spanparsing.h \ util/system.h \ util/asmap.h \ diff --git a/src/bench/bls_dkg.cpp b/src/bench/bls_dkg.cpp index 256deb17801b..1240d14f6635 100644 --- a/src/bench/bls_dkg.cpp +++ b/src/bench/bls_dkg.cpp @@ -3,8 +3,9 @@ // file COPYING or http://www.opensource.org/licenses/mit-license.php. #include -#include #include +#include +#include struct Member { CBLSId id; @@ -27,7 +28,7 @@ class DKG void ReceiveVvecs() { receivedVvecs.clear(); - for (size_t i = 0; i < members.size(); i++) { + for (const size_t i : irange::range(members.size())) { receivedVvecs.emplace_back(members[i].vvec); } quorumVvec = blsWorker.BuildQuorumVerificationVector(receivedVvecs); @@ -36,7 +37,7 @@ class DKG void ReceiveShares(size_t whoAmI) { receivedSkShares.clear(); - for (size_t i = 0; i < members.size(); i++) { + for (const size_t i : irange::range(members.size())) { receivedSkShares.emplace_back(members[i].skShares[whoAmI]); } } @@ -44,7 +45,7 @@ class DKG void VerifyContributionShares(size_t whoAmI, const std::set& invalidIndexes, bool aggregated) { auto result = blsWorker.VerifyContributionShares(members[whoAmI].id, receivedVvecs, receivedSkShares, aggregated); - for (size_t i = 0; i < receivedVvecs.size(); i++) { + for (const size_t i : irange::range(receivedVvecs.size())) { if (invalidIndexes.count(i)) { assert(!result[i]); } else { @@ -59,7 +60,7 @@ class DKG members.reserve(quorumSize); ids.reserve(quorumSize); - for (int i = 0; i < quorumSize; i++) { + for (const int i : irange::range(quorumSize)) { uint256 id; WriteLE64(id.begin(), i + 1); members.push_back({CBLSId(id), {}, {}}); @@ -67,7 +68,7 @@ class DKG } blsWorker.Start(); - for (int i = 0; i < quorumSize; i++) { + for (const int i : irange::range(quorumSize)) { blsWorker.GenerateContributions(quorumSize / 2 + 1, ids, members[i].vvec, members[i].skShares); } } @@ -93,7 +94,7 @@ class DKG ReceiveShares(memberIdx); std::set invalidIndexes; - for (int i = 0; i < invalidCount; i++) { + for (const int _ : irange::range(invalidCount)) { int shareIdx = GetRandInt(receivedSkShares.size()); receivedSkShares[shareIdx].MakeNewKey(); invalidIndexes.emplace(shareIdx); @@ -112,14 +113,14 @@ static void BLSDKG_GenerateContributions(benchmark::Bench& bench, uint32_t epoch blsWorker.Start(); std::vector ids; std::vector members; - for (int i = 0; i < quorumSize; i++) { + for (const int i : irange::range(quorumSize)) { uint256 id; WriteLE64(id.begin(), i + 1); members.push_back({CBLSId(id), {}, {}}); ids.emplace_back(id); } bench.minEpochIterations(epoch_iters).run([&blsWorker, &quorumSize, &ids, &members] { - for (int i = 0; i < quorumSize; i++) { + for (const int i : irange::range(quorumSize)) { blsWorker.GenerateContributions(quorumSize / 2 + 1, ids, members[i].vvec, members[i].skShares); } }); diff --git a/src/coinjoin/client.cpp b/src/coinjoin/client.cpp index 49f002bde805..ebb94014a9c7 100644 --- a/src/coinjoin/client.cpp +++ b/src/coinjoin/client.cpp @@ -15,6 +15,7 @@ #include #include