aboutsummaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
authorPieter Wuille <pieter.wuille@gmail.com>2015-11-27 13:20:29 +0100
committerPieter Wuille <pieter.wuille@gmail.com>2015-11-28 18:53:55 +0100
commit086ee67d839b33bf475177f680fcc848a0625266 (patch)
tree068fc2942de60c7c058652bc1d57d99f74908e25 /src/main.cpp
parent92aa7311d64cb1a0109d63d6bf7406c119bf94cd (diff)
Switch to a more efficient rolling Bloom filter
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.
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/main.cpp b/src/main.cpp
index ceb5cb66f3..422b1e7843 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -180,7 +180,7 @@ namespace {
* million to make it highly unlikely for users to have issues with this
* filter.
*
- * Memory used: 1.7MB
+ * Memory used: 1.3 MB
*/
boost::scoped_ptr<CRollingBloomFilter> recentRejects;
uint256 hashRecentRejectsChainTip;