Only use randomly created nonces in CRollingBloomFilter.

This commit is contained in:
Pieter Wuille
2015-07-27 18:58:00 +02:00
parent d2d7ee0e86
commit d741371d7d
3 changed files with 14 additions and 13 deletions

View File

@@ -216,16 +216,17 @@ void CBloomFilter::UpdateEmptyFull()
isEmpty = empty;
}
CRollingBloomFilter::CRollingBloomFilter(unsigned int nElements, double fpRate, unsigned int nTweak) :
b1(nElements * 2, fpRate, nTweak), b2(nElements * 2, fpRate, nTweak)
CRollingBloomFilter::CRollingBloomFilter(unsigned int nElements, double fpRate) :
b1(nElements * 2, fpRate, 0), b2(nElements * 2, fpRate, 0)
{
// Implemented using two bloom filters of 2 * nElements each.
// We fill them up, and clear them, staggered, every nElements
// inserted, so at least one always contains the last nElements
// inserted.
nInsertions = 0;
nBloomSize = nElements * 2;
reset(nTweak);
reset();
}
void CRollingBloomFilter::insert(const std::vector<unsigned char>& vKey)
@@ -262,11 +263,9 @@ bool CRollingBloomFilter::contains(const uint256& hash) const
return contains(data);
}
void CRollingBloomFilter::reset(unsigned int nNewTweak)
void CRollingBloomFilter::reset()
{
if (!nNewTweak)
nNewTweak = GetRand(std::numeric_limits<unsigned int>::max());
unsigned int nNewTweak = GetRand(std::numeric_limits<unsigned int>::max());
b1.reset(nNewTweak);
b2.reset(nNewTweak);
nInsertions = 0;