Bitcoin Core 28.99.0
P2P Digital Currency
Public Member Functions | Public Attributes | Private Member Functions | List of all members
CMerkleBlock Class Reference

Used to relay blocks as header + vector<merkle branch> to filtered nodes. More...

#include <merkleblock.h>

Collaboration diagram for CMerkleBlock:
[legend]

Public Member Functions

 CMerkleBlock (const CBlock &block, CBloomFilter &filter)
 Create from a CBlock, filtering transactions according to filter Note that this will call IsRelevantAndUpdate on the filter for each transaction, thus the filter will likely be modified. More...
 
 CMerkleBlock (const CBlock &block, const std::set< Txid > &txids)
 
 CMerkleBlock ()=default
 
 SERIALIZE_METHODS (CMerkleBlock, obj)
 

Public Attributes

CBlockHeader header
 Public only for unit testing. More...
 
CPartialMerkleTree txn
 
std::vector< std::pair< unsigned int, uint256 > > vMatchedTxn
 Public only for unit testing and relay testing (not relayed). More...
 

Private Member Functions

 CMerkleBlock (const CBlock &block, CBloomFilter *filter, const std::set< Txid > *txids)
 

Detailed Description

Used to relay blocks as header + vector<merkle branch> to filtered nodes.

NOTE: The class assumes that the given CBlock has at least 1 transaction. If the CBlock has 0 txs, it will hit an assertion.

Definition at line 125 of file merkleblock.h.

Constructor & Destructor Documentation

◆ CMerkleBlock() [1/4]

CMerkleBlock::CMerkleBlock ( const CBlock block,
CBloomFilter filter 
)
inline

Create from a CBlock, filtering transactions according to filter Note that this will call IsRelevantAndUpdate on the filter for each transaction, thus the filter will likely be modified.

Definition at line 145 of file merkleblock.h.

◆ CMerkleBlock() [2/4]

CMerkleBlock::CMerkleBlock ( const CBlock block,
const std::set< Txid > &  txids 
)
inline

Definition at line 148 of file merkleblock.h.

◆ CMerkleBlock() [3/4]

CMerkleBlock::CMerkleBlock ( )
default

◆ CMerkleBlock() [4/4]

CMerkleBlock::CMerkleBlock ( const CBlock block,
CBloomFilter filter,
const std::set< Txid > *  txids 
)
private

Definition at line 30 of file merkleblock.cpp.

Here is the call graph for this function:

Member Function Documentation

◆ SERIALIZE_METHODS()

CMerkleBlock::SERIALIZE_METHODS ( CMerkleBlock  ,
obj   
)
inline

Definition at line 152 of file merkleblock.h.

Member Data Documentation

◆ header

CBlockHeader CMerkleBlock::header

Public only for unit testing.

Definition at line 129 of file merkleblock.h.

◆ txn

CPartialMerkleTree CMerkleBlock::txn

Definition at line 130 of file merkleblock.h.

◆ vMatchedTxn

std::vector<std::pair<unsigned int, uint256> > CMerkleBlock::vMatchedTxn

Public only for unit testing and relay testing (not relayed).

Used only when a bloom filter is specified to allow testing the transactions which matched the bloom filter.

Definition at line 138 of file merkleblock.h.


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