Return-Path: <arnoud@pukaki.bz>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id 18AC77E
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Wed,  5 Aug 2015 21:19:21 +0000 (UTC)
X-Greylist: from auto-whitelisted by SQLgrey-1.7.6
Received: from mail.affil.co (mail.affil.co [75.101.133.5])
	by smtp1.linuxfoundation.org (Postfix) with ESMTPS id F2BC0241
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Wed,  5 Aug 2015 21:19:18 +0000 (UTC)
Received: (qmail 29573 invoked by uid 1008); 5 Aug 2015 21:18:08 +0000
Received: from mail-ob0-f181.google.com (arnoud@pop.affil.co@209.85.214.181)
	by mail.affil.co with RC4-SHA encrypted SMTP; 5 Aug 2015 21:18:08 +0000
Received: by obnw1 with SMTP id w1so41465877obn.3
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Wed, 05 Aug 2015 14:19:17 -0700 (PDT)
MIME-Version: 1.0
X-Received: by 10.182.246.202 with SMTP id xy10mr9913744obc.64.1438809557211; 
	Wed, 05 Aug 2015 14:19:17 -0700 (PDT)
Received: by 10.76.83.136 with HTTP; Wed, 5 Aug 2015 14:19:17 -0700 (PDT)
In-Reply-To: <CAAS2fgQLNH+rivNNTFz6xt_9SxO3fFj7-3z7A-_B_2X2x-6M5w@mail.gmail.com>
References: <CALwsPgnnkbfUBhL=Qyspz13pnZ-6RHdaZOGvfLG34JjJRgt2Dw@mail.gmail.com>
	<B3546CB9-6A24-474C-8B56-9B1E2D33B470@mattcorallo.com>
	<CALwsPgm6xcBfLXZTNTZ40R_s3oUawE0ANZycDWpSo0cXZ+=-Vg@mail.gmail.com>
	<CAAS2fgQLNH+rivNNTFz6xt_9SxO3fFj7-3z7A-_B_2X2x-6M5w@mail.gmail.com>
Date: Wed, 5 Aug 2015 15:19:17 -0600
Message-ID: <CALwsPgm9S3UNd3bEuWreyGS7bcvSD+cXxueoD+F_D9fC=xLz2Q@mail.gmail.com>
From: Arnoud Kouwenhoven - Pukaki Corp <arnoud@pukaki.bz>
To: Gregory Maxwell <gmaxwell@gmail.com>
Content-Type: multipart/alternative; boundary=089e01634d6a8ea04f051c96f431
X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,HTML_MESSAGE
	autolearn=ham version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
	smtp1.linux-foundation.org
Cc: Arnoud Kouwenhoven - Pukaki Corp via bitcoin-dev
	<bitcoin-dev@lists.linuxfoundation.org>
Subject: Re: [bitcoin-dev] Idea: Efficient bitcoin block propagation
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Bitcoin Development 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: Wed, 05 Aug 2015 21:19:21 -0000

--089e01634d6a8ea04f051c96f431
Content-Type: text/plain; charset=UTF-8

Thanks for this (direct) feedback. It would make sense that if blocks can
be submitted using ~5kb packets, that no further optimizations would be
needed at this point. I will look into the relay network transmission
protocol to understand how it works!

I hear that you are saying that this network solves speed of transmission
and thereby (technical) block size issues. Presumably it would solve speed
of block validation too by prevalidating transactions. Assuming this is all
true, and I have no reason to doubt that at this point, I do not understand
why there is any discussion at all about the (technical) impact of large
blocks, or why there are large numbers of miners building on invalid blocks
(SPV mining, https://bitcoin.org/en/alert/2015-07-04-spv-mining), or why
there is any discussion about the speed of block validation (cpu processing
time to verify blocks and transactions in blocks being a limitation).

Our proposal aims at solving all three issues.

Now I would be glad if the suggestions we made are already implemented,
especially if that is in a more elegant approach. Great! Yet we still see
all three discussions, which is a surprise if they have been solved.

On Wed, Aug 5, 2015 at 2:16 PM, Gregory Maxwell <gmaxwell@gmail.com> wrote:

> On Wed, Aug 5, 2015 at 7:53 PM, Arnoud Kouwenhoven - Pukaki Corp via
> bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org> wrote:
> > Thanks for the reply. My understanding is that the bitcoin relay network
> is
> > a backbone of connected high speed servers to increase the rate at which
> > transactions and new blocks propagate - and remove a number of delays in
> > processing. But it would still require the miners to download the entire
> > block before building on top of it with any degree of confidence.
>
> Your understanding is outdated.
>
> The relay network includes an optimized transmission protocol which
> enables sending the "entire" block typically in just a smal number of
> bytes (much smaller than the summaries you suggest, which still leave
> the participants needing to send the block).
>
> E.g. block 000ce90846 was 999950 bytes and the relay network protocol
> sent it using at most 4906 bytes.
>
> No trust is required in this scheme because the entire block is
> communicated using only a couple packets.
>
> The current scheme is highly simplified and its efficiency could be
> increased greatly with small improvements, or if miners created blocks
> in an aware manner.... but with a maximum size blocks turning into 5kb
> with the current setup, there hardly appears to be a reason to do so
> right now.
>
> Ultimately there is no need for information communicated with a block
> at discovery time proportional to the size of the block; with the
> right affordances it can be accomplished with a small constant amount
> of data.
>
> If not for this already being deployed I personally believe the
> network would have already fallen into complete centeralization as a
> response to larger blocks: this was constructed and deployed in order
> to pull the network back from having a single pool with more than half
> the hashrate.
>

--089e01634d6a8ea04f051c96f431
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Thanks for this (direct) feedback. It would make sense tha=
t if blocks can be submitted using ~5kb packets, that no further optimizati=
ons would be needed at this point. I will look into the relay network trans=
mission protocol to understand how it works!<div><br></div><div>I hear that=
 you are saying that this network solves speed of transmission and thereby =
(technical) block size issues. Presumably it would solve speed of block val=
idation too by prevalidating transactions. Assuming this is all true, and I=
 have no reason to doubt that at this point, I do not understand why there =
is any discussion at all about the (technical) impact of large blocks, or w=
hy there are large numbers of miners building on invalid blocks (SPV mining=
, <a href=3D"https://bitcoin.org/en/alert/2015-07-04-spv-mining">https://bi=
tcoin.org/en/alert/2015-07-04-spv-mining</a>), or why there is any discussi=
on about the speed of block validation (cpu processing time to verify block=
s and transactions in blocks being a limitation).=C2=A0</div><div><br></div=
><div>Our proposal aims at solving all three issues.</div><div><br></div><d=
iv>Now I would be glad if the suggestions we made are already implemented, =
especially if that is in a more elegant approach. Great! Yet we still see a=
ll three discussions, which is a surprise if they have been solved.<br></di=
v></div><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">On Wed, A=
ug 5, 2015 at 2:16 PM, Gregory Maxwell <span dir=3D"ltr">&lt;<a href=3D"mai=
lto:gmaxwell@gmail.com" target=3D"_blank">gmaxwell@gmail.com</a>&gt;</span>=
 wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;bor=
der-left:1px #ccc solid;padding-left:1ex"><span class=3D"">On Wed, Aug 5, 2=
015 at 7:53 PM, Arnoud Kouwenhoven - Pukaki Corp via<br>
bitcoin-dev &lt;<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org">bi=
tcoin-dev@lists.linuxfoundation.org</a>&gt; wrote:<br>
&gt; Thanks for the reply. My understanding is that the bitcoin relay netwo=
rk is<br>
&gt; a backbone of connected high speed servers to increase the rate at whi=
ch<br>
&gt; transactions and new blocks propagate - and remove a number of delays =
in<br>
&gt; processing. But it would still require the miners to download the enti=
re<br>
&gt; block before building on top of it with any degree of confidence.<br>
<br>
</span>Your understanding is outdated.<br>
<br>
The relay network includes an optimized transmission protocol which<br>
enables sending the &quot;entire&quot; block typically in just a smal numbe=
r of<br>
bytes (much smaller than the summaries you suggest, which still leave<br>
the participants needing to send the block).<br>
<br>
E.g. block 000ce90846 was 999950 bytes and the relay network protocol<br>
sent it using at most 4906 bytes.<br>
<br>
No trust is required in this scheme because the entire block is<br>
communicated using only a couple packets.<br>
<br>
The current scheme is highly simplified and its efficiency could be<br>
increased greatly with small improvements, or if miners created blocks<br>
in an aware manner.... but with a maximum size blocks turning into 5kb<br>
with the current setup, there hardly appears to be a reason to do so<br>
right now.<br>
<br>
Ultimately there is no need for information communicated with a block<br>
at discovery time proportional to the size of the block; with the<br>
right affordances it can be accomplished with a small constant amount<br>
of data.<br>
<br>
If not for this already being deployed I personally believe the<br>
network would have already fallen into complete centeralization as a<br>
response to larger blocks: this was constructed and deployed in order<br>
to pull the network back from having a single pool with more than half<br>
the hashrate.<br>
</blockquote></div><br></div>

--089e01634d6a8ea04f051c96f431--