Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id BB4D76C for ; Wed, 23 May 2018 00:42:31 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from mail-qk0-f181.google.com (mail-qk0-f181.google.com [209.85.220.181]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 448D1177 for ; Wed, 23 May 2018 00:42:31 +0000 (UTC) Received: by mail-qk0-f181.google.com with SMTP id 196-v6so2775742qke.9 for ; Tue, 22 May 2018 17:42:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=ypfPtrFHMHD6Hl+Kh1Sm6vp4jBhCpGB5DTD16wvI8os=; b=GklIX90u6WJlXoA4LCGfI8Gv/D4tanlZSQF/A5AXeaTIGZ+gdymQ2KeYq84yIb4S9X 3e5FBoaeKkYOzyNmuuYXsCLY/tqg1GLddc7ut2vodJ1HZjtu5M7jkC9BNCnHHqo0pJcS M8mU0yuxRWSfAob660+lcY3taFxDr3IzuU7ZlGNoW+1Nl1JPI+OkmhL2cZC0syluEQks PXx1NnVAERWMkNcXvV2MSBPGTuDkaUq53HuBB/+d2S3Q+1ol5zlYs0G2leBBKx8mTbeu Nz54qGTy4UWliBEkjVxE0fCt9xyFSTLHfhtxdN6H4DpzQjdO6du7u6E8MFMFXyEsMLX0 wlmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=ypfPtrFHMHD6Hl+Kh1Sm6vp4jBhCpGB5DTD16wvI8os=; b=f3J1t6OFWrL6B0d4oLrUf7W+Wh8AM6OT4vFbWRJ0zj326W6kiCTNAhKht4EKSdwsMJ STg5kCS30WkTnvVsEjuzXVz0L6WT0Q2KOjRrSy49cjGIjL9jmRnivVAHWIpR7CnXuspl 14Oy3LwwXejhYx06naxMokJ8M8CASPpELOQgQ7Hayvd1Q07gdoX64htpdfpvjFILnreG oT21D0OZBIPrcEvNi0Qo1V6ko3UJQlzct5FdqoR42CA9xyPm7CuD1CmF5M0mf7hDsLby Iwtz+MeOhgFxHHGVsOb7/3yrIzP0egOXvXZ1gM8MyNkuIf2lQRcbnpx7hLi+Qu0xhGFN AfkQ== X-Gm-Message-State: ALKqPweH/lA0bLG+jDGyxP9yf6DhjVpR+GqWj1emjs6oFvyVNVTDL3IG EsTUX176tOoXvSQsR4FLaBhDZCvkWdNZWh9L+5A= X-Google-Smtp-Source: AB8JxZrLOQQ4gzNI1q0cDIzDz+figHn0GiEMsgSDMCcvjHS/rH87mgR563UeJXzuOlobe4vmDGgRuwNrHv0JfzhQYUw= X-Received: by 2002:a37:7e87:: with SMTP id z129-v6mr613947qkc.298.1527036150271; Tue, 22 May 2018 17:42:30 -0700 (PDT) MIME-Version: 1.0 Received: by 2002:ac8:325c:0:0:0:0:0 with HTTP; Tue, 22 May 2018 17:42:29 -0700 (PDT) In-Reply-To: References: <22d375c7-a032-8691-98dc-0e6ee87a4b08@mattcorallo.com> From: Jim Posen Date: Tue, 22 May 2018 17:42:29 -0700 Message-ID: To: =?UTF-8?Q?Johan_Tor=C3=A5s_Halseth?= , Matt Corallo Content-Type: multipart/alternative; boundary="0000000000004bd413056cd4cf05" X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, HTML_MESSAGE, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org X-Mailman-Approved-At: Wed, 23 May 2018 01:09:54 +0000 Cc: Bitcoin Protocol Discussion Subject: Re: [bitcoin-dev] BIP 158 Flexibility and Filter Size X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Bitcoin Protocol Discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 May 2018 00:42:31 -0000 --0000000000004bd413056cd4cf05 Content-Type: text/plain; charset="UTF-8" > > My suggestion was to advertise a bitfield for each filter type the node > serves, > where the bitfield indicates what elements are part of the filters. This > essentially > removes the notion of decided filter types and instead leaves the decision > to > full-nodes. > I think it makes more sense to construct entirely separate filters for the different types of elements and allow clients to download only the ones they care about. If there are enough elements per filter, the compression ratio shouldn't be much worse by splitting them up. This prevents the exponential blowup in the number of filters that you mention, Johan, and it works nicely with service bits for advertising different filter types independently. So if we created three separate filter types, one for output scripts, one for input outpoints, and one for TXIDs, each signaled with a separate service bit, are people good with that? Or do you think there shouldn't be a TXID filter at all, Matt? I didn't include the option of a prev output script filter or rolling that into the block output script filter because it changes the security model (cannot be proven to be correct/incorrect succinctly). Then there's the question of whether to separate or combine the headers. I'd lean towards keeping them separate because it's simpler that way. --0000000000004bd413056cd4cf05 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
My suggestion was to adver= tise a bitfield for each filter type the node serves,
where t= he bitfield indicates what elements are part of the filters. This essential= ly
removes the notion of decided filter types and instead leaves = the decision to=C2=A0
full-nodes.
I think it makes more sense to construct entirely separate fil= ters for the different types of elements and allow clients to download only= the ones they care about. If there are enough elements per filter, the com= pression ratio shouldn't be much worse by splitting them up. This preve= nts the exponential blowup in the number of filters that you mention, Johan= , and it works nicely with service bits for advertising different filter ty= pes independently.

So if we created three separate= filter types, one for output scripts, one for input outpoints, and one for= TXIDs, each signaled with a separate service bit, are people good with tha= t? Or do you think there shouldn't be a TXID filter at all, Matt? I did= n't include the option of a prev output script filter or rolling that i= nto the block output script filter because it changes the security model (c= annot be proven to be correct/incorrect succinctly).

Then there's the question of whether to separate or combine the head= ers. I'd lean towards keeping them separate because it's simpler th= at way.
--0000000000004bd413056cd4cf05--