Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id 4F4FE826 for ; Sat, 10 Dec 2016 12:23:55 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from mail-oi0-f50.google.com (mail-oi0-f50.google.com [209.85.218.50]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id CB95C13B for ; Sat, 10 Dec 2016 12:23:50 +0000 (UTC) Received: by mail-oi0-f50.google.com with SMTP id b126so45360086oia.2 for ; Sat, 10 Dec 2016 04:23:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=6Q1yLzlOFPVJL2k4LVuS4PUas4l/ivGVyojdqX/eITo=; b=Da7dSA1ATTpzsmBmFMlBsEfXOYxF3Gle/1etI9C0wo17fi0NKde/B1pqsRMKrl9af9 6C2lu/CLmArFQ2vwpm7dSY3Apl/PDXtSkfyzqLGWP36hK0kghnTY5EewFrBCMsBIv9LA 3QMmyL2G1yI4lr78vGvqrpWmid1KznDA7pw/04YB+EmVTH6A/aq4fJIaz3JbnIfNKIR2 XM8H0JlrmpoeYTJXGL0+F+EwFzKOwGVKPHSaU7MIyyMpz1P/YDgyO+jH2v5TNOY8Xvn1 GDfp+CCpaJTBI4GzfOAs/yCYJusSsdFMy5CjhMKQQq/drhwq0WQ7QiLHgOKm1AeeN0Zx QsGw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=6Q1yLzlOFPVJL2k4LVuS4PUas4l/ivGVyojdqX/eITo=; b=i6rh0KKbpBqucip/x8zDBdGxHcVzfi0O4EpXJfPH09zGe/WAVi5jTsxmGwUkceDvCd m0i0e3edbplSEsquCusZ/0vSZTesT5d/Z3ChoG8+uVMuBMp4GWhDyKxW1WAtY/3ucNip JwT0Y7pVMFkhNttRCPngLgWo9t7OzfR32j5SEUfEnuSV9aX41DBkRvZoavjxHQJmmJFF FymGX5VnvdYISx0kXFqApk8uELmrZrAld7tcyLFfv8nn8KSC2MQzbh6v5JlGqe7LQA3b 5cgISxKxYmpmrUS55YMQp+Ruu/NX+4g5NNzwKK4dKFiU6QxM5EwueeQ/A68f/xs8/3Gz Vufg== X-Gm-Message-State: AKaTC02vrjOcvp/2GCAQg/R0XLWRqmBlFmR00rRecxp6QtArb7l7UeibT05E6gz78jJmVqiLKI2DRkdi9NJJIQ== X-Received: by 10.202.188.196 with SMTP id m187mr43911190oif.210.1481372629864; Sat, 10 Dec 2016 04:23:49 -0800 (PST) MIME-Version: 1.0 Received: by 10.157.31.29 with HTTP; Sat, 10 Dec 2016 04:23:49 -0800 (PST) Received: by 10.157.31.29 with HTTP; Sat, 10 Dec 2016 04:23:49 -0800 (PST) In-Reply-To: References: From: Daniele Pinna Date: Sat, 10 Dec 2016 13:23:49 +0100 Message-ID: To: Bitcoin Dev Content-Type: multipart/alternative; boundary=001a113dc8fc6217d505434cf1e9 X-Spam-Status: No, score=-0.3 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, HTML_MESSAGE, RCVD_IN_DNSWL_NONE, URIBL_BLACK autolearn=no 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, 10 Dec 2016 13:57:42 +0000 Subject: Re: [bitcoin-dev] Managing block size the same way we do difficulty (aka Block75) 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: Sat, 10 Dec 2016 12:23:55 -0000 --001a113dc8fc6217d505434cf1e9 Content-Type: text/plain; charset=UTF-8 We have models for estimating the probability that a block is orphaned given average network bandwidth and block size. The question is, do we have objective measures of these two quantities? Couldn't we target an orphan_rate < max_rate? On Dec 10, 2016 1:01 PM, wrote: Send bitcoin-dev mailing list submissions to bitcoin-dev@lists.linuxfoundation.org To subscribe or unsubscribe via the World Wide Web, visit https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev or, via email, send a message with subject or body 'help' to bitcoin-dev-request@lists.linuxfoundation.org You can reach the person managing the list at bitcoin-dev-owner@lists.linuxfoundation.org When replying, please edit your Subject line so it is more specific than "Re: Contents of bitcoin-dev digest..." Today's Topics: 1. Managing block size the same way we do difficulty (aka Block75) (t. khan) 2. Re: Managing block size the same way we do difficulty (aka Block75) (s7r) ---------------------------------------------------------------------- Message: 1 Date: Mon, 5 Dec 2016 10:27:32 -0500 From: "t. khan" To: bitcoin-dev@lists.linuxfoundation.org Subject: [bitcoin-dev] Managing block size the same way we do difficulty (aka Block75) Message-ID: Content-Type: text/plain; charset="utf-8" BIP Proposal - Managing Bitcoin?s block size the same way we do difficulty (aka Block75) The every two-week adjustment of difficulty has proven to be a reasonably effective and predictable way of managing how quickly blocks are mined. Bitcoin needs a reasonably effective and predictable way of managing the maximum block size. It?s clear at this point that human beings should not be involved in the determination of max block size, just as they?re not involved in deciding the difficulty. Instead of setting an arbitrary max block size (1MB, 2MB, 8MB, etc.) or passing the decision to miners/pool operators, the max block size should be adjusted every two weeks (2016 blocks) using a system similar to how difficulty is calculated. Put another way: let?s stop thinking about what the max block size should be and start thinking about how full we want the average block to be regardless of size. Over the last year, we?ve had averages of 75% or higher, so aiming for 75% full seems reasonable, hence naming this concept ?Block75?. The target capacity over 2016 blocks would be 75%. If the last 2016 blocks are more than 75% full, add the difference to the max block size. Like this: MAX_BLOCK_BASE_SIZE = 1000000 TARGET_CAPACITY = 750000 AVERAGE_OVER_CAP = average block size of last 2016 blocks minus TARGET_CAPACITY To check if a block is valid, ? (MAX_BLOCK_BASE_SIZE + AVERAGE_OVER_CAP) For example, if the last 2016 blocks are 85% full (average block is 850 KB), add 10% to the max block size. The new max block size would be 1,100 KB until the next 2016 blocks are mined, then reset and recalculate. The 1,000,000 byte limit that exists currently would remain, but would effectively be the minimum max block size. Another two weeks goes by, the last 2016 blocks are again 85% full, but now that means they average 935 KB out of the 1,100 KB max block size. This is 93.5% of the 1,000,000 byte limit, so 18.5% would be added to that to make the new max block size of 1,185 KB. Another two weeks passes. This time, the average block is 1,050 KB. The new max block size is calculated to 1,300 KB (as blocks were 105% full, minus the 75% capacity target, so 30% added to max block size). Repeat every 2016 blocks, forever. If Block75 had been applied at the difficulty adjustment on November 18th, the max block size would have been 1,080KB, as the average block during that period was 83% full, so 8% is added to the 1,000KB limit. The current size, after the December 2nd adjustment would be 1,150K. Block75 would allow the max block size to grow (or shrink) in response to transaction volume, and does so predictably, reasonably quickly, and in a method that prevents wild swings in block size or transaction fees. It attempts to keep blocks at 75% total capacity over each two week period, the same way difficulty tries to keep blocks mined every ten minutes. It also keeps blocks as small as possible. Thoughts? -t.k. -------------- next part -------------- An HTML attachment was scrubbed... URL: ------------------------------ Message: 2 Date: Sat, 10 Dec 2016 12:44:31 +0200 From: s7r To: bitcoin-dev@lists.linuxfoundation.org Subject: Re: [bitcoin-dev] Managing block size the same way we do difficulty (aka Block75) Message-ID: Content-Type: text/plain; charset="utf-8" t. khan via bitcoin-dev wrote: > BIP Proposal - Managing Bitcoin?s block size the same way we do > difficulty (aka Block75) > > The every two-week adjustment of difficulty has proven to be a > reasonably effective and predictable way of managing how quickly blocks > are mined. Bitcoin needs a reasonably effective and predictable way of > managing the maximum block size. > > It?s clear at this point that human beings should not be involved in the > determination of max block size, just as they?re not involved in > deciding the difficulty. > > Instead of setting an arbitrary max block size (1MB, 2MB, 8MB, etc.) or > passing the decision to miners/pool operators, the max block size should > be adjusted every two weeks (2016 blocks) using a system similar to how > difficulty is calculated. > > Put another way: let?s stop thinking about what the max block size > should be and start thinking about how full we want the average block to > be regardless of size. Over the last year, we?ve had averages of 75% or > higher, so aiming for 75% full seems reasonable, hence naming this > concept ?Block75?. > > The target capacity over 2016 blocks would be 75%. If the last 2016 > blocks are more than 75% full, add the difference to the max block size. > Like this: > > MAX_BLOCK_BASE_SIZE = 1000000 > TARGET_CAPACITY = 750000 > AVERAGE_OVER_CAP = average block size of last 2016 blocks minus > TARGET_CAPACITY > > To check if a block is valid, ? (MAX_BLOCK_BASE_SIZE + AVERAGE_OVER_CAP) > > For example, if the last 2016 blocks are 85% full (average block is 850 > KB), add 10% to the max block size. The new max block size would be > 1,100 KB until the next 2016 blocks are mined, then reset and > recalculate. The 1,000,000 byte limit that exists currently would > remain, but would effectively be the minimum max block size. > > Another two weeks goes by, the last 2016 blocks are again 85% full, but > now that means they average 935 KB out of the 1,100 KB max block size. > This is 93.5% of the 1,000,000 byte limit, so 18.5% would be added to > that to make the new max block size of 1,185 KB. > > Another two weeks passes. This time, the average block is 1,050 KB. The > new max block size is calculated to 1,300 KB (as blocks were 105% full, > minus the 75% capacity target, so 30% added to max block size). > > Repeat every 2016 blocks, forever. > > If Block75 had been applied at the difficulty adjustment on November > 18th, the max block size would have been 1,080KB, as the average block > during that period was 83% full, so 8% is added to the 1,000KB limit. > The current size, after the December 2nd adjustment would be 1,150K. > > Block75 would allow the max block size to grow (or shrink) in response > to transaction volume, and does so predictably, reasonably quickly, and > in a method that prevents wild swings in block size or transaction fees. > It attempts to keep blocks at 75% total capacity over each two week > period, the same way difficulty tries to keep blocks mined every ten > minutes. It also keeps blocks as small as possible. > > Thoughts? > > -t.k. > I like the idea. It is good wrt growing the max. block size automatically without human action, but the main problem (or question) is not how to grow this number, it is what number can the network handle, considering both miners and users. While disk space requirements might not be a big problem, block propagation time is. The time required for a block to propagate in the network (or at least to all the miners) is directly dependent of its size. If blocks take too much time to propagate in the network, the orphan rate will increase in unpredictable ways. For example if the internet speed in China is worse than in Europe, and miners in China have more than 50% of the hashing power, blocks mined by European miners might get orphaned. The system as described can also be gamed, by filling the network with transactions. Miners have the monetary interest to include as many transactions as possible in a block in order to collect the fees. Regardless how you think about it, there has to be a maximum block size that the network will allow as a consensus rule. Increasing it dynamically based on transaction volume will reach a point where the number got big enough that it broke things. Bitcoin, because its fundamental design, can scale by using offchain solutions. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 488 bytes Desc: OpenPGP digital signature URL: ------------------------------ _______________________________________________ bitcoin-dev mailing list bitcoin-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev End of bitcoin-dev Digest, Vol 19, Issue 4 ****************************************** --001a113dc8fc6217d505434cf1e9 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
We have models for estimating the probability that a blo= ck is orphaned given average network bandwidth and block size.=C2=A0=

The question is, do we have objective measures= of these two quantities? Couldn't we target an orphan_rate < max_ra= te?=C2=A0<= br>



On Dec 10, 2016 1:01 PM, <bitcoin-dev-= request@lists.linuxfoundation.org> wrote:
Send bitcoin-dev mailing list submissions to
=C2=A0 =C2=A0 =C2=A0 =C2=A0 bitcoin-dev@lists.linuxfoundation.org

To subscribe or unsubscribe via the World Wide Web, visit
=C2=A0 =C2=A0 =C2=A0 =C2=A0 https://li= sts.linuxfoundation.org/mailman/listinfo/bitcoin-dev
or, via email, send a message with subject or body 'help' to
=C2=A0 =C2=A0 =C2=A0 =C2=A0 bitcoin-dev-request@lists.linuxfoundation.org
You can reach the person managing the list at
=C2=A0 =C2=A0 =C2=A0 =C2=A0 bitcoin-dev-owner@lists.linuxfoundation.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of bitcoin-dev digest..."


Today's Topics:

=C2=A0 =C2=A01. Managing block size the same way we do difficulty (aka
=C2=A0 =C2=A0 =C2=A0 Block75) (t. khan)
=C2=A0 =C2=A02. Re: Managing block size the same way we do difficulty (aka<= br> =C2=A0 =C2=A0 =C2=A0 Block75) (s7r)


-----------------------------------------------------------------= -----

Message: 1
Date: Mon, 5 Dec 2016 10:27:32 -0500
From: "t. khan" <teekha= n42@gmail.com>
To: bitcoin-dev@li= sts.linuxfoundation.org
Subject: [bitcoin-dev] Managing block size the same way we do
=C2=A0 =C2=A0 =C2=A0 =C2=A0 difficulty=C2=A0 =C2=A0 =C2=A0 (aka Block75) Message-ID:
=C2=A0 =C2=A0 =C2=A0 =C2=A0 <CAGCNRJqdu7DMC+AMR4mYKRAYStRMKVGqbnjtE= fmzcoeMij5u=3DA@mail.gmail.com= >
Content-Type: text/plain; charset=3D"utf-8"

BIP Proposal - Managing Bitcoin?s block size the same way we do difficulty<= br> (aka Block75)

The every two-week adjustment of difficulty has proven to be a reasonably effective and predictable way of managing how quickly blocks are mined.
Bitcoin needs a reasonably effective and predictable way of managing the maximum block size.

It?s clear at this point that human beings should not be involved in the determination of max block size, just as they?re not involved in deciding the difficulty.

Instead of setting an arbitrary max block size (1MB, 2MB, 8MB, etc.) or
passing the decision to miners/pool operators, the max block size should be=
adjusted every two weeks (2016 blocks) using a system similar to how
difficulty is calculated.

Put another way: let?s stop thinking about what the max block size should be and start thinking about how full we want the average block to be
regardless of size. Over the last year, we?ve had averages of 75% or
higher, so aiming for 75% full seems reasonable, hence naming this concept<= br> ?Block75?.

The target capacity over 2016 blocks would be 75%. If the last 2016 blocks<= br> are more than 75% full, add the difference to the max block size. Like this= :

MAX_BLOCK_BASE_SIZE =3D 1000000
TARGET_CAPACITY =3D 750000
AVERAGE_OVER_CAP =3D average block size of last 2016 blocks minus
TARGET_CAPACITY

To check if a block is valid, ? (MAX_BLOCK_BASE_SIZE + AVERAGE_OVER_CAP)
For example, if the last 2016 blocks are 85% full (average block is 850
KB), add 10% to the max block size. The new max block size would be 1,100 KB until the next 2016 blocks are mined, then reset and recalculate. The 1,000,000 byte limit that exists currently would remain, but would
effectively be the minimum max block size.

Another two weeks goes by, the last 2016 blocks are again 85% full, but now=
that means they average 935 KB out of the 1,100 KB max block size. This is<= br> 93.5% of the 1,000,000 byte limit, so 18.5% would be added to that to make<= br> the new max block size of 1,185 KB.

Another two weeks passes. This time, the average block is 1,050 KB. The new=
max block size is calculated to 1,300 KB (as blocks were 105% full, minus the 75% capacity target, so 30% added to max block size).

Repeat every 2016 blocks, forever.

If Block75 had been applied at the difficulty adjustment on November 18th,<= br> the max block size would have been 1,080KB, as the average block during
that period was 83% full, so 8% is added to the 1,000KB limit. The current<= br> size, after the December 2nd adjustment would be 1,150K.

Block75 would allow the max block size to grow (or shrink) in response to transaction volume, and does so predictably, reasonably quickly, and in a method that prevents wild swings in block size or transaction fees. It
attempts to keep blocks at 75% total capacity over each two week period, the same way difficulty tries to keep blocks mined every ten minutes. It also keeps blocks as small as possible.

Thoughts?

-t.k.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/<= wbr>attachments/20161205/c24d6c6d/attachment-0001.html>

------------------------------

Message: 2
Date: Sat, 10 Dec 2016 12:44:31 +0200
From: s7r <s7r@sky-ip.org>
To: bitcoin-dev@li= sts.linuxfoundation.org
Subject: Re: [bitcoin-dev] Managing block size the same way we do
=C2=A0 =C2=A0 =C2=A0 =C2=A0 difficulty (aka Block75)
Message-ID: <c318f76d-0904-2e1b-453b-60179f8209bb@sky-ip.org>
Content-Type: text/plain; charset=3D"utf-8"

t. khan via bitcoin-dev wrote:
> BIP Proposal - Managing Bitcoin?s block size the same way we do
> difficulty (aka Block75)
>
> The every two-week adjustment of difficulty has proven to be a
> reasonably effective and predictable way of managing how quickly block= s
> are mined. Bitcoin needs a reasonably effective and predictable way of=
> managing the maximum block size.
>
> It?s clear at this point that human beings should not be involved in t= he
> determination of max block size, just as they?re not involved in
> deciding the difficulty.
>
> Instead of setting an arbitrary max block size (1MB, 2MB, 8MB, etc.) o= r
> passing the decision to miners/pool operators, the max block size shou= ld
> be adjusted every two weeks (2016 blocks) using a system similar to ho= w
> difficulty is calculated.
>
> Put another way: let?s stop thinking about what the max block size
> should be and start thinking about how full we want the average block = to
> be regardless of size. Over the last year, we?ve had averages of 75% o= r
> higher, so aiming for 75% full seems reasonable, hence naming this
> concept ?Block75?.
>
> The target capacity over 2016 blocks would be 75%. If the last 2016 > blocks are more than 75% full, add the difference to the max block siz= e.
> Like this:
>
> MAX_BLOCK_BASE_SIZE =3D 1000000
> TARGET_CAPACITY =3D 750000
> AVERAGE_OVER_CAP =3D average block size of last 2016 blocks minus
> TARGET_CAPACITY
>
> To check if a block is valid, ? (MAX_BLOCK_BASE_SIZE + AVERAGE_OVER_CA= P)
>
> For example, if the last 2016 blocks are 85% full (average block is 85= 0
> KB), add 10% to the max block size. The new max block size would be > 1,100 KB until the next 2016 blocks are mined, then reset and
> recalculate. The 1,000,000 byte limit that exists currently would
> remain, but would effectively be the minimum max block size.
>
> Another two weeks goes by, the last 2016 blocks are again 85% full, bu= t
> now that means they average 935 KB out of the 1,100 KB max block size.=
> This is 93.5% of the 1,000,000 byte limit, so 18.5% would be added to<= br> > that to make the new max block size of 1,185 KB.
>
> Another two weeks passes. This time, the average block is 1,050 KB. Th= e
> new max block size is calculated to 1,300 KB (as blocks were 105% full= ,
> minus the 75% capacity target, so 30% added to max block size).
>
> Repeat every 2016 blocks, forever.
>
> If Block75 had been applied at the difficulty adjustment on November > 18th, the max block size would have been 1,080KB, as the average block=
> during that period was 83% full, so 8% is added to the 1,000KB limit.<= br> > The current size, after the December 2nd adjustment would be 1,150K. >
> Block75 would allow the max block size to grow (or shrink) in response=
> to transaction volume, and does so predictably, reasonably quickly, an= d
> in a method that prevents wild swings in block size or transaction fee= s.
> It attempts to keep blocks at 75% total capacity over each two week > period, the same way difficulty tries to keep blocks mined every ten > minutes. It also keeps blocks as small as possible.
>
> Thoughts?
>
> -t.k.
>

I like the idea. It is good wrt growing the max. block size
automatically without human action, but the main problem (or question)
is not how to grow this number, it is what number can the network
handle, considering both miners and users. While disk space requirements might not be a big problem, block propagation time is. The time required for a block to propagate in the network (or at least to all the miners)
is directly dependent of its size.=C2=A0 If blocks take too much time to propagate in the network, the orphan rate will increase in unpredictable ways. For example if the internet speed in China is worse than in
Europe, and miners in China have more than 50% of the hashing power,
blocks mined by European miners might get orphaned.

The system as described can also be gamed, by filling the network with
transactions. Miners have the monetary interest to include as many
transactions as possible in a block in order to collect the fees.
Regardless how you think about it, there has to be a maximum block size
that the network will allow as a consensus rule. Increasing it
dynamically based on transaction volume will reach a point where the
number got big enough that it broke things. Bitcoin, because its
fundamental design, can scale by using offchain solutions.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/attachments/20161210/c231038d/attachment-0001.sig>

------------------------------

_______________________________________________
bitcoin-dev mailing list
bitcoin-dev@lists.= linuxfoundation.org
https://lists.linuxfoundation.org= /mailman/listinfo/bitcoin-dev


End of bitcoin-dev Digest, Vol 19, Issue 4
******************************************

--001a113dc8fc6217d505434cf1e9--