PIVX Core  5.6.99
P2P Digital Currency
Classes | Public Member Functions | Public Attributes | Private Types | Private Member Functions | Private Attributes | List of all members
CBLSBatchVerifier< SourceId, MessageId > Class Template Reference

#include <bls_batchverifier.h>

Classes

struct  Message
 

Public Member Functions

 CBLSBatchVerifier (bool _secureVerification, bool _perMessageFallback, size_t _subBatchSize=0)
 
void PushMessage (const SourceId &sourceId, const MessageId &msgId, const uint256 &msgHash, const CBLSSignature &sig, const CBLSPublicKey &pubKey)
 
void ClearMessages ()
 
size_t GetUniqueSourceCount () const
 
void Verify ()
 

Public Attributes

std::set< SourceId > badSources
 
std::set< MessageId > badMessages
 

Private Types

using MessageMap = std::map< MessageId, Message >
 
using MessageMapIterator = typename MessageMap::iterator
 
using MessagesBySourceMap = std::map< SourceId, std::vector< MessageMapIterator > >
 

Private Member Functions

bool VerifyBatch (std::map< uint256, std::vector< MessageMapIterator >> &byMessageHash)
 
bool VerifyBatchInsecure (const std::map< uint256, std::vector< MessageMapIterator >> &byMessageHash)
 
bool VerifyBatchSecure (std::map< uint256, std::vector< MessageMapIterator >> &byMessageHash)
 
bool VerifyBatchSecureStep (std::map< uint256, std::vector< MessageMapIterator >> &byMessageHash)
 

Private Attributes

bool secureVerification
 
bool perMessageFallback
 
size_t subBatchSize
 
MessageMap messages
 
MessagesBySourceMap messagesBySource
 

Detailed Description

template<typename SourceId, typename MessageId>
class CBLSBatchVerifier< SourceId, MessageId >

Definition at line 15 of file bls_batchverifier.h.

Member Typedef Documentation

◆ MessageMap

template<typename SourceId , typename MessageId >
using CBLSBatchVerifier< SourceId, MessageId >::MessageMap = std::map<MessageId, Message>
private

Definition at line 25 of file bls_batchverifier.h.

◆ MessageMapIterator

template<typename SourceId , typename MessageId >
using CBLSBatchVerifier< SourceId, MessageId >::MessageMapIterator = typename MessageMap::iterator
private

Definition at line 26 of file bls_batchverifier.h.

◆ MessagesBySourceMap

template<typename SourceId , typename MessageId >
using CBLSBatchVerifier< SourceId, MessageId >::MessagesBySourceMap = std::map<SourceId, std::vector<MessageMapIterator> >
private

Definition at line 27 of file bls_batchverifier.h.

Constructor & Destructor Documentation

◆ CBLSBatchVerifier()

template<typename SourceId , typename MessageId >
CBLSBatchVerifier< SourceId, MessageId >::CBLSBatchVerifier ( bool  _secureVerification,
bool  _perMessageFallback,
size_t  _subBatchSize = 0 
)
inline

Definition at line 41 of file bls_batchverifier.h.

Member Function Documentation

◆ ClearMessages()

template<typename SourceId , typename MessageId >
void CBLSBatchVerifier< SourceId, MessageId >::ClearMessages ( )
inline

Definition at line 60 of file bls_batchverifier.h.

Here is the caller graph for this function:

◆ GetUniqueSourceCount()

template<typename SourceId , typename MessageId >
size_t CBLSBatchVerifier< SourceId, MessageId >::GetUniqueSourceCount ( ) const
inline

Definition at line 66 of file bls_batchverifier.h.

◆ PushMessage()

template<typename SourceId , typename MessageId >
void CBLSBatchVerifier< SourceId, MessageId >::PushMessage ( const SourceId &  sourceId,
const MessageId &  msgId,
const uint256 msgHash,
const CBLSSignature sig,
const CBLSPublicKey pubKey 
)
inline

Definition at line 47 of file bls_batchverifier.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ Verify()

template<typename SourceId , typename MessageId >
void CBLSBatchVerifier< SourceId, MessageId >::Verify ( )
inline

Definition at line 71 of file bls_batchverifier.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ VerifyBatch()

template<typename SourceId , typename MessageId >
bool CBLSBatchVerifier< SourceId, MessageId >::VerifyBatch ( std::map< uint256, std::vector< MessageMapIterator >> &  byMessageHash)
inlineprivate

Definition at line 126 of file bls_batchverifier.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ VerifyBatchInsecure()

template<typename SourceId , typename MessageId >
bool CBLSBatchVerifier< SourceId, MessageId >::VerifyBatchInsecure ( const std::map< uint256, std::vector< MessageMapIterator >> &  byMessageHash)
inlineprivate

Definition at line 135 of file bls_batchverifier.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ VerifyBatchSecure()

template<typename SourceId , typename MessageId >
bool CBLSBatchVerifier< SourceId, MessageId >::VerifyBatchSecure ( std::map< uint256, std::vector< MessageMapIterator >> &  byMessageHash)
inlineprivate

Definition at line 186 of file bls_batchverifier.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ VerifyBatchSecureStep()

template<typename SourceId , typename MessageId >
bool CBLSBatchVerifier< SourceId, MessageId >::VerifyBatchSecureStep ( std::map< uint256, std::vector< MessageMapIterator >> &  byMessageHash)
inlineprivate

Definition at line 200 of file bls_batchverifier.h.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ badMessages

template<typename SourceId , typename MessageId >
std::set<MessageId> CBLSBatchVerifier< SourceId, MessageId >::badMessages

Definition at line 38 of file bls_batchverifier.h.

◆ badSources

template<typename SourceId , typename MessageId >
std::set<SourceId> CBLSBatchVerifier< SourceId, MessageId >::badSources

Definition at line 37 of file bls_batchverifier.h.

◆ messages

template<typename SourceId , typename MessageId >
MessageMap CBLSBatchVerifier< SourceId, MessageId >::messages
private

Definition at line 33 of file bls_batchverifier.h.

◆ messagesBySource

template<typename SourceId , typename MessageId >
MessagesBySourceMap CBLSBatchVerifier< SourceId, MessageId >::messagesBySource
private

Definition at line 34 of file bls_batchverifier.h.

◆ perMessageFallback

template<typename SourceId , typename MessageId >
bool CBLSBatchVerifier< SourceId, MessageId >::perMessageFallback
private

Definition at line 30 of file bls_batchverifier.h.

◆ secureVerification

template<typename SourceId , typename MessageId >
bool CBLSBatchVerifier< SourceId, MessageId >::secureVerification
private

Definition at line 29 of file bls_batchverifier.h.

◆ subBatchSize

template<typename SourceId , typename MessageId >
size_t CBLSBatchVerifier< SourceId, MessageId >::subBatchSize
private

Definition at line 31 of file bls_batchverifier.h.


The documentation for this class was generated from the following file: