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.&nbsp;</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 &nbsp;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 =
&nbsp;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"">&nbsp;</div><div class=3D""><br class=3D""></div><div =
class=3D"">&nbsp;</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--