<oembed><type>rich</type><version>1.0</version><author_name>npub1e46n428mcyfwznl7nlsf6d3s7rhlwm9x3cmkuqzt3emmdpadmkaqqjxmcu</author_name><author_url>https://nostr.ae/npub1e46n428mcyfwznl7nlsf6d3s7rhlwm9x3cmkuqzt3emmdpadmkaqqjxmcu</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2015-08-21&#xA;📝 Original message:The proposal will not break any existing clients in the first release.&#xA;After sufficient time to upgrade SPV clients, a new version will be&#xA;released which will result in older SPV clients finding themselves&#xA;disconnected from peers when they send filter* commands, so they can go&#xA;find other peers which do support bloom filtering.&#xA;&#xA;On 08/21/15 05:48, Jeff Garzik wrote:&#xA;&gt; If this is widely deployed + enabled, what is the impact to current&#xA;&gt; wallets in use?&#xA;&gt; &#xA;&gt; &#xA;&gt; On Fri, Aug 21, 2015 at 12:46 AM, Matt Corallo via bitcoin-dev&#xA;&gt; &lt;bitcoin-dev at lists.linuxfoundation.org&#xA;&gt; &lt;mailto:bitcoin-dev at lists.linuxfoundation.org&gt;&gt; wrote:&#xA;&gt; &#xA;&gt;     Peter: Since I stole most of this text from your old BIP, should I leave&#xA;&gt;     you as an author?&#xA;&gt; &#xA;&gt;     BIP: ?&#xA;&gt;     Title: NODE_BLOOM service bit&#xA;&gt;     Author: Matt Corallo &lt;bip at bluematt.me &lt;mailto:bip at bluematt.me&gt;&gt;,&#xA;&gt;     Peter Todd &lt;pete at petertodd.org &lt;mailto:pete at petertodd.org&gt;&gt;&#xA;&gt;     Type: Standards Track (draft)&#xA;&gt;     Created: 20-08-2015&#xA;&gt; &#xA;&gt;     Abstract&#xA;&gt;     ========&#xA;&gt; &#xA;&gt;     This BIP extends BIP 37, Connection Bloom filtering, by defining a&#xA;&gt;     service bit to allow peers to advertise that they support bloom filters&#xA;&gt;     explicitly. It also bumps the protocol version to allow peers to&#xA;&gt;     identify old nodes which allow bloom filtering of the connection despite&#xA;&gt;     lacking the new service bit.&#xA;&gt; &#xA;&gt; &#xA;&gt;     Motivation&#xA;&gt;     ==========&#xA;&gt; &#xA;&gt;     BIP 37 did not specify a service bit for the bloom filter service, thus&#xA;&gt;     implicitly assuming that all nodes that serve peers data support it.&#xA;&gt;     However, the connection filtering algorithm proposed in BIP 37, and&#xA;&gt;     implemented in several clients today, has been shown to provide little&#xA;&gt;     to no privacy, as well as being a large DoS risk on some nodes. Thus,&#xA;&gt;     allowing node operators to disable connection bloom filtering is a&#xA;&gt;     much-needed feature.&#xA;&gt; &#xA;&gt; &#xA;&gt;     Specification&#xA;&gt;     =============&#xA;&gt; &#xA;&gt;     The following protocol bit is added:&#xA;&gt; &#xA;&gt;         NODE_BLOOM = (1 &lt;&lt; 2)&#xA;&gt; &#xA;&gt;     Nodes which support bloom filters should set that protocol bit.&#xA;&gt;     Otherwise it should remain unset. In addition the protocol version is&#xA;&gt;     increased from 70002 to 70011 in the reference implementation. It is&#xA;&gt;     often the case that nodes which have a protocol version smaller than&#xA;&gt;     70011, but larger than 70000 support bloom filtered connections without&#xA;&gt;     the NODE_BLOOM bit set, however clients which require bloom filtered&#xA;&gt;     connections should avoid making this assumption.&#xA;&gt; &#xA;&gt;     NODE_BLOOM is distinct from NODE_NETWORK, and it is legal to advertise&#xA;&gt;     NODE_BLOOM but not NODE_NETWORK (eg for nodes running in pruned mode&#xA;&gt;     which, nonetheless, provide filtered access to the data which they&#xA;&gt;     do have).&#xA;&gt; &#xA;&gt;     If a node does not support bloom filters but receives a &#34;filterload&#34;,&#xA;&gt;     &#34;filteradd&#34;, or &#34;filterclear&#34; message from a peer the node should&#xA;&gt;     disconnect that peer immediately. For backwards compatibility, in&#xA;&gt;     initial implementations, nodes may choose to only disconnect nodes which&#xA;&gt;     have the new protocol version set and attempt to send a filter command.&#xA;&gt; &#xA;&gt;     While outside the scope of this BIP it is suggested that DNS seeds and&#xA;&gt;     other peer discovery mechanisms support the ability to specify the&#xA;&gt;     services required; current implementations simply check only that&#xA;&gt;     NODE_NETWORK is set.&#xA;&gt; &#xA;&gt; &#xA;&gt;     Design rational&#xA;&gt;     ===============&#xA;&gt; &#xA;&gt;     A service bit was chosen as applying a bloom filter is a service.&#xA;&gt; &#xA;&gt;     The increase in protocol version is for backwards compatibility. In&#xA;&gt;     initial implementations, old nodes which are not yet aware of NODE_BLOOM&#xA;&gt;     and use a protocol version &lt; 70011 may still send filter* messages to a&#xA;&gt;     node without NODE_BLOOM. This feature may be removed after there are&#xA;&gt;     sufficient NODE_BLOOM nodes available and SPV clients have upgraded,&#xA;&gt;     allowing node operators to fully close the bloom-related DoS vectors.&#xA;&gt; &#xA;&gt; &#xA;&gt;     Reference Implementation&#xA;&gt;     ========================&#xA;&gt; &#xA;&gt;     https://github.com/bitcoin/bitcoin/pull/6579&#xA;&gt; &#xA;&gt; &#xA;&gt;     Copyright&#xA;&gt;     =========&#xA;&gt; &#xA;&gt;     This document is placed in the public domain.&#xA;&gt;     _______________________________________________&#xA;&gt;     bitcoin-dev mailing list&#xA;&gt;     bitcoin-dev at lists.linuxfoundation.org&#xA;&gt;     &lt;mailto:bitcoin-dev at lists.linuxfoundation.org&gt;&#xA;&gt;     https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev&#xA;&gt; &#xA;&gt;</html></oembed>