Return-Path: <admin@bitaps.com> Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id B68121ECA for <bitcoin-dev@lists.linuxfoundation.org>; Sat, 12 Oct 2019 13:46:47 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mail.bitaps.com (mail.bitaps.com [95.85.9.218]) by smtp1.linuxfoundation.org (Postfix) with ESMTP id 6112014D for <bitcoin-dev@lists.linuxfoundation.org>; Sat, 12 Oct 2019 13:46:46 +0000 (UTC) Received: from [192.168.1.51] (pppoe-46-226-64-151.prtcom.ru [46.226.64.151]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.bitaps.com (Postfix) with ESMTPSA id D593114983D for <bitcoin-dev@lists.linuxfoundation.org>; Sat, 12 Oct 2019 13:46:44 +0000 (UTC) From: "admin@bitaps.com" <admin@bitaps.com> Content-Type: multipart/alternative; boundary="Apple-Mail=_D3725B48-A22F-4AE7-834C-F8AB1D5E0444" Mime-Version: 1.0 (Mac OS X Mail 12.0 \(3445.100.39\)) Date: Sat, 12 Oct 2019 17:46:43 +0400 References: <mailman.4271.1570844414.8631.bitcoin-dev@lists.linuxfoundation.org> To: bitcoin-dev@lists.linuxfoundation.org In-Reply-To: <mailman.4271.1570844414.8631.bitcoin-dev@lists.linuxfoundation.org> Message-Id: <D8F63ECB-83D6-4F98-BEE3-4E467D8E2379@bitaps.com> X-Mailer: Apple Mail (2.3445.100.39) X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,HTML_MESSAGE, MIME_QP_LONG_LINE 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: Sat, 12 Oct 2019 17:41:35 +0000 Subject: Re: [bitcoin-dev] Block Batch Filters for Light Clients (Jonas Schnelli) X-BeenThere: bitcoin-dev@lists.linuxfoundation.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Bitcoin Protocol Discussion <bitcoin-dev.lists.linuxfoundation.org> List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>, <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe> List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/> List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org> List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help> List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>, <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe> X-List-Received-Date: Sat, 12 Oct 2019 13:46:47 -0000 --Apple-Mail=_D3725B48-A22F-4AE7-834C-F8AB1D5E0444 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Hi Jonas, Let's review case when we create filters for part of mempool or whole = mempool.=20 After new block is mined we have to verify what transactions is = confirmed from mempool. Mempool filter in design with set of = transactions make impossible use it do block filter reconstruction = because we have no mapping filter elements with transactions. This means that we need to download block filter to check what exactly = transactions are affected. Which does not give us advantages in terms of traffic savings. The idea of draft for mempool transactions filters is make possible to = reconstruct correct block filters using unconfirmed tx filters and = archive additional savings. At this moment I am working on Block Batch Filters implementation and = have same changes which will be updated in drafts as soon as I complete = all tests. Regarding unconfirmed TX filters, I came to the conclusion = that the filter should be the first 6 bytes of the address hash, this takes up a bit = more space, but allows to construct block filter. What do you mean by fingerprinting defence ? Please let me know what, in your opinion, are the disadvantages of the = per tx filter approach? Why use whole/part mempool is better? With regards Aleksey =20 =20 > 12 =D0=BE=D0=BA=D1=82. 2019 =D0=B3., =D0=B2 5:40, = bitcoin-dev-request@lists.linuxfoundation.org =D0=BD=D0=B0=D0=BF=D0=B8=D1=81= =D0=B0=D0=BB(=D0=B0): >=20 > Re: Block Batch Filters for Light Clients (Jonas Schnelli) --Apple-Mail=_D3725B48-A22F-4AE7-834C-F8AB1D5E0444 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8 <html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; = charset=3Dutf-8"></head><body style=3D"word-wrap: break-word; = -webkit-nbsp-mode: space; line-break: after-white-space;" class=3D"">Hi = Jonas,<div class=3D""><br class=3D""></div><div class=3D"">Let's review = case when we create filters for part of mempool or whole = mempool. </div><div class=3D""><br class=3D""></div><div = class=3D"">After new block is mined we have to verify what transactions = is confirmed from mempool. Mempool filter in design with set of = transactions make impossible use it do block filter reconstruction = because we have no mapping filter elements with transactions.</div><div = class=3D"">This means that we need to download block filter to check = what exactly transactions are affected.</div><div class=3D""><br = class=3D""></div><div class=3D"">Which does not give us advantages in = terms of traffic savings.</div><div class=3D""><br class=3D""></div><div = class=3D"">The idea of draft for mempool transactions filters is make = possible to reconstruct correct block filters using unconfirmed tx = filters and archive additional savings.</div><div class=3D""><br = class=3D""></div><div class=3D"">At this moment I am working on = Block Batch Filters implementation and have same changes which will be = updated in drafts as soon as I complete all tests. Regarding unconfirmed = TX filters, I came to the conclusion that the filter</div><div = class=3D"">should be the first 6 bytes of the address hash, this takes = up a bit more space, but allows to construct block filter.</div><div = class=3D""><br class=3D""></div><div class=3D""><br class=3D""></div><div = class=3D""><br class=3D""></div><div class=3D"">What do you mean by = fingerprinting defence ?</div><div class=3D""><br = class=3D""></div><div class=3D"">Please let me know what, in your = opinion, are the disadvantages of the per tx filter approach?</div><div = class=3D""><br class=3D""></div><div class=3D"">Why use whole/part = mempool is better?</div><div class=3D""><br class=3D""></div><div = class=3D""><br class=3D""></div><div class=3D"">With regards = Aleksey</div><div class=3D""><br class=3D""></div><div = class=3D""> </div><div class=3D""><br class=3D""></div><div = class=3D""> </div><div class=3D""><div><br class=3D""><blockquote = type=3D"cite" class=3D""><div class=3D"">12 =D0=BE=D0=BA=D1=82. 2019 = =D0=B3., =D0=B2 5:40, <a = href=3D"mailto:bitcoin-dev-request@lists.linuxfoundation.org" = class=3D"">bitcoin-dev-request@lists.linuxfoundation.org</a> = =D0=BD=D0=B0=D0=BF=D0=B8=D1=81=D0=B0=D0=BB(=D0=B0):</div><br = class=3D"Apple-interchange-newline"><div class=3D""><span = style=3D"caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: = 12px; font-style: normal; font-variant-caps: normal; font-weight: = normal; letter-spacing: normal; text-align: start; text-indent: 0px; = text-transform: none; white-space: normal; word-spacing: 0px; = -webkit-text-stroke-width: 0px; text-decoration: none; float: none; = display: inline !important;" class=3D"">Re: Block Batch Filters for = Light Clients (Jonas Schnelli)</span></div></blockquote></div><br = class=3D""></div></body></html>= --Apple-Mail=_D3725B48-A22F-4AE7-834C-F8AB1D5E0444--