aboutsummaryrefslogtreecommitdiff
path: root/src/bloom.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Refactor: Remove using namespace <xxx> from src/*.cpp.Karl-Johan Alm2017-01-271-15/+13
|
* Increment MIT Licence copyright header year on files modified in 2016isle29832016-12-311-1/+1
| | | | | | Edited via: $ contrib/devtools/copyright_header.py update .
* trivial: fix bloom filter init to isEmpty = trueRobert McLaughlin2016-11-011-1/+1
| | | | | | | Fixes newly initialized bloom filters being constructed with isEmpty(false), which still works but loses the possible speedup when checking for key membership in an empty filter.
* Do not shadow variablesPavel Janík2016-09-271-4/+4
|
* More efficient bitsliced rolling Bloom filterPieter Wuille2016-04-281-13/+27
| | | | | | | This patch changes the implementation from one that stores 16 2-bit integers in one uint32_t's, to one that stores the first bit of 64 2-bit integers in one uint64_t and the second bit in another. This allows for 450x faster refreshing and 2.2x faster average speed.
* Merge pull request #7205Wladimir J. van der Laan2016-01-051-1/+1
|\ | | | | | | | | | | fa71669 [devtools] Use git pretty-format for year parsing (MarcoFalke) fa24439 Bump copyright headers to 2015 (MarcoFalke) fa6ad85 [devtools] Rewrite fix-copyright-headers.py (MarcoFalke)
| * Bump copyright headers to 2015MarcoFalke2015-12-131-1/+1
| |
* | Switch to a more efficient rolling Bloom filterPieter Wuille2015-11-281-24/+53
|/ | | | | | | | | | | | | | | | For each 'bit' in the filter we really maintain 2 bits, which store either: 0: not set 1-3: set in generation N After (nElements / 2) insertions, we switch to a new generation, and wipe entries which already had the new generation number, effectively switching from the last 1.5 * nElements set to the last 1.0 * nElements set. This is 25% more space efficient than the previous implementation, and can (at peak) store 1.5 times the requested amount of history (though only 1.0 times the requested history is guaranteed). The existing unit tests should be sufficient.
* Only use randomly created nonces in CRollingBloomFilter.Pieter Wuille2015-07-271-7/+6
|
* Make CRollingBloomFilter set nTweak for youPeter Todd2015-07-271-4/+15
| | | | | | | | | | | | While CBloomFilter is usually used with an explicitly set nTweak, CRollingBloomFilter is only used internally. Requiring every caller to set nTweak is error-prone and redundant; better to have the class handle that for you with a high-quality randomness source. Additionally when clearing the filter it makes sense to change nTweak as well to recover from a bad setting, e.g. due to insufficient randomness at initialization, so the clear() method is replaced by a reset() method that sets a new, random, nTweak value.
* Reuse vector hashing code for uint256Pieter Wuille2015-07-271-14/+4
|
* Add uint256 support to CRollingBloomFilterPeter Todd2015-07-271-0/+22
|
* Rolling bloom filter classGavin Andresen2015-04-301-16/+67
| | | | | | | For when you need to keep track of the last N items you've seen, and can tolerate some false-positives. Rebased-by: Pieter Wuille <[email protected]>
* Added "Core" to copyright headerssandakersmann2014-12-191-1/+1
| | | | | Github-Pull: #5494 Rebased-From: 15de949bb9277e442302bdd8dee299a8d6deee60
* MOVEONLY: core/ -> primitives/Luke Dashjr2014-12-031-1/+1
|
* Convert remaining comments in /src to doxygen formatMichael Ford2014-11-211-8/+12
| | | | | | | | | | - Update comments in checkpoints to be doxygen compatible - Update comments in checkqueue to be doxygen compatible - Update coins to be doxygen compatible - Fix comment typo in crypter.h - Update licenses/copyright dates Closes #5325 #5184 #5183 #5182
* boost: moveonly: split CPubKey and friends to new filesCory Fields2014-10-311-0/+1
|
* MOVEONLY: Separate CTransaction and dependencies from corejtimon2014-10-271-1/+1
|
* boost: split stream classes out of serialize.hCory Fields2014-10-221-0/+1
| | | | serialization now has no dependencies.
* Separate script/standardjtimon2014-09-081-1/+2
|
* Rename script.h/.cpp to scriptutils.h/.cpp (plus remove duplicated includes)jtimon2014-09-081-1/+1
|
* Discover some missing includesjtimon2014-09-021-0/+2
|
* CBloomFilter::clear() methodTom Harding2014-07-211-0/+7
|
* Revert "CBloomFilter::clear() method"Wladimir J. van der Laan2014-07-211-7/+0
| | | | This reverts commit 8fbf03995df9a2003be603be1a930bc3373d56e0.
* CBloomFilter::clear() methodTom Harding2014-06-271-0/+7
|
* Code simplifications after CTransaction::GetHash() cachingPieter Wuille2014-06-221-1/+2
|
* Fix bloom filter not to use bit_maskperyaudo2014-03-201-4/+2
|
* Cleanup code using forward declarations.Brandon Dahler2013-11-101-2/+4
| | | | | | | | | Use misc methods of avoiding unnecesary header includes. Replace int typedefs with int##_t from stdint.h. Replace PRI64[xdu] with PRI[xdu]64 from inttypes.h. Normalize QT_VERSION ifs where possible. Resolve some indirect dependencies as direct ones. Remove extern declarations from .cpp files.
* Performance optimization for bloom filters.Gregory Maxwell2013-08-201-2/+24
| | | | | | | | This reduces a peer's ability to attack network resources by using a full bloom filter, but without reducing the usability of bloom filters. It sets a default match everything filter for peers and it generalizes a prior optimization to cover more cases.
* main.h->core.h include dependency improvements.Jeff Garzik2013-06-241-1/+1
|
* Short-circuit bloom checking if we will always return true.Matt Corallo2013-02-241-0/+4
| | | | This allows full nodes to use bloom filters as an optimization.
* Add nFlags to CBloomFilter to make filter updating optional.Matt Corallo2013-01-161-3/+13
|
* Add a nTweak to bloom filters to tweak the seed.Matt Corallo2013-01-161-3/+4
|
* Automatically add any matching outputs to a filter during matching.Matt Corallo2013-01-161-4/+16
|
* Replace RelayMessage with RelayTransaction.Matt Corallo2013-01-161-2/+2
|
* Add a CBloomFilter class for use as a transaction filter.Matt Corallo2013-01-161-0/+133