22 std::vector<CBLSId>
ids;
32 ids.reserve(quorumSize);
34 for (
int i = 0; i < quorumSize; i++) {
36 WriteLE64(
id.begin(), i + 1);
37 members.push_back({id, {}, {}});
41 for (
int i = 0; i < quorumSize; i++) {
51 for (
size_t i = 0; i <
members.size(); i++) {
60 for (
size_t i = 0; i <
members.size(); i++) {
84 if (invalidIndexes.count(i)) {
102 std::set<size_t> invalidIndexes;
103 for (
int i = 0; i < invalidCount; i++) {
106 invalidIndexes.emplace(shareIdx);
111 memberIdx = (memberIdx + 1) %
members.size();
122 if (
dkg10 ==
nullptr) {
123 dkg10 = std::make_shared<DKG>(10);
126 dkg100 = std::make_shared<DKG>(100);
129 dkg400 = std::make_shared<DKG>(400);
142 #define BENCH_BuildQuorumVerificationVectors(name, quorumSize, parallel, num_iters_for_one_second) \
143 static void BLSDKG_BuildQuorumVerificationVectors_##name##_##quorumSize(benchmark::State& state) \
146 dkg##quorumSize->Bench_BuildQuorumVerificationVectors(state, parallel); \
148 BENCHMARK(BLSDKG_BuildQuorumVerificationVectors_##name##_##quorumSize, num_iters_for_one_second)
161 #define BENCH_VerifyContributionShares(name, quorumSize, invalidCount, parallel, aggregated, num_iters_for_one_second) \
162 static void BLSDKG_VerifyContributionShares_##name##_##quorumSize(benchmark::State& state) \
165 dkg##quorumSize->Bench_VerifyContributionShares(state, invalidCount, parallel, aggregated); \
167 BENCHMARK(BLSDKG_VerifyContributionShares_##name##_##quorumSize, num_iters_for_one_second)
#define BENCH_BuildQuorumVerificationVectors(name, quorumSize, parallel, num_iters_for_one_second)
std::shared_ptr< DKG > dkg100
#define BENCH_VerifyContributionShares(name, quorumSize, invalidCount, parallel, aggregated, num_iters_for_one_second)
std::shared_ptr< DKG > dkg400
std::shared_ptr< DKG > dkg10
void CleanupBLSDkgTests()
std::shared_ptr< BLSVerificationVector > BLSVerificationVectorPtr
std::vector< CBLSSecretKey > BLSSecretKeyVector
std::vector< bool > VerifyContributionShares(const CBLSId &forId, const std::vector< BLSVerificationVectorPtr > &vvecs, const BLSSecretKeyVector &skShares, bool parallel=true, bool aggregated=true)
BLSVerificationVectorPtr BuildQuorumVerificationVector(const std::vector< BLSVerificationVectorPtr > &vvecs, size_t start=0, size_t count=0, bool parallel=true)
bool GenerateContributions(int threshold, const BLSIdVector &ids, BLSVerificationVectorPtr &vvecRet, BLSSecretKeyVector &skShares)
int GetRandInt(int nMax) noexcept
void BuildQuorumVerificationVector(bool parallel)
void Bench_BuildQuorumVerificationVectors(benchmark::State &state, bool parallel)
std::vector< CBLSId > ids
std::vector< Member > members
BLSSecretKeyVector receivedSkShares
void Bench_VerifyContributionShares(benchmark::State &state, int invalidCount, bool parallel, bool aggregated)
void VerifyContributionShares(size_t whoAmI, const std::set< size_t > &invalidIndexes, bool parallel, bool aggregated)
BLSVerificationVectorPtr quorumVvec
void ReceiveShares(size_t whoAmI)
std::vector< BLSVerificationVectorPtr > receivedVvecs
BLSSecretKeyVector skShares
BLSVerificationVectorPtr vvec