From 2c7028bb24de81824caa0c2bd237ebf92d159b64 Mon Sep 17 00:00:00 2001 From: xdustinface Date: Thu, 10 Dec 2020 18:06:03 +0100 Subject: [PATCH 1/5] bls: Add CBLSId(const int64_t n) and CBLSId(const uint256& nHash) --- src/bls/bls.cpp | 14 ++++++++++++++ src/bls/bls.h | 4 +++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/bls/bls.cpp b/src/bls/bls.cpp index 6fe738656ce8..26a5e257c15f 100644 --- a/src/bls/bls.cpp +++ b/src/bls/bls.cpp @@ -14,6 +14,20 @@ #include #include +CBLSId::CBLSId(const int64_t n) : CBLSWrapper() +{ + impl.SetHex(strprintf("%x", n)); + fValid = true; + UpdateHash(); +} + +CBLSId::CBLSId(const uint256& nHash) : CBLSWrapper() +{ + impl = nHash; + fValid = true; + UpdateHash(); +} + void CBLSId::SetInt(int x) { impl.SetHex(strprintf("%x", x)); diff --git a/src/bls/bls.h b/src/bls/bls.h index 17b610ab0910..ccb55ec472ea 100644 --- a/src/bls/bls.h +++ b/src/bls/bls.h @@ -240,7 +240,9 @@ class CBLSId : public CBLSWrapper using CBLSWrapper::operator!=; CBLSId() {} - + CBLSId(const int64_t n); + CBLSId(const uint256& nHash); + void SetInt(int x); void SetHash(const uint256& hash); From 982623860554ad1b558380f1ceffc154baf68a77 Mon Sep 17 00:00:00 2001 From: xdustinface Date: Thu, 10 Dec 2020 18:20:47 +0100 Subject: [PATCH 2/5] bench|llmq: Refactor instantiations of CBLSId --- src/bench/bls_dkg.cpp | 4 ++-- src/llmq/quorums.cpp | 2 +- src/llmq/quorums_dkgsession.cpp | 2 +- src/llmq/quorums_signing_shares.cpp | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/bench/bls_dkg.cpp b/src/bench/bls_dkg.cpp index 031304d11a0d..073f2e248b87 100644 --- a/src/bench/bls_dkg.cpp +++ b/src/bench/bls_dkg.cpp @@ -27,11 +27,11 @@ struct DKG DKG(int quorumSize) { - members.resize(quorumSize); + members.reserve(quorumSize); ids.resize(quorumSize); for (int i = 0; i < quorumSize; i++) { - members[i].id.SetInt(i + 1); + members.push_back({CBLSId(i + 1), {}, {}}); ids[i] = members[i].id; } diff --git a/src/llmq/quorums.cpp b/src/llmq/quorums.cpp index e8bbbb91a4c7..52b9c5d923ec 100644 --- a/src/llmq/quorums.cpp +++ b/src/llmq/quorums.cpp @@ -84,7 +84,7 @@ CBLSPublicKey CQuorum::GetPubKeyShare(size_t memberIdx) const return CBLSPublicKey(); } auto& m = members[memberIdx]; - return blsCache.BuildPubKeyShare(m->proTxHash, quorumVvec, CBLSId::FromHash(m->proTxHash)); + return blsCache.BuildPubKeyShare(m->proTxHash, quorumVvec, CBLSId(m->proTxHash)); } CBLSSecretKey CQuorum::GetSkShare() const diff --git a/src/llmq/quorums_dkgsession.cpp b/src/llmq/quorums_dkgsession.cpp index 56c6861415cc..27cbcb3a69f8 100644 --- a/src/llmq/quorums_dkgsession.cpp +++ b/src/llmq/quorums_dkgsession.cpp @@ -84,7 +84,7 @@ CDKGPrematureCommitment::CDKGPrematureCommitment(const Consensus::LLMQParams& pa CDKGMember::CDKGMember(CDeterministicMNCPtr _dmn, size_t _idx) : dmn(_dmn), idx(_idx), - id(CBLSId::FromHash(_dmn->proTxHash)) + id(_dmn->proTxHash) { } diff --git a/src/llmq/quorums_signing_shares.cpp b/src/llmq/quorums_signing_shares.cpp index 356b1c049054..ea97a8085f1e 100644 --- a/src/llmq/quorums_signing_shares.cpp +++ b/src/llmq/quorums_signing_shares.cpp @@ -807,7 +807,7 @@ void CSigSharesManager::TryRecoverSig(const CQuorumCPtr& quorum, const uint256& for (auto it = sigShares->begin(); it != sigShares->end() && sigSharesForRecovery.size() < quorum->params.threshold; ++it) { auto& sigShare = it->second; sigSharesForRecovery.emplace_back(sigShare.sigShare.Get()); - idsForRecovery.emplace_back(CBLSId::FromHash(quorum->members[sigShare.quorumMember]->proTxHash)); + idsForRecovery.emplace_back(quorum->members[sigShare.quorumMember]->proTxHash); } // check if we can recover the final signature From 076c455b16e2df27face83efc919baa2a74bddee Mon Sep 17 00:00:00 2001 From: xdustinface Date: Thu, 10 Dec 2020 18:22:08 +0100 Subject: [PATCH 3/5] bls: Drop CBLSId::{SetInt, SetHash, FromInt, FromHash} --- src/bls/bls.cpp | 28 ---------------------------- src/bls/bls.h | 6 ------ 2 files changed, 34 deletions(-) diff --git a/src/bls/bls.cpp b/src/bls/bls.cpp index 26a5e257c15f..d1c81021b85d 100644 --- a/src/bls/bls.cpp +++ b/src/bls/bls.cpp @@ -28,34 +28,6 @@ CBLSId::CBLSId(const uint256& nHash) : CBLSWrapper CBLSId() {} CBLSId(const int64_t n); CBLSId(const uint256& nHash); - - void SetInt(int x); - void SetHash(const uint256& hash); - - static CBLSId FromInt(int64_t i); - static CBLSId FromHash(const uint256& hash); }; class CBLSSecretKey : public CBLSWrapper From 6afa245307be43d300620a90aa118935f9439c5f Mon Sep 17 00:00:00 2001 From: UdjinM6 Date: Tue, 15 Dec 2020 00:43:12 +0300 Subject: [PATCH 4/5] Drop `CBLSId(int64_t)` ctor --- src/bench/bls_dkg.cpp | 14 ++++++++------ src/bls/bls.cpp | 7 ------- src/bls/bls.h | 1 - 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/src/bench/bls_dkg.cpp b/src/bench/bls_dkg.cpp index 073f2e248b87..fb99de4421ee 100644 --- a/src/bench/bls_dkg.cpp +++ b/src/bench/bls_dkg.cpp @@ -25,17 +25,19 @@ struct DKG BLSVerificationVectorPtr quorumVvec; - DKG(int quorumSize) + DKG(size_t quorumSize) { members.reserve(quorumSize); - ids.resize(quorumSize); + ids.reserve(quorumSize); - for (int i = 0; i < quorumSize; i++) { - members.push_back({CBLSId(i + 1), {}, {}}); - ids[i] = members[i].id; + for (size_t i = 0; i < quorumSize; i++) { + uint256 id; + WriteLE64(id.begin(), i + 1); + members.push_back({id, {}, {}}); + ids.emplace_back(id); } - for (int i = 0; i < quorumSize; i++) { + for (size_t i = 0; i < quorumSize; i++) { blsWorker.GenerateContributions(quorumSize / 2 + 1, ids, members[i].vvec, members[i].skShares); } diff --git a/src/bls/bls.cpp b/src/bls/bls.cpp index d1c81021b85d..9ca1084a0083 100644 --- a/src/bls/bls.cpp +++ b/src/bls/bls.cpp @@ -14,13 +14,6 @@ #include #include -CBLSId::CBLSId(const int64_t n) : CBLSWrapper() -{ - impl.SetHex(strprintf("%x", n)); - fValid = true; - UpdateHash(); -} - CBLSId::CBLSId(const uint256& nHash) : CBLSWrapper() { impl = nHash; diff --git a/src/bls/bls.h b/src/bls/bls.h index 32839e04a570..b2c87e56ed32 100644 --- a/src/bls/bls.h +++ b/src/bls/bls.h @@ -240,7 +240,6 @@ class CBLSId : public CBLSWrapper using CBLSWrapper::operator!=; CBLSId() {} - CBLSId(const int64_t n); CBLSId(const uint256& nHash); }; From d6a61e21cb6f5138fffd56151eab5ce4ac41b3b2 Mon Sep 17 00:00:00 2001 From: xdustinface Date: Tue, 15 Dec 2020 00:06:52 +0100 Subject: [PATCH 5/5] Partially Revert "Drop `CBLSId(int64_t)` ctor" --- src/bench/bls_dkg.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/bench/bls_dkg.cpp b/src/bench/bls_dkg.cpp index fb99de4421ee..8164c570c971 100644 --- a/src/bench/bls_dkg.cpp +++ b/src/bench/bls_dkg.cpp @@ -25,19 +25,19 @@ struct DKG BLSVerificationVectorPtr quorumVvec; - DKG(size_t quorumSize) + DKG(int quorumSize) { members.reserve(quorumSize); ids.reserve(quorumSize); - for (size_t i = 0; i < quorumSize; i++) { + for (int i = 0; i < quorumSize; i++) { uint256 id; WriteLE64(id.begin(), i + 1); members.push_back({id, {}, {}}); ids.emplace_back(id); } - for (size_t i = 0; i < quorumSize; i++) { + for (int i = 0; i < quorumSize; i++) { blsWorker.GenerateContributions(quorumSize / 2 + 1, ids, members[i].vvec, members[i].skShares); }