diff options
Diffstat (limited to 'src/main.h')
-rw-r--r-- | src/main.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/main.h b/src/main.h index d2329af09a..77aac71d22 100644 --- a/src/main.h +++ b/src/main.h @@ -2039,4 +2039,34 @@ struct CBlockTemplate std::vector<int64_t> vTxSigOps; }; + + + + + +/** Used to relay blocks as header + vector<merkle branch> + * to filtered nodes. + */ +class CMerkleBlock +{ +public: + CBlockHeader header; + + // We could optimize this a bit to deduplicate partial branches, + // but it's not worth much unless a node has a ton of txes in a single block + // tx index , tx hash, merkle branch + std::vector<boost::tuple<unsigned int, uint256, std::vector<uint256> > > vtx; + + // 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. + CMerkleBlock(const CBlock& block, CBloomFilter& filter); + + IMPLEMENT_SERIALIZE + ( + READWRITE(header); + READWRITE(vtx); + ) +}; + #endif |