From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from sog-mx-4.v43.ch3.sourceforge.com ([172.29.43.194] helo=mx.sourceforge.net) by sfs-ml-3.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1Yy0hd-0003sm-Uj for bitcoin-development@lists.sourceforge.net; Thu, 28 May 2015 16:30:41 +0000 Received-SPF: pass (sog-mx-4.v43.ch3.sourceforge.com: domain of gmail.com designates 209.85.216.47 as permitted sender) client-ip=209.85.216.47; envelope-from=steven.pine@gmail.com; helo=mail-vn0-f47.google.com; Received: from mail-vn0-f47.google.com ([209.85.216.47]) by sog-mx-4.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1Yy0hc-0007gN-7u for bitcoin-development@lists.sourceforge.net; Thu, 28 May 2015 16:30:41 +0000 Received: by vnbg190 with SMTP id g190so5263100vnb.4 for ; Thu, 28 May 2015 09:30:34 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.52.227.8 with SMTP id rw8mr3101037vdc.4.1432830634658; Thu, 28 May 2015 09:30:34 -0700 (PDT) Received: by 10.52.26.80 with HTTP; Thu, 28 May 2015 09:30:34 -0700 (PDT) Received: by 10.52.26.80 with HTTP; Thu, 28 May 2015 09:30:34 -0700 (PDT) In-Reply-To: References: Date: Thu, 28 May 2015 12:30:34 -0400 Message-ID: From: Steven Pine To: bitcoin-development@lists.sourceforge.net Content-Type: multipart/alternative; boundary=089e01176e9d00939c051726e171 X-Spam-Score: -0.6 (/) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. -1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for sender-domain 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (steven.pine[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record 1.0 HTML_MESSAGE BODY: HTML included in message -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature X-Headers-End: 1Yy0hc-0007gN-7u Subject: Re: [Bitcoin-development] Proposed alternatives to the 20MB step function X-BeenThere: bitcoin-development@lists.sourceforge.net X-Mailman-Version: 2.1.9 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 May 2015 16:30:42 -0000 --089e01176e9d00939c051726e171 Content-Type: text/plain; charset=UTF-8 I would support a dynamic block size increase as outlined. I have a few questions though. Is scaling by average block size the best and easiest method, why not scale by transactions confirmed instead? Anyone can write and relay a transaction, and those are what we want to scale for, why not measure it directly? I would prefer changes every 2016 blocks, it is a well known change and a reasonable time period for planning on changes. Two weeks is plenty fast, especially at a 50% rate increase, in a few months the block size could be dramatically larger. Daily change to size seems confusing especially considering that max block size will be dipping up and down. Also if something breaks trying to fix it in a day seems problematic. The hard fork database size difference error comes to mind. Finally daily 50% increases could quickly crowd out smaller nodes if changes happen too quickly to adapt for. > Date: Thu, 28 May 2015 11:53:41 -0400 > From: Gavin Andresen > Subject: > To: Matt Whitlock > Cc: Bitcoin Dev > Message-ID: > < CABsx9T3-zxCAagAS0megd06xvG5n-3tUL9NUK9TT3vt7XNL9Tg@mail.gmail.com> > Content-Type: text/plain; charset="utf-8" > > On Fri, May 8, 2015 at 3:20 AM, Matt Whitlock wrote: > > > Between all the flames on this list, several ideas were raised that did > > not get much attention. I hereby resubmit these ideas for consideration and > > discussion. > > > > - Perhaps the hard block size limit should be a function of the actual > > block sizes over some trailing sampling period. For example, take the > > median block size among the most recent 2016 blocks and multiply it by 1.5. > > This allows Bitcoin to scale up gradually and organically, rather than > > having human beings guessing at what is an appropriate limit. > > > > A lot of people like this idea, or something like it. It is nice and > simple, which is really important for consensus-critical code. > > With this rule in place, I believe there would be more "fee pressure" > (miners would be creating smaller blocks) today. I created a couple of > histograms of block sizes to infer what policy miners are ACTUALLY > following today with respect to block size: > > Last 1,000 blocks: > http://bitcoincore.org/~gavin/sizes_last1000.html > > Notice a big spike at 750K -- the default size for Bitcoin Core. > This graph might be misleading, because transaction volume or fees might > not be high enough over the last few days to fill blocks to whatever limit > miners are willing to mine. > > So I graphed a time when (according to statoshi.info) there WERE a lot of > transactions waiting to be confirmed: > http://bitcoincore.org/~gavin/sizes_357511.html > > That might also be misleading, because it is possible there were a lot of > transactions waiting to be confirmed because miners who choose to create > small blocks got lucky and found more blocks than normal. In fact, it > looks like that is what happened: more smaller-than-normal blocks were > found, and the memory pool backed up. > > So: what if we had a dynamic maximum size limit based on recent history? > > The average block size is about 400K, so a 1.5x rule would make the max > block size 600K; miners would definitely be squeezing out transactions / > putting pressure to increase transaction fees. Even a 2x rule (implying > 800K max blocks) would, today, be squeezing out transactions / putting > pressure to increase fees. > > Using a median size instead of an average means the size can increase or > decrease more quickly. For example, imagine the rule is "median of last > 2016 blocks" and 49% of miners are producing 0-size blocks and 51% are > producing max-size blocks. The median is max-size, so the 51% have total > control over making blocks bigger. Swap the roles, and the median is > min-size. > > Because of that, I think using an average is better-- it means the max size > will change (up or down) more slowly. > > I also think 2016 blocks is too long, because transaction volumes change > quicker than that. An average over 144 blocks (last 24 hours) would be > better able to handle increased transaction volume around major holidays, > and would also be able to react more quickly if an economically irrational > attacker attempted to flood the network with fee-paying transactions. > > So my straw-man proposal would be: max size 2x average size over last 144 > blocks, calculated at every block. > > There are a couple of other changes I'd pair with that consensus change: > > + Make the default mining policy for Bitcoin Core neutral-- have its target > block size be the average size, so miners that don't care will "go along > with the people who do care." > > + Use something like Greg's formula for size instead of bytes-on-the-wire, > to discourage bloating the UTXO set. > > > --------- > > When I've proposed (privately, to the other core committers) some dynamic > algorithm the objection has been "but that gives miners complete control > over the max block size." > > I think that worry is unjustified right now-- certainly, until we have > size-independent new block propagation there is an incentive for miners to > keep their blocks small, and we see miners creating small blocks even when > there are fee-paying transactions waiting to be confirmed. > > I don't even think it will be a problem if/when we do have size-independent > new block propagation, because I think the combination of the random timing > of block-finding plus a dynamic limit as described above will create a > healthy system. > > If I'm wrong, then it seems to me the miners will have a very strong > incentive to, collectively, impose whatever rules are necessary (maybe a > soft-fork to put a hard cap on block size) to make the system healthy again. > > > -- > -- > Gavin Andresen > -------------- next part -------------- > An HTML attachment was scrubbed... > > ------------------------------ > > ------------------------------------------------------------------------------ > > > ------------------------------ > > _______________________________________________ > Bitcoin-development mailing list > Bitcoin-development@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/bitcoin-development > > > End of Bitcoin-development Digest, Vol 48, Issue 122 > **************************************************** --089e01176e9d00939c051726e171 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

I would support a dynamic block size increase as outlined. I= have a few questions though.

Is scaling by average block size the best and easiest method= , why not scale by transactions confirmed instead? Anyone can write and rel= ay a transaction, and those are what we want to scale for, why not measure = it directly?

I would prefer changes every 2016 blocks, it is a well known= change and a reasonable time period for planning on changes. Two weeks is = plenty fast, especially at a 50% rate increase, in a few months the block s= ize could be dramatically larger.

Daily change to size seems confusing especially considering = that max block size will be dipping up and down. Also if something breaks t= rying to fix it in a day seems problematic. The hard fork database size dif= ference error comes to mind. Finally daily 50% increases could quickly crow= d out smaller nodes if changes happen too quickly to adapt for.


=


> Date: Thu, 28 May 2015 11:53:41 -0400
> From: Gavin Andresen <ga= vinandresen@gmail.com>
> Subject:
> To: Matt Whitlock <bip@mat= twhitlock.name>
> Cc: Bitcoin Dev <bitcoin-development@lists.sourceforge.net>
> Message-ID:
> =C2=A0 =C2=A0 =C2=A0 =C2=A0 <CABsx9T3-zxCAagAS0megd06xvG= 5n-3tUL9NUK9TT3vt7XNL9Tg@mail.gmail.com>
> Content-Type: text/plain; charset=3D"utf-8"
>
> On Fri, May 8, 2015 at 3:20 AM, Matt Whitlock <bip@mattwhitlock.name> wrote:
>
> > Between all the flames on this list, several ideas were raised th= at did
> > not get much attention. I hereby resubmit these ideas for conside= ration and
> > discussion.
> >
> > - Perhaps the hard block size limit should be a function of the a= ctual
> > block sizes over some trailing sampling period. For example, take= the
> > median block size among the most recent 2016 blocks and multiply = it by 1.5.
> > This allows Bitcoin to scale up gradually and organically, rather= than
> > having human beings guessing at what is an appropriate limit.
> >
>
> A lot of people like this idea, or something like it. It is nice and > simple, which is really important for consensus-critical code.
>
> With this rule in place, I believe there would be more "fee press= ure"
> (miners would be creating smaller blocks) today. I created a couple of=
> histograms of block sizes to infer what policy miners are ACTUALLY
> following today with respect to block size:
>
> Last 1,000 blocks:
> =C2=A0 h= ttp://bitcoincore.org/~gavin/sizes_last1000.html
>
> Notice a big spike at 750K -- the default size for Bitcoin Core.
> This graph might be misleading, because transaction volume or fees mig= ht
> not be high enough over the last few days to fill blocks to whatever l= imit
> miners are willing to mine.
>
> So I graphed a time when (according to statoshi.info) there WERE a lot of
> transactions waiting to be confirmed:
> =C2=A0 =C2=A0http://bitcoincore.org/~gavin/sizes_357511.html
>
> That might also be misleading, because it is possible there were a lot= of
> transactions waiting to be confirmed because miners who choose to crea= te
> small blocks got lucky and found more blocks than normal.=C2=A0 In fac= t, it
> looks like that is what happened: more smaller-than-normal blocks were=
> found, and the memory pool backed up.
>
> So: what if we had a dynamic maximum size limit based on recent histor= y?
>
> The average block size is about 400K, so a 1.5x rule would make the ma= x
> block size 600K; miners would definitely be squeezing out transactions= /
> putting pressure to increase transaction fees. Even a 2x rule (implyin= g
> 800K max blocks) would, today, be squeezing out transactions / putting=
> pressure to increase fees.
>
> Using a median size instead of an average means the size can increase = or
> decrease more quickly. For example, imagine the rule is "median o= f last
> 2016 blocks" and 49% of miners are producing 0-size blocks and 51= % are
> producing max-size blocks. The median is max-size, so the 51% have tot= al
> control over making blocks bigger.=C2=A0 Swap the roles, and the media= n is
> min-size.
>
> Because of that, I think using an average is better-- it means the max= size
> will change (up or down) more slowly.
>
> I also think 2016 blocks is too long, because transaction volumes chan= ge
> quicker than that. An average over 144 blocks (last 24 hours) would be=
> better able to handle increased transaction volume around major holida= ys,
> and would also be able to react more quickly if an economically irrati= onal
> attacker attempted to flood the network with fee-paying transactions.<= br> >
> So my straw-man proposal would be:=C2=A0 max size 2x average size over= last 144
> blocks, calculated at every block.
>
> There are a couple of other changes I'd pair with that consensus c= hange:
>
> + Make the default mining policy for Bitcoin Core neutral-- have its t= arget
> block size be the average size, so miners that don't care will &qu= ot;go along
> with the people who do care."
>
> + Use something like Greg's formula for size instead of bytes-on-t= he-wire,
> to discourage bloating the UTXO set.
>
>
> ---------
>
> When I've proposed (privately, to the other core committers) some = dynamic
> algorithm the objection has been "but that gives miners complete = control
> over the max block size."
>
> I think that worry is unjustified right now-- certainly, until we have=
> size-independent new block propagation there is an incentive for miner= s to
> keep their blocks small, and we see miners creating small blocks even = when
> there are fee-paying transactions waiting to be confirmed.
>
> I don't even think it will be a problem if/when we do have size-in= dependent
> new block propagation, because I think the combination of the random t= iming
> of block-finding plus a dynamic limit as described above will create a=
> healthy system.
>
> If I'm wrong, then it seems to me the miners will have a very stro= ng
> incentive to, collectively, impose whatever rules are necessary (maybe= a
> soft-fork to put a hard cap on block size) to make the system healthy = again.
>
>
> --
> --
> Gavin Andresen
> -------------- next part --------------
> An HTML attachment was scrubbed...
>
> ------------------------------
>
> ----------------------------------------------------------------------= --------
>
>
> ------------------------------
>
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-d= evelopment@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development=
>
>
> End of Bitcoin-development Digest, Vol 48, Issue 122
> ****************************************************

--089e01176e9d00939c051726e171--