> > Is this any different from my bloom filter IO attack code? Nope. > It's obviously different; a thin client trying to obtain more privacy is not attempting to deny service to anyone. You can't simply state that a feature which uses resources for a legitimate reason is a DoS attack, that's a spurious definition that would reclassify innocuous things like web browser prefetching as DoS attacks too. With respect to the work you're proposing, trying to retroactively make Bloom filtering an optional part of the protocol is just wasting people's time at this point: - There is no evidence there's an actual problem today. - There is no evidence there will be a problem any time soon, given the meagre levels of traffic growth we have. - It involves a complicated rollout strategy that would create work for many people. - Gavin, Wladimir and myself have all concluded it's not worth the cost. - The only justification you have provided is that two node implementations hardly anyone uses can't be bothered to implement Bloom filtering, but want to advertise support in their ver message anyway. They can simply lower the number they advertise in their ver message. That said, if you want to implement better support for archival nodes then that'd be great. The way to do it would be either to implement block ranges in the addr announcements as has been discussed many times before, or perhaps introduce a new protocol optimised for serving the chain. Nodes that are CPU limited won't want to take part in the rest of the P2P protocol anyway, it's not just Bloom filtering that uses CPU time but also block and tx relay. But until you have done these things, please stop attempting to reclassify any feature you can imagine a more efficient version of as an "attack". It's just silly.