Return-Path: Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id D15BCB7E for ; Thu, 9 Mar 2017 15:29:10 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from mail-lf0-f48.google.com (mail-lf0-f48.google.com [209.85.215.48]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 718CD1ED for ; Thu, 9 Mar 2017 15:29:09 +0000 (UTC) Received: by mail-lf0-f48.google.com with SMTP id y193so29623229lfd.3 for ; Thu, 09 Mar 2017 07:29:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=issUYXKWwEFgaZH8xiLAT72TqTG0pAYfv57Ry3wDrdY=; b=L/V6qr9yz7ty3QdieklZWCLC0P9XerdX+ps5fyT5mkrCJk8RoGdd1kiIDyi0Mit931 pyvkjh6KaMQbMfn1vMRtaN1MGMS2f6jHJVBNRiU3PeqfUBYj9eA9SULa1A+gf/qOeZwZ 2m03UvzbFZid09uwXCkXb++pcrF9oa9DtB1tFVy8Anznllo0JTcjCPmHN/7twfGdBOAo Gz5oAxYMaiRUk7NYHuY3lzB7ek0fhevXwm/+fxlqRWUIBkrMQJ8wjf8Mz0wGxve4cRKj BEnrXmK7a5sISaBJoKArZfk5i+k4vZ6SQYySGZDzGFL086+62TpWqvWGGkdiAXQwKQGC JwEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=issUYXKWwEFgaZH8xiLAT72TqTG0pAYfv57Ry3wDrdY=; b=JMxv34GM8//9uOgLfxLoPROr6kUDfgAlEmwdQn73N5icKfj4xopUBrgY4s3zlTXa7g 6Wn/10w8CY7SM4tZ5MrOsF7me7/TAnm3hk+xQrc8EfAAU/Znziyr+mSHCcKenFhZN67P caTMK85Fep4pi/cCsWrjm8l2HSIZdT/odLqME4RlOdXqi8dTJ4QSbl0KTpgVVCDej+eB QdoPdftwCkmYmfOSPrGpp5TTM0bqzY1FM+I29heo/BwDnCXzkjrRdY7vYp6isovHP6RX N/wWRebW8SzJiBPt1v6h3nFolcwfuBUdLKgWFsyrjN73XxArJ9fYREDj11WrpA3CI6Cn vRUA== X-Gm-Message-State: AMke39mWwk2yxK25l5b0Xbp4yyZXaN8pGDvqLuJpNyRRi6Awal3WBc37LwcFOt3mfGEG6JY2OFT3LjfYsl9t5g== X-Received: by 10.25.150.82 with SMTP id y79mr3287779lfd.167.1489073347755; Thu, 09 Mar 2017 07:29:07 -0800 (PST) MIME-Version: 1.0 Sender: earonesty@gmail.com Received: by 10.25.160.203 with HTTP; Thu, 9 Mar 2017 07:29:07 -0800 (PST) In-Reply-To: <4db320cc-a165-c6bd-798b-ea85ee7fc9de@achow101.com> References: <4db320cc-a165-c6bd-798b-ea85ee7fc9de@achow101.com> From: Erik Aronesty Date: Thu, 9 Mar 2017 10:29:07 -0500 X-Google-Sender-Auth: g6E8PLfwTsQ65NhTle4ugzC44bk Message-ID: To: Andrew Chow Content-Type: multipart/alternative; boundary=001a11401e26f00b29054a4de748 X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FROM,HTML_MESSAGE,RCVD_IN_DNSWL_LOW 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: Thu, 09 Mar 2017 15:36:01 +0000 Cc: Bitcoin Protocol Discussion Subject: Re: [bitcoin-dev] High consensus fork system for scaling without limits 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: Thu, 09 Mar 2017 15:29:10 -0000 --001a11401e26f00b29054a4de748 Content-Type: text/plain; charset=UTF-8 > 1. Allow users to signal readiness by publishing an EB. This EB is an absolute upper bound, and cannot be overridden by miners. Current EB is 1MB, the status-quo. Maybe EB can be configured in a config file, not a UI, since it's an "advanced" feature. > > What does EB stand for? Excessive block size. > What is the point of users publishing an EB? Is it for miners to determine what to set theirs to? If so, what about sybil attacks with fake nodes publishing EBs? You can't trivially fake coinbase's full node, or gemini's, etc. Large users would also be encouraged to report their EB's publically as well. > How do users publish an EB? Do they use a transaction? Or is it something that goes into the User Agent? Same way a version string is published by a node. Maybe *in* the version string. > How high can the EB go? What is its maximum? Maybe 4MB for now? Seems fine. Trivial to change it later, since it's not a fork to do so. > 6. Core can (optionally) ship a version with a default EB in-line with their own perceived consensus. I would say that Core /should/ ship new versions with new default EB's in-line with both miner and the economic majority after a 95% consensus fork. > 7. Some sort of versioning system is used to ensure that the two networks (old and new) are incompatible... blocks hashed in one cannot be used in the other. > > I think this would require a soft fork beforehand in order to implement such a system. I thought versionbits could handle this? Can't they? ALP pointed out that it was important for a fork to be fully incompatible. > It would be in the best interests of major exchanges and users would to publicly announce their EB's. > > Why? So miners can have a more reliable signal to go on. No reasonable miner would start mining signal for a fork unless they were confident that they are doing so in-line with users and exchanges. > "Scaling" includes a lot more than just the block size. There is much more to scaling than just increasing the block size. Yes, which is why I used air-quotes. The primary idea is to remove a political issue from affecting core developers. There is a perception among some people that "if only core would....". Plus, fees are *inherently* political because it is a barrier for low-net-worth individuals transacting using this technology. Even if lightning worked perfectly, how can a small business in Africa afford to set up a full node and being to participate as a hub if fees are $50? OMG blame core. Miners and users should be free to wrangle each other over fees any time they want without the involvement of developers. I suspect the status quo would be even *more* stable in that scenario... not less. > What if the EB of a new node is set to be smaller than the current block size? Then it is only used for signal unless a fork occurs that results in a reduction <= EB... in which case the EB becomes a hard upper bound, just like any other. When an EB is set by a user a block-height needs to be recorded along with it, so it can be handled correctly. EB set to < active seems to me to be a special case. Likewise the percentile shoudl be the upper 5% in the case of EB < active. This essentially partitions signalling into "< active" and "> active". --001a11401e26f00b29054a4de748 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
> 1. Allow users to signal readiness by publishing= an EB. This EB is an absolute upper bound, and cannot be overridden by min= ers. Current EB is 1MB, the status-quo. =C2=A0 Maybe EB can be configured i= n a config file, not a UI, since it's an "advanced" feature.<= br>>
> What does EB stand for?

Excessive block size.= =C2=A0=C2=A0

> What is the point of users publishing an EB?= Is it for miners to determine what to set theirs to? If so, what about syb= il attacks with fake nodes publishing EBs?

You can't = trivially fake coinbase's full node, or gemini's, etc.=C2=A0=C2=A0 = Large users would also be encouraged to report their EB's publically as= well.

> How do users publish an EB? Do they use a tra= nsaction? Or is it something that goes into the User Agent?

Same way a version string is published by a node.=C2=A0=C2=A0 Maybe *in*= the version string.

> How high can the EB go? What is= its maximum?

Maybe 4MB for now?=C2=A0=C2=A0 Seems fine.= =C2=A0=C2=A0 Trivial to change it later, since it's not a fork to do so= .

> 6. Core can (optionally) ship a version with a def= ault EB in-line with their own perceived consensus.=C2=A0

I would say that Core /should/ ship new versions with new default EB'= s in-line with both miner and the economic majority after a 95% consensus f= ork.

> 7. Some sort of versioning system is used to en= sure that the two networks (old and new) are incompatible... blocks hashed = in one cannot be used in the other.
>
> I think this would requ= ire a soft fork beforehand in order to implement such a system.

I thought versionbits could handle this?=C2=A0=C2=A0 Can't they?= =C2=A0 ALP pointed out that it was important for a fork to be fully incompa= tible.

> It would be in the best interests of major ex= changes and users would to publicly announce their EB's.
>
>= ; Why?

So miners can have a more reliable signal to go on= .=C2=A0=C2=A0 No reasonable miner would start mining signal for a fork unle= ss they were confident that they are doing so in-line with users and exchan= ges.

> "Scaling" includes a lot more than ju= st the block size. There is much more to scaling than just increasing the b= lock size.

Yes, which is why I used air-quotes.=C2=A0=C2= =A0 The primary idea is to remove a political issue from affecting core dev= elopers.=C2=A0=C2=A0 There is a perception among some people that "if = only core would....".=C2=A0=C2=A0 Plus, fees are *inherently* politica= l because it is a barrier for low-net-worth individuals transacting using t= his technology.=C2=A0=C2=A0 Even if lightning worked perfectly, how can a s= mall business in Africa afford to set up a full node and being to participa= te as a hub if fees are $50?=C2=A0=C2=A0 OMG blame core.=C2=A0

Mine= rs and users should be free to wrangle each other over fees any time they w= ant without the involvement of developers.=C2=A0=C2=A0 I suspect the status= quo would be even *more* stable in that scenario... not less.

> What if the EB of a new node is set to be smaller than the curre= nt block size?

Then it is only used for signal unless a f= ork occurs that results in a reduction <=3D EB... in which case the EB b= ecomes a hard upper bound, just like any other.=C2=A0=C2=A0 When an EB is s= et by a user a block-height needs to be recorded along with it, so it can b= e handled correctly.=C2=A0=C2=A0 EB set to < active seems to me to be a = special case.=C2=A0=C2=A0 Likewise the percentile shoudl be the upper 5% in= the case of EB < active.=C2=A0=C2=A0=C2=A0

This essentially par= titions signalling into "< active" and "> active"= .=C2=A0=C2=A0


--001a11401e26f00b29054a4de748--