Draft BIP for Bloom filtering



Summary:

Andreas has uploaded Android builds that use the new bloom filtering and peer selection code, along with dependency analysis of transactions. The performance gain is significant as the app feels dramatically faster to start up and sync. The app syncs on charge, and when opened around lunchtime, it had only 7 hours of data to sync (42 blocks) and it brought up 6 peer connections, found a 0.7.99 node, and synced all in. Matt's latest code has been tested by Andreas, and it seems to work correctly. He had to extend the client a bit to refresh the filter every 25k blocks because eventually, the filter degrades into uselessness, but it did still improve the situation quite a bit. Because it's unit tested, been reviewed by Mike Hearn several times, has an interoperable implementation that has also been tested by Andreas in a build of his smartphone app, it is going to ACK the current code and request that it be merged in to 0.8. Gavin needs to respond to this. The next step after that would be profiling. It's a big performance improvement for SPV clients already, but not as much as anticipated. There's a simple bottleneck or missed optimization somewhere, but that can come post-0.8.


Updated on: 2023-06-06T08:05:16.153181+00:00