From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from sog-mx-1.v43.ch3.sourceforge.com ([172.29.43.191] helo=mx.sourceforge.net) by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1YxQS4-0007SC-Ee for bitcoin-development@lists.sourceforge.net; Wed, 27 May 2015 01:48:12 +0000 Received-SPF: pass (sog-mx-1.v43.ch3.sourceforge.com: domain of gmail.com designates 209.85.214.173 as permitted sender) client-ip=209.85.214.173; envelope-from=pieter.wuille@gmail.com; helo=mail-ob0-f173.google.com; Received: from mail-ob0-f173.google.com ([209.85.214.173]) by sog-mx-1.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1YxQS3-0005q8-F9 for bitcoin-development@lists.sourceforge.net; Wed, 27 May 2015 01:48:12 +0000 Received: by obew15 with SMTP id w15so27148786obe.1 for ; Tue, 26 May 2015 18:48:06 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.182.87.36 with SMTP id u4mr16341596obz.50.1432691286028; Tue, 26 May 2015 18:48:06 -0700 (PDT) Received: by 10.60.94.36 with HTTP; Tue, 26 May 2015 18:48:05 -0700 (PDT) Received: by 10.60.94.36 with HTTP; Tue, 26 May 2015 18:48:05 -0700 (PDT) Date: Tue, 26 May 2015 18:48:05 -0700 Message-ID: From: Pieter Wuille To: Bitcoin Dev Content-Type: multipart/alternative; boundary=089e013d0ddc2d39770517066fd3 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 (pieter.wuille[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: 1YxQS3-0005q8-F9 Subject: [Bitcoin-development] Version bits proposal 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: Wed, 27 May 2015 01:48:12 -0000 --089e013d0ddc2d39770517066fd3 Content-Type: text/plain; charset=UTF-8 Hello everyone, here is a proposal for how to coordinate future soft-forking consensus changes: https://gist.github.com/sipa/bf69659f43e763540550 It supports multiple parallel changes, as well as changes that get permanently rejected without obstructing the rollout of others. Feel free to comment. As the gist does not support notifying participants of new comments, I would suggest using the mailing list instead. This is joint work with Peter Todd and Greg Maxwell. -- Pieter --089e013d0ddc2d39770517066fd3 Content-Type: text/html; charset=UTF-8

Hello everyone,

here is a proposal for how to coordinate future soft-forking consensus changes: https://gist.github.com/sipa/bf69659f43e763540550

It supports multiple parallel changes, as well as changes that get permanently rejected without obstructing the rollout of others.

Feel free to comment. As the gist does not support notifying participants of new comments, I would suggest using the mailing list instead.

This is joint work with Peter Todd and Greg Maxwell.

--
Pieter

--089e013d0ddc2d39770517066fd3-- From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from sog-mx-2.v43.ch3.sourceforge.com ([172.29.43.192] helo=mx.sourceforge.net) by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1YxRe6-0001Zn-AS for bitcoin-development@lists.sourceforge.net; Wed, 27 May 2015 03:04:42 +0000 Received-SPF: pass (sog-mx-2.v43.ch3.sourceforge.com: domain of bitcoinarmory.com designates 157.56.111.115 as permitted sender) client-ip=157.56.111.115; envelope-from=doug@bitcoinarmory.com; helo=na01-bn1-obe.outbound.protection.outlook.com; Received: from mail-bn1bon0115.outbound.protection.outlook.com ([157.56.111.115] helo=na01-bn1-obe.outbound.protection.outlook.com) by sog-mx-2.v43.ch3.sourceforge.com with esmtps (TLSv1:AES256-SHA:256) (Exim 4.76) id 1YxRe4-00039o-GI for bitcoin-development@lists.sourceforge.net; Wed, 27 May 2015 03:04:42 +0000 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=doug@bitcoinarmory.com; Received: from Doug-Armory.local (70.42.157.30) by BLUPR0601MB1459.namprd06.prod.outlook.com (25.163.85.29) with Microsoft SMTP Server (TLS) id 15.1.172.22; Wed, 27 May 2015 02:31:29 +0000 Message-ID: <55652C79.4080305@bitcoinarmory.com> Date: Tue, 26 May 2015 22:31:21 -0400 From: Douglas Roark User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: Bitcoin Dev References: In-Reply-To: Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: quoted-printable X-Originating-IP: [70.42.157.30] X-ClientProxiedBy: BLUPR02CA055.namprd02.prod.outlook.com (25.160.23.173) To BLUPR0601MB1459.namprd06.prod.outlook.com (25.163.85.29) X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0601MB1459; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(520003)(5005006)(3002001); SRVR:BLUPR0601MB1459; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0601MB1459; X-Forefront-PRVS: 05891FB07F X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6009001)(189002)(199003)(52604005)(479174004)(51704005)(52044002)(54524002)(24454002)(43784003)(15975445007)(65816999)(54356999)(87266999)(2950100001)(106356001)(76176999)(50986999)(64706001)(77156002)(68736005)(40100003)(99136001)(83506001)(122386002)(87976001)(105586002)(450100001)(65956001)(66066001)(86362001)(575784001)(65806001)(5001830100001)(33656002)(561944003)(101416001)(42186005)(19580395003)(80316001)(59896002)(19580405001)(47776003)(5001860100001)(110136002)(107886002)(5001960100002)(5001920100001)(189998001)(46102003)(36756003)(23746002)(4001350100001)(4001540100001)(81156007)(62966003)(97736004)(64126003)(50466002)(92566002)(7099028)(19627235001); DIR:OUT; SFP:1102; SCL:1; SRVR:BLUPR0601MB1459; H:Doug-Armory.local; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: bitcoinarmory.com does not designate permitted sender hosts) X-OriginatorOrg: bitcoinarmory.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 May 2015 02:31:29.0371 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0601MB1459 X-Spam-Score: -1.5 (-) 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 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [157.56.111.115 listed in list.dnswl.org] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.0 SPF_PASS SPF: sender matches SPF record X-Headers-End: 1YxRe4-00039o-GI Subject: Re: [Bitcoin-development] Version bits proposal 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: Wed, 27 May 2015 03:04:42 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On 2015/5/26 21:48, Pieter Wuille wrote: > here is a proposal for how to coordinate future soft-forking > consensus changes: > https://gist.github.com/sipa/bf69659f43e763540550 >=20 > It supports multiple parallel changes, as well as changes that get=20 > permanently rejected without obstructing the rollout of others. >=20 > Feel free to comment. As the gist does not support notifying=20 > participants of new comments, I would suggest using the mailing > list instead. Hi Pieter. Thanks for posting the proposal. I think the concept itself is pretty solid. I know some people have been proposing alternate methods too. I hope they'll share here, assuming they haven't already. As is, my comments concern typos and general copy editing. - - Just speaking in general, I found the BIP to be a bit hard to read. AFAIK, the basic facts are accurate. I just found myself having to re-read certain passages two or three times. A little polish wouldn't hurt. For example, using the "it" pronoun can be confusing, such as multiple uses in the abstract. Specifying what "it" is (e.g., "The proposed change relies on...") would really help. In addition, the way the "W" value is handled seems like it could be improved a bit. I know the wording is accurate. Seeing 1000 change to 1001 is still a little weird. - - In "Multi-stage soft forks," I presume the second sentence should end as follows: "[...] with additional validation rules that get enabled one by _one_." Depending on semantics, I'd consider changing "one by one" to "incremental steps," but that's your call. - - I found the "High bits" section to be confusing at first. It looks like you chose to show everything as little endian data, matching what's actually in the block. My personal preference would be to represent the data, for readability purposes, as big endian. I doubt I'm the only one who finds big endian to be much easier to process mentally. - - Some sort of legend showing A, I, W, etc. would really help, as opposed to just running into them as one goes along. Otherwise, the alphabet soup can be a bit confusing. Thanks again. - --=20 - --- Douglas Roark Senior Developer Armory Technologies, Inc. doug@bitcoinarmory.com PGP key ID: 92ADC0D7 -----BEGIN PGP SIGNATURE----- Version: GnuPG/MacGPG2 v2.0.22 (Darwin) Comment: GPGTools - https://gpgtools.org iQIcBAEBCgAGBQJVZSx5AAoJEGybVGGSrcDXrYEQAOIrsggoZv0LdJHZjPGpEkeb 7ULhO4krZtQmKXjWDP0KnHAsFiyo5EOh1fYFRZz11OCqO4QmteTLPbodZFz47tKp tIYv5uc0qYhjfo5uLkzxuUky08VE4dUoELfqdbNciC45xHras7Wh/+KXc1a20Fib TaisWx9aL6VfPf7urM8b6mQ9XMba4YB3e2syAY8AA+qAEEP4DK2V6tuOQJD3kxP2 tbHtJnDvkDoXEY6tnL7fePo9X/IrlXLi8vNWGqPIf/hoiHmdvU+ORwHta7z9YeIO zi4LRs8n8sYmifY4nt6Wkkc1aoPsmpoXmI3tKgFM2h5bfdg0n3fN3K0nTMWtnR6z HUq8JhrQkZUP8uunN/23bt94FZolvnHTdL9YuWoyrlJ0gQri5YxV1BAN4hM9oCZy 1SqlSmFRplIFWu45q8/I5duDSphmA4NP2qc59QRjftcGYpNxmzaeSViiCDWzAjI9 qTLZgLTa/nf3TFN8oU8RwquGpwD82/fFo9V+uKdNGj79kdV8WOv4sa9q63OTVimJ w+r4l1gDZYyToe0heKtV2kL9Tt4HTn23bj7EvU+98uaKEpfWSP8a3BN9mPR7ork/ lNRGEGQ0tvkeDUzKy9IHuAjXo2XkKctbBRJwZJCGc5WW2sN0HdSu/GFPXrOOLf0J JXqeKpfaS0UriFXkxVHO =3D8uNL -----END PGP SIGNATURE----- From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from sog-mx-3.v43.ch3.sourceforge.com ([172.29.43.193] helo=mx.sourceforge.net) by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1YxSIU-0002wQ-Lp for bitcoin-development@lists.sourceforge.net; Wed, 27 May 2015 03:46:26 +0000 Received-SPF: pass (sog-mx-3.v43.ch3.sourceforge.com: domain of dashjr.org designates 85.234.147.28 as permitted sender) client-ip=85.234.147.28; envelope-from=luke@dashjr.org; helo=zinan.dashjr.org; Received: from 85-234-147-28.static.as29550.net ([85.234.147.28] helo=zinan.dashjr.org) by sog-mx-3.v43.ch3.sourceforge.com with esmtp (Exim 4.76) id 1YxSIT-0007PG-Jk for bitcoin-development@lists.sourceforge.net; Wed, 27 May 2015 03:46:26 +0000 Received: from ishibashi.localnet (unknown [IPv6:2001:470:5:265:61b6:56a6:b03d:28d6]) (Authenticated sender: luke-jr) by zinan.dashjr.org (Postfix) with ESMTPSA id 1938E1080005; Wed, 27 May 2015 03:46:18 +0000 (UTC) From: Luke Dashjr To: bitcoin-development@lists.sourceforge.net Date: Wed, 27 May 2015 03:46:15 +0000 User-Agent: KMail/1.13.7 (Linux/3.14.41-gentoo; KDE/4.14.3; x86_64; ; ) References: In-Reply-To: X-PGP-Key-Fingerprint: E463 A93F 5F31 17EE DE6C 7316 BD02 9424 21F4 889F X-PGP-Key-ID: BD02942421F4889F X-PGP-Keyserver: hkp://pgp.mit.edu MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Message-Id: <201505270346.17014.luke@dashjr.org> X-Spam-Score: -1.5 (-) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. 0.0 TVD_RCVD_IP Message was received from an IP address -1.5 SPF_CHECK_PASS SPF reports sender host as permitted sender for sender-domain -0.0 SPF_PASS SPF: sender matches SPF record X-Headers-End: 1YxSIT-0007PG-Jk Subject: Re: [Bitcoin-development] Version bits proposal 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: Wed, 27 May 2015 03:46:26 -0000 On Wednesday, May 27, 2015 1:48:05 AM Pieter Wuille wrote: > Feel free to comment. As the gist does not support notifying participants > of new comments, I would suggest using the mailing list instead. I suggest adding a section describing how this interacts with and changes GBT. Currently, the client tells the server what the highest block version it supports is, and the server indicates a block version to use in its template, as well as optional instructions for the client to forcefully use this version despite its own maximum version number. Making the version a bitfield contradicts the increment-only assumption of this design, and since GBT clients are not aware of overall network consensus state, reused bits can easily become confused. I suggest, therefore, that GBT clients should indicate (instead of a maximum supported version number) a list of softforks by identifier keyword, and the GBT server respond with a template indicating: - An object of softfork keywords to bit values, that the server will accept. - The version number, as presently conveyed, indicating the preferred softfork flags. Does this sound reasonable, and/or am I missing anything else? Luke From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from sog-mx-1.v43.ch3.sourceforge.com ([172.29.43.191] helo=mx.sourceforge.net) by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1YxSN2-0008Sx-EU for bitcoin-development@lists.sourceforge.net; Wed, 27 May 2015 03:51:08 +0000 Received: from mail-wi0-f176.google.com ([209.85.212.176]) by sog-mx-1.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1YxSN1-0001wn-0g for bitcoin-development@lists.sourceforge.net; Wed, 27 May 2015 03:51:08 +0000 Received: by wifw1 with SMTP id w1so6148992wif.0 for ; Tue, 26 May 2015 20:51:00 -0700 (PDT) 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:date :message-id:subject:from:to:cc:content-type; bh=MeRZas/8/l2++U5TG1YKeza379OpekX92rELk6Ur//w=; b=kaMI/9aDi4HQ3eoSG6Gb+FkrX2krchPuAm1FQ0EohKm+kdh1cc3ofdu6yWU8pF3AkS cTlJRr8kuozX4Jia4U8qeSJcQfPCC2pUPWj4U1/jxQUZm6ghBx209ZceH+/XXmph/q60 6D5Qf4G2Nf39Ei/yVJBvliiaW90WhE07lgS4S+mXIKF/QnL8l7AU5rq9AfgBzoCPBxsc 8LtldyNXzHryKSyIhxY5GBfCEPkcEhCUgEF5PgkOXxXnzjkig6UC1GcubR6CFP9KuzwS DyD/apEDM5zGAhqm+LzmaeOdQRMYWEADAJl4zj9tfWIMJGyC1yKWVBxK0XH0XQcyD/m4 miew== X-Gm-Message-State: ALoCoQlB4DYG5UcErgUfMeTIlL1o5xystYLse68jUbal8DrajzpJaPzNbg0ODALwh5FwcABUXB9g MIME-Version: 1.0 X-Received: by 10.180.188.4 with SMTP id fw4mr46135972wic.7.1432698660766; Tue, 26 May 2015 20:51:00 -0700 (PDT) Received: by 10.194.127.97 with HTTP; Tue, 26 May 2015 20:51:00 -0700 (PDT) Received: by 10.194.127.97 with HTTP; Tue, 26 May 2015 20:51:00 -0700 (PDT) In-Reply-To: <201505270346.17014.luke@dashjr.org> References: <201505270346.17014.luke@dashjr.org> Date: Wed, 27 May 2015 05:51:00 +0200 Message-ID: From: =?UTF-8?B?Sm9yZ2UgVGltw7Nu?= To: Luke-Jr Content-Type: multipart/alternative; boundary=001a11c38216bedbcf0517082697 X-Spam-Score: 1.0 (+) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. 1.0 HTML_MESSAGE BODY: HTML included in message X-Headers-End: 1YxSN1-0001wn-0g Cc: Bitcoin Dev Subject: Re: [Bitcoin-development] Version bits proposal 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: Wed, 27 May 2015 03:51:08 -0000 --001a11c38216bedbcf0517082697 Content-Type: text/plain; charset=UTF-8 It would also help to see the actual code changes required, which I'm sure will be much shorter than the explanation itself. On May 27, 2015 5:47 AM, "Luke Dashjr" wrote: > On Wednesday, May 27, 2015 1:48:05 AM Pieter Wuille wrote: > > Feel free to comment. As the gist does not support notifying participants > > of new comments, I would suggest using the mailing list instead. > > I suggest adding a section describing how this interacts with and changes > GBT. > > Currently, the client tells the server what the highest block version it > supports is, and the server indicates a block version to use in its > template, > as well as optional instructions for the client to forcefully use this > version > despite its own maximum version number. Making the version a bitfield > contradicts the increment-only assumption of this design, and since GBT > clients are not aware of overall network consensus state, reused bits can > easily become confused. I suggest, therefore, that GBT clients should > indicate > (instead of a maximum supported version number) a list of softforks by > identifier keyword, and the GBT server respond with a template indicating: > - An object of softfork keywords to bit values, that the server will > accept. > - The version number, as presently conveyed, indicating the preferred > softfork > flags. > > Does this sound reasonable, and/or am I missing anything else? > > Luke > > > ------------------------------------------------------------------------------ > _______________________________________________ > Bitcoin-development mailing list > Bitcoin-development@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/bitcoin-development > --001a11c38216bedbcf0517082697 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

It would also help to see the actual code changes required, = which I'm sure will be much shorter than the explanation itself.

On May 27, 2015 5:47 AM, "Luke Dashjr"= <luke@dashjr.org> wrote:
On Wednesday, May 27, 20= 15 1:48:05 AM Pieter Wuille wrote:
> Feel free to comment. As the gist does not support notifying participa= nts
> of new comments, I would suggest using the mailing list instead.

I suggest adding a section describing how this interacts with and changes G= BT.

Currently, the client tells the server what the highest block version it supports is, and the server indicates a block version to use in its templat= e,
as well as optional instructions for the client to forcefully use this vers= ion
despite its own maximum version number. Making the version a bitfield
contradicts the increment-only assumption of this design, and since GBT
clients are not aware of overall network consensus state, reused bits can easily become confused. I suggest, therefore, that GBT clients should indic= ate
(instead of a maximum supported version number) a list of softforks by
identifier keyword, and the GBT server respond with a template indicating:<= br> - An object of softfork keywords to bit values, that the server will accept= .
- The version number, as presently conveyed, indicating the preferred softf= ork
flags.

Does this sound reasonable, and/or am I missing anything else?

Luke

---------------------------------------------------------------------------= ---
_______________________________________________
Bitcoin-development mailing list
Bitcoin-develo= pment@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-de= velopment
--001a11c38216bedbcf0517082697-- From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from sog-mx-2.v43.ch3.sourceforge.com ([172.29.43.192] helo=mx.sourceforge.net) by sfs-ml-3.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1YxXjz-00066g-2S for bitcoin-development@lists.sourceforge.net; Wed, 27 May 2015 09:35:11 +0000 Received-SPF: pass (sog-mx-2.v43.ch3.sourceforge.com: domain of gmail.com designates 209.85.220.181 as permitted sender) client-ip=209.85.220.181; envelope-from=tier.nolan@gmail.com; helo=mail-qk0-f181.google.com; Received: from mail-qk0-f181.google.com ([209.85.220.181]) by sog-mx-2.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1YxXjw-0003VZ-UL for bitcoin-development@lists.sourceforge.net; Wed, 27 May 2015 09:35:11 +0000 Received: by qkx62 with SMTP id 62so2041257qkx.3 for ; Wed, 27 May 2015 02:35:03 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.55.33.6 with SMTP id h6mr62609843qkh.99.1432719303566; Wed, 27 May 2015 02:35:03 -0700 (PDT) Received: by 10.140.85.241 with HTTP; Wed, 27 May 2015 02:35:03 -0700 (PDT) In-Reply-To: References: <201505270346.17014.luke@dashjr.org> Date: Wed, 27 May 2015 10:35:03 +0100 Message-ID: From: Tier Nolan Cc: Bitcoin Dev Content-Type: multipart/alternative; boundary=001a1144bc4226ea1c05170cf5e5 X-Spam-Score: 3.3 (+++) 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 (tier.nolan[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record 1.2 MISSING_HEADERS Missing To: header 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 2.7 MALFORMED_FREEMAIL Bad headers on message from free email service X-Headers-End: 1YxXjw-0003VZ-UL Subject: Re: [Bitcoin-development] Version bits proposal 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: Wed, 27 May 2015 09:35:11 -0000 --001a1144bc4226ea1c05170cf5e5 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable I think it would be better to have the deadlines set as block counts. That eliminates the need to use the median time mechanism. The deadline could be matched to a "start-line". The definition would then be something like BIP 105 Start block: 325000 End block: 350000 Activation: 750 of 1000 Implication: 950 of 1000 Bit: 9 This would allow creation of a simple table of known BIPs. It also keeps multiple users of the bit as strictly separate. The alternative to the start time is that it is set equal to the deadline or implication time of the previous user of the bit. Was the intention to change the 95% rule. You need 750 of the last 1000 to activate and then must wait at least 1000 for implication? On Wed, May 27, 2015 at 4:51 AM, Jorge Tim=C3=B3n wrote: > It would also help to see the actual code changes required, which I'm sur= e > will be much shorter than the explanation itself. > On May 27, 2015 5:47 AM, "Luke Dashjr" wrote: > >> On Wednesday, May 27, 2015 1:48:05 AM Pieter Wuille wrote: >> > Feel free to comment. As the gist does not support notifying >> participants >> > of new comments, I would suggest using the mailing list instead. >> >> I suggest adding a section describing how this interacts with and change= s >> GBT. >> >> Currently, the client tells the server what the highest block version it >> supports is, and the server indicates a block version to use in its >> template, >> as well as optional instructions for the client to forcefully use this >> version >> despite its own maximum version number. Making the version a bitfield >> contradicts the increment-only assumption of this design, and since GBT >> clients are not aware of overall network consensus state, reused bits ca= n >> easily become confused. I suggest, therefore, that GBT clients should >> indicate >> (instead of a maximum supported version number) a list of softforks by >> identifier keyword, and the GBT server respond with a template indicatin= g: >> - An object of softfork keywords to bit values, that the server will >> accept. >> - The version number, as presently conveyed, indicating the preferred >> softfork >> flags. >> >> Does this sound reasonable, and/or am I missing anything else? >> >> Luke >> >> >> ------------------------------------------------------------------------= ------ >> _______________________________________________ >> Bitcoin-development mailing list >> Bitcoin-development@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/bitcoin-development >> > > > -------------------------------------------------------------------------= ----- > > _______________________________________________ > Bitcoin-development mailing list > Bitcoin-development@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/bitcoin-development > > --001a1144bc4226ea1c05170cf5e5 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
I think it would be bet= ter to have the deadlines set as block counts.=C2=A0 That eliminates the ne= ed to use the median time mechanism.

The deadline c= ould be matched to a "start-line".=C2=A0 The definition would the= n be something like

BIP 105
Start block: 325000
End block: 350000
Activation: 750 of 1000
Implication: 950 = of 1000
Bit: 9

This would allow creation of a simple table = of known BIPs.=C2=A0 It also keeps multiple users of the bit as strictly se= parate.

The alternative to the start time is that it is set eq= ual to the deadline or implication time of the previous user of the bit.

Was the intention to change the 95% rule.=C2= =A0 You need 750 of the last 1000 to activate and then must wait at least 1= 000 for implication?


On Wed, May 27, 2015 at 4:5= 1 AM, Jorge Tim=C3=B3n <jtimon@jtimon.cc> wrote:

It would also help to see the actual c= ode changes required, which I'm sure will be much shorter than the expl= anation itself.

On May 27, 2015 5:47 AM, "Luke Dashjr"= <luke@dashjr.org> wrote:
On Wed= nesday, May 27, 2015 1:48:05 AM Pieter Wuille wrote:
> Feel free to comment. As the gist does not support notifying participa= nts
> of new comments, I would suggest using the mailing list instead.

I suggest adding a section describing how this interacts with and changes G= BT.

Currently, the client tells the server what the highest block version it supports is, and the server indicates a block version to use in its templat= e,
as well as optional instructions for the client to forcefully use this vers= ion
despite its own maximum version number. Making the version a bitfield
contradicts the increment-only assumption of this design, and since GBT
clients are not aware of overall network consensus state, reused bits can easily become confused. I suggest, therefore, that GBT clients should indic= ate
(instead of a maximum supported version number) a list of softforks by
identifier keyword, and the GBT server respond with a template indicating:<= br> - An object of softfork keywords to bit values, that the server will accept= .
- The version number, as presently conveyed, indicating the preferred softf= ork
flags.

Does this sound reasonable, and/or am I missing anything else?

Luke

---------------------------------------------------------------------------= ---
_______________________________________________
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-de= velopment

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

_______________________________________________
Bitcoin-development mailing list
Bitcoin-develo= pment@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-de= velopment


--001a1144bc4226ea1c05170cf5e5-- From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from sog-mx-3.v43.ch3.sourceforge.com ([172.29.43.193] helo=mx.sourceforge.net) by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1YxYN5-0000DG-2A for bitcoin-development@lists.sourceforge.net; Wed, 27 May 2015 10:15:35 +0000 Received-SPF: pass (sog-mx-3.v43.ch3.sourceforge.com: domain of petertodd.org designates 62.13.149.81 as permitted sender) client-ip=62.13.149.81; envelope-from=pete@petertodd.org; helo=outmail149081.authsmtp.net; Received: from outmail149081.authsmtp.net ([62.13.149.81]) by sog-mx-3.v43.ch3.sourceforge.com with esmtp (Exim 4.76) id 1YxYN3-0002R8-4W for bitcoin-development@lists.sourceforge.net; Wed, 27 May 2015 10:15:35 +0000 Received: from mail-c235.authsmtp.com (mail-c235.authsmtp.com [62.13.128.235]) by punt18.authsmtp.com (8.14.2/8.14.2/) with ESMTP id t4RAFOuc005616; Wed, 27 May 2015 11:15:24 +0100 (BST) Received: from savin.petertodd.org (75-119-251-161.dsl.teksavvy.com [75.119.251.161]) (authenticated bits=128) by mail.authsmtp.com (8.14.2/8.14.2/) with ESMTP id t4RAFGJX047330 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Wed, 27 May 2015 11:15:19 +0100 (BST) Date: Wed, 27 May 2015 06:15:16 -0400 From: Peter Todd To: Tier Nolan Message-ID: <20150527101516.GB25814@savin.petertodd.org> References: <201505270346.17014.luke@dashjr.org> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="JYK4vJDZwFMowpUq" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Server-Quench: 474e907f-0459-11e5-b396-002590a15da7 X-AuthReport-Spam: If SPAM / abuse - report it at: http://www.authsmtp.com/abuse X-AuthRoute: OCd2Yg0TA1ZNQRgX IjsJECJaVQIpKltL GxAVKBZePFsRUQkR aAdMdAUUFVQNAgsB AmMbWlVeUVh7WGo7 bA9PbARUfEhLXhtr VklWR1pVCwQmRRhj d2hpKHFycwJFe34+ bENhWT5fW0AvfEZ6 FFNUEWgPeGZhPWUC AkNRcR5UcAFPdx8U a1UrBXRDAzANdhES HhM4ODE3eDlSNilR RRkIIFQOdA41EyQn RhcEVT8uAVZNXz80 Nxs9I1p0 X-Authentic-SMTP: 61633532353630.1023:706 X-AuthFastPath: 0 (Was 255) X-AuthSMTP-Origin: 75.119.251.161/587 X-AuthVirus-Status: No virus detected - but ensure you scan with your own anti-virus system. X-Spam-Score: -1.5 (-) 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 SPF_PASS SPF: sender matches SPF record X-Headers-End: 1YxYN3-0002R8-4W Cc: Bitcoin Dev Subject: Re: [Bitcoin-development] Version bits proposal 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: Wed, 27 May 2015 10:15:35 -0000 --JYK4vJDZwFMowpUq Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, May 27, 2015 at 10:35:03AM +0100, Tier Nolan wrote: > I think it would be better to have the deadlines set as block counts. Th= at > eliminates the need to use the median time mechanism. The median time mechanism is basically a way for hashing power to show what time they think it is. Equally, the nVersion soft-fork mechanism is a way for hashing power to show what features they want to support. Block counts are inconvenient for planning, as there's no guarantee they'll actually happen in any particular time frame, forward and back. There's no particular incentive problems here - the median time clearly shows support by a majority of hashing power - so I don't see any reason to make planning more difficult. > The deadline could be matched to a "start-line". The definition would th= en > be something like >=20 > BIP 105 > Start block: 325000 > End block: 350000 > Activation: 750 of 1000 > Implication: 950 of 1000 > Bit: 9 >=20 > This would allow creation of a simple table of known BIPs. It also keeps > multiple users of the bit as strictly separate. If you assume no large reorganizations, your table of known BIPs can just as easily be a list of block heights even if the median time mechanism is used. If you do assume there may be large reorganizations you can't have a "simple table" --=20 'peter'[:-1]@petertodd.org 000000000000000001643f7706f3dcbc3a386e4c1bfba852ff628d8024f875b6 --JYK4vJDZwFMowpUq Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- iQGrBAEBCACVBQJVZZkwXhSAAAAAABUAQGJsb2NraGFzaEBiaXRjb2luLm9yZzAw MDAwMDAwMDAwMDAwMDAwMTY0M2Y3NzA2ZjNkY2JjM2EzODZlNGMxYmZiYTg1MmZm NjI4ZDgwMjRmODc1YjYvFIAAAAAAFQARcGthLWFkZHJlc3NAZ251cGcub3JncGV0 ZUBwZXRlcnRvZC5vcmcACgkQJIFAPaXwkfsL0Af+NMKw3M9MOuUEQPgZUDkgNGsz rSZUx3zif08M4GGRe9YKmNYiEZontblO1G9aM5GJnkxt1sz23ikAgTbNVgFa8j39 Qmc3PN+sLwLhaor4pGrSLU/nwEQb4K96kEuVOhjF9cBYJB02067DmFVCr3bTB+Kk v46j37tVe3uTer7KEBr0m+RGqVjMxAmRa6OKRRkBL2VDsrwo4D49DFrssdtduWpK dxGAlcZP52Ls0CTyPpbnCnrzojgEyfNfU68ld3xwoCu2wmCzw1YbnYQuTTfXm3ZR AozbigXNIdR3au36y7QdVxWPa9IWSbEYmimCtjlkaGHs3alDSFnRbZIfOb/cpA== =T3wN -----END PGP SIGNATURE----- --JYK4vJDZwFMowpUq-- From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from sog-mx-1.v43.ch3.sourceforge.com ([172.29.43.191] helo=mx.sourceforge.net) by sfs-ml-3.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1YxYNO-00083w-1M for bitcoin-development@lists.sourceforge.net; Wed, 27 May 2015 10:15:54 +0000 Received: from mail-wi0-f181.google.com ([209.85.212.181]) by sog-mx-1.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1YxYNN-0006dP-0T for bitcoin-development@lists.sourceforge.net; Wed, 27 May 2015 10:15:54 +0000 Received: by wifw1 with SMTP id w1so16038234wif.0 for ; Wed, 27 May 2015 03:15:47 -0700 (PDT) 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:date :message-id:subject:from:to:cc:content-type; bh=wEz1WU2YeudQAdOUV5SYzHKiKYhhug2ctFYGR9rp3O0=; b=bdWj0yAin7zH1yw1pdOc0Noke4u4VwMR4ya/kj1qe06rmPO40a0+VtAV5x3w72CiyP U9DKuvcy5t+zX3NbNHEFTPnrFHOVnK9HLNpOboZJR0IGhtHk25tn89m4tmgtLydBV83X MBdnOczS0NcF15lLW9L0VHKVgyzyUWT4O680XV2tamdPwpp8x9hUh4Bv2skjtAtHAIIp ZODKli/QR7TmGRXGILY2dvupQSeS3qlfiMe4C4bciZiUQKyO7HrMYbwDW66VoF/HB6Gv ov9Do4gAQBcnVOHbhVaRlpJxuJsyoPJeRGkwvzCqB61ahCO+1i5eeGLHc5WOmSJqjxss y9hA== X-Gm-Message-State: ALoCoQlfJdUiDsWMQeGwrqLa5rtDqHTJVerkgl9p7MjpIDW7oCBvVL6haV49KmBwedmW1o610RNd MIME-Version: 1.0 X-Received: by 10.180.12.228 with SMTP id b4mr48209441wic.92.1432721746908; Wed, 27 May 2015 03:15:46 -0700 (PDT) Received: by 10.194.127.97 with HTTP; Wed, 27 May 2015 03:15:46 -0700 (PDT) Received: by 10.194.127.97 with HTTP; Wed, 27 May 2015 03:15:46 -0700 (PDT) In-Reply-To: References: <201505270346.17014.luke@dashjr.org> Date: Wed, 27 May 2015 12:15:46 +0200 Message-ID: From: =?UTF-8?B?Sm9yZ2UgVGltw7Nu?= To: Tier Nolan Content-Type: multipart/alternative; boundary=001a11c2a3a8c96d3e05170d86da X-Spam-Score: 1.0 (+) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. 1.0 HTML_MESSAGE BODY: HTML included in message X-Headers-End: 1YxYNN-0006dP-0T Cc: Bitcoin Development Subject: Re: [Bitcoin-development] Version bits proposal 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: Wed, 27 May 2015 10:15:54 -0000 --001a11c2a3a8c96d3e05170d86da Content-Type: text/plain; charset=UTF-8 On May 27, 2015 11:35 AM, "Tier Nolan" wrote: > Was the intention to change the 95% rule. You need 750 of the last 1000 to activate and then must wait at least 1000 for implication? You need 75% to start applying it, 95% to start rejecting blocks that don't apply it. --001a11c2a3a8c96d3e05170d86da Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


On May 27, 2015 11:35 AM, "Tier Nolan" <tier.nolan@gmail.com> wrote:

> Was the intention to change the 95% rule.=C2=A0 You nee= d 750 of the last 1000 to activate and then must wait at least 1000 for imp= lication?

You need 75% to start applying it, 95% to start rejecting bl= ocks that don't apply it.

--001a11c2a3a8c96d3e05170d86da-- From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from sog-mx-3.v43.ch3.sourceforge.com ([172.29.43.193] helo=mx.sourceforge.net) by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1YxZTs-0002pz-Df for bitcoin-development@lists.sourceforge.net; Wed, 27 May 2015 11:26:40 +0000 Received-SPF: pass (sog-mx-3.v43.ch3.sourceforge.com: domain of gmail.com designates 209.85.220.169 as permitted sender) client-ip=209.85.220.169; envelope-from=tier.nolan@gmail.com; helo=mail-qk0-f169.google.com; Received: from mail-qk0-f169.google.com ([209.85.220.169]) by sog-mx-3.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1YxZTr-0003q5-9j for bitcoin-development@lists.sourceforge.net; Wed, 27 May 2015 11:26:40 +0000 Received: by qkhg32 with SMTP id g32so3335381qkh.0 for ; Wed, 27 May 2015 04:26:33 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.229.16.69 with SMTP id n5mr41365277qca.25.1432725993868; Wed, 27 May 2015 04:26:33 -0700 (PDT) Received: by 10.140.85.241 with HTTP; Wed, 27 May 2015 04:26:33 -0700 (PDT) In-Reply-To: <20150527101516.GB25814@savin.petertodd.org> References: <201505270346.17014.luke@dashjr.org> <20150527101516.GB25814@savin.petertodd.org> Date: Wed, 27 May 2015 12:26:33 +0100 Message-ID: From: Tier Nolan Cc: Bitcoin Dev Content-Type: multipart/alternative; boundary=001a1133e3f6ecd15705170e8380 X-Spam-Score: 3.3 (+++) 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 (tier.nolan[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record 1.2 MISSING_HEADERS Missing To: header 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 2.7 MALFORMED_FREEMAIL Bad headers on message from free email service X-Headers-End: 1YxZTr-0003q5-9j Subject: Re: [Bitcoin-development] Version bits proposal 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: Wed, 27 May 2015 11:26:40 -0000 --001a1133e3f6ecd15705170e8380 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable On Wed, May 27, 2015 at 11:15 AM, Peter Todd wrote: > The median time mechanism is basically a way for hashing power to show > what time they think it is. Equally, the nVersion soft-fork mechanism is > a way for hashing power to show what features they want to support. > > Fair enough. It means slightly more processing, but the median time could be cached in the header index, so no big deal. Block counts are inconvenient for planning, as there's no guarantee > they'll actually happen in any particular time frame, forward and back. > I don't think the deadline needs to be set that accurately. A roughly 6 month deadline should be fine, but as you say a majority of miners is needed to abuse the median time and it is already a miner poll. Perhaps the number of blocks used in the median could be increased to reduce "noise". The median time could be median of the last 144 blocks plus 12 hours. > If you assume no large reorganizations, your table of known BIPs can > just as easily be a list of block heights even if the median time > mechanism is used. > I think it makes it easier to write the code. It reduced the state that needs to be stored per BIP. You don't need to check if the previous bips were all accepted. Each bit is assigned to a particular BIP for a particular range of times (or blocks). If block numbers were used for the deadline, you just need to check the block index for the deadline block. enum { BIP_INACTIVE =3D 0, BIP_ACTIVE, BIP_LOCKED BIP_INVALID_BLOCK, } int GetBIPState(block, bip) { if (block.height =3D=3D bip.deadline) // Bit must be set to match locked/unlocked at deadline { int bipState =3D check_supermajority(...); if (bipState =3D=3D BIP_LOCKED && (block.nVersion & bip.bit) return BIP_LOCKED; if (bipState !=3D BIP_LOCKED && (block.nVersion & (~bip.bit))) return BIP_INACTIVE; return BIP_INVALID_BLOCK; } if (block.height > deadline) // Look at the deadline block to determine if the BIP is locked return (block_index[deadline].nVersion & bip_bit) !=3D 0 ? BIP_LOCK= ED : BIP_INACTIVE; if (block.height < startline + I) // BIP cannot activate/lock until startline + implicit window size return INACTIVE; return check_supermajority(....) // Check supermajority of bit } The block at height deadline would indicate if the BIP was locked in. Block time could still be used as long as the block height was set after that. The deadline_time could be in six months. The startline height could be the current block height and the deadline_height could be startline + 35000. The gives roughly start time =3D now deadline time =3D now + six months deadline height =3D now + eight months The deadline height is the block height when the bit is returned to the pool but the deadline time is when the BIP has to be accepted. It also helps with the warning system. For each block height, there is a set of known BIP bits that are allowed. Once the final deadline is passed, the expected mask is zeros. On Wed, May 27, 2015 at 11:15 AM, Jorge Tim=C3=B3n wrote= : > On May 27, 2015 11:35 AM, "Tier Nolan" wrote: > > > Was the intention to change the 95% rule. You need 750 of the last 100= 0 > to activate and then must wait at least 1000 for implication? > > You need 75% to start applying it, 95% to start rejecting blocks that > don't apply it. > I think the phrasing is ambiguous. I was just asking for clarification. "Whenever I out of any W *subsequent* blocks (regardless of the block itself) have bit B set," That suggests that the I of W blocks for the 95% rule must happen after activation. This makes the rule checking harder. Easier to use the current system, where blocks that were part of the 750 rule also count towards the 95% rule. --001a1133e3f6ecd15705170e8380 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


On Wed, May 27, 2015 at 11:15 AM, Peter Todd <pete@petertodd.org&= gt; wrote:
The median time mechanism is basically a way for hashing power to sh= ow
what time they think it is. Equally, the nVersion soft-fork mechanism is a way for hashing power to show what features they want to support.


Fair enough.=C2=A0 It means slightly m= ore processing, but the median time could be cached in the header index, so= no big deal.

If you assume no large reorganizations, your table of known BIPs can=
just as easily be a list of block heights even if the median time
mechanism is used.

I think it makes it = easier to write the code.=C2=A0 It reduced the state that needs to be store= d per BIP.=C2=A0 You don't need to check if the previous bips were all = accepted.

Each bit is assigned to a particular BIP for a = particular range of times (or blocks).

If bloc= k numbers were used for the deadline, you just need to check the block inde= x for the deadline block.

enum {
=C2=A0=C2= =A0=C2=A0 BIP_INACTIVE =3D 0,
=C2=A0=C2=A0=C2=A0 BIP_ACTIVE,<= br>
=C2=A0=C2=A0=C2=A0 BIP_LOCKED
=C2=A0=C2=A0=C2=A0 BIP_INVAL= ID_BLOCK,
}

int GetBIPState(block, bip)
{
=C2= =A0=C2=A0=C2=A0 if (block.height =3D=3D bip.deadline)=C2=A0 // Bit must be = set to match locked/unlocked at deadline
=C2=A0=C2=A0=C2=A0 {=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 int bipState =3D = check_supermajority(...);
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 if (bipState =3D=3D BIP_LOCKED && (block.nVersion & b= ip.bit)
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 return BIP_LOCKED;

=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 if (bipState !=3D BIP_LOCKED && (block.nVersi= on & (~bip.bit)))
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0 return BIP_INACTIVE;

=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return BIP_INVALID_BLOCK;
=C2=A0=C2= =A0=C2=A0 }

=C2=A0=C2=A0=C2=A0 if (block.height > dead= line) // Look at the deadline block to determine if the BIP is locked
= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return (block_index[deadline].nV= ersion & bip_bit) !=3D 0 ? BIP_LOCKED : BIP_INACTIVE;

=C2=A0=C2=A0=C2=A0 if (block.height < startline + I) // BIP cannot acti= vate/lock until startline + implicit window size
=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 return INACTIVE;

=C2=A0=C2= =A0=C2=A0 return check_supermajority(....) // Check supermajority of bit}

The block at height deadline would indicate if the BIP= was locked in.

Block time could still be used as long as= the block height was set after that.=C2=A0 The deadline_time could be in s= ix months.=C2=A0 The startline height could be the current block height and= the deadline_height could be startline + 35000.=C2=A0

T= he gives roughly

start time =3D now
deadlin= e time =3D now + six months
deadline height =3D now + eight m= onths

The deadline height is the block height when the bi= t is returned to the pool but the deadline time is when the BIP has to be a= ccepted.

It also helps with the warning system= .=C2=A0 For each block height, there is a set of known BIP bits that are al= lowed.=C2=A0 Once the final deadline is passed, the expected mask is zeros.=

On Wed, May 2= 7, 2015 at 11:15 AM, Jorge Tim=C3=B3n <jtimon@jtimon.cc> wrot= e:
On May 27, 2015 11:35 AM, "Tier Nolan" <tier.nolan@gmail.com> wrote:

> Was the intention to change the 95% rule.=C2=A0 You nee= d=20 750 of the last 1000 to activate and then must wait at least 1000 for=20 implication?

You need 75% to start applying it, 95% to start rejec= ting blocks that don't apply it.


I think the phrasing is ambiguous.=C2=A0 I was= just asking for clarification.

"Whenever I out of any W sub= sequent blocks (regardless of the block itself) have bit B set,"
That suggests that the I of W blocks for the 95% rule must= happen after activation.=C2=A0 This makes the rule checking harder.=C2=A0 = Easier to use the current system, where blocks that were part of the 750 ru= le also count towards the 95% rule.
--001a1133e3f6ecd15705170e8380-- From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from sog-mx-3.v43.ch3.sourceforge.com ([172.29.43.193] helo=mx.sourceforge.net) by sfs-ml-2.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1YxkNp-0001zu-CZ for bitcoin-development@lists.sourceforge.net; Wed, 27 May 2015 23:05:09 +0000 X-ACL-Warn: Received: from p3plsmtpa11-03.prod.phx3.secureserver.net ([68.178.252.104]) by sog-mx-3.v43.ch3.sourceforge.com with esmtps (TLSv1:AES128-SHA:128) (Exim 4.76) id 1YxkNn-00085O-0Z for bitcoin-development@lists.sourceforge.net; Wed, 27 May 2015 23:05:09 +0000 Received: from [192.168.0.23] ([190.17.195.187]) by p3plsmtpa11-03.prod.phx3.secureserver.net with id ZAsR1q005433uHa01AsRbV; Wed, 27 May 2015 15:52:26 -0700 Message-ID: <55664AA2.7020206@certimix.com> Date: Wed, 27 May 2015 19:52:18 -0300 From: Sergio Lerner User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 MIME-Version: 1.0 To: bitcoin-development@lists.sourceforge.net References: <201505270346.17014.luke@dashjr.org> <20150527101516.GB25814@savin.petertodd.org> In-Reply-To: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit X-Spam-Score: 0.0 (/) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [68.178.252.104 listed in list.dnswl.org] X-Headers-End: 1YxkNn-00085O-0Z Subject: Re: [Bitcoin-development] Version bits proposal 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: Wed, 27 May 2015 23:05:09 -0000 I like the idea but I think we should leave at least 16 bits of the version fixed as an extra-nonce. If we don't then miners may use them as a nonce anyway, and mess with the soft-fork voting system. My original proposal was this: https://github.com/bitcoin/bitcoin/pull/5102 Best regards From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from sog-mx-2.v43.ch3.sourceforge.com ([172.29.43.192] helo=mx.sourceforge.net) by sfs-ml-1.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1YxmG5-0001xW-2V for bitcoin-development@lists.sourceforge.net; Thu, 28 May 2015 01:05:17 +0000 Received-SPF: pass (sog-mx-2.v43.ch3.sourceforge.com: domain of gmail.com designates 209.85.220.52 as permitted sender) client-ip=209.85.220.52; envelope-from=patrick.strateman@gmail.com; helo=mail-pa0-f52.google.com; Received: from mail-pa0-f52.google.com ([209.85.220.52]) by sog-mx-2.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1YxmG4-0001jO-2g for bitcoin-development@lists.sourceforge.net; Thu, 28 May 2015 01:05:17 +0000 Received: by padbw4 with SMTP id bw4so10437910pad.0 for ; Wed, 27 May 2015 18:05:10 -0700 (PDT) X-Received: by 10.70.96.194 with SMTP id du2mr382899pdb.108.1432775110345; Wed, 27 May 2015 18:05:10 -0700 (PDT) Received: from [10.45.134.9] (c-24-5-81-164.hsd1.ca.comcast.net. [24.5.81.164]) by mx.google.com with ESMTPSA id f1sm380840pds.62.2015.05.27.18.05.09 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 27 May 2015 18:05:09 -0700 (PDT) Message-ID: <556669C4.50406@gmail.com> Date: Wed, 27 May 2015 18:05:08 -0700 From: Patrick Strateman User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.7.0 MIME-Version: 1.0 To: bitcoin-development@lists.sourceforge.net References: <201505270346.17014.luke@dashjr.org> <20150527101516.GB25814@savin.petertodd.org> <55664AA2.7020206@certimix.com> In-Reply-To: <55664AA2.7020206@certimix.com> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -1.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 (patrick.strateman[at]gmail.com) -0.0 SPF_PASS SPF: sender matches SPF record -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: 1YxmG4-0001jO-2g Subject: Re: [Bitcoin-development] Version bits proposal 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 01:05:17 -0000 There is absolutely no reason to do this. Any reasonable micro-controller can build merkle tree roots significantly faster than is necessary. 1 Th/s walks the nonce range once every 4.3ms. The largest valid merkle trees are 14 nodes high. That translates to 28 SHA256 ops per 4.3ms or 6511 SHA256 ops/second. For reference an RPi 1 model B does 2451050 SHA256 ops/second. On 05/27/2015 03:52 PM, Sergio Lerner wrote: > I like the idea but I think we should leave at least 16 bits of the > version fixed as an extra-nonce. > If we don't then miners may use them as a nonce anyway, and mess with > the soft-fork voting system. > My original proposal was this: https://github.com/bitcoin/bitcoin/pull/= 5102 > > Best regards > > > -----------------------------------------------------------------------= ------- > _______________________________________________ > Bitcoin-development mailing list > Bitcoin-development@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/bitcoin-development 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 1YxsbT-0002tY-So for bitcoin-development@lists.sourceforge.net; Thu, 28 May 2015 07:51:49 +0000 Received-SPF: pass (sog-mx-4.v43.ch3.sourceforge.com: domain of gmail.com designates 209.85.215.51 as permitted sender) client-ip=209.85.215.51; envelope-from=decker.christian@gmail.com; helo=mail-la0-f51.google.com; Received: from mail-la0-f51.google.com ([209.85.215.51]) by sog-mx-4.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1YxsbS-0007fZ-LH for bitcoin-development@lists.sourceforge.net; Thu, 28 May 2015 07:51:47 +0000 Received: by labpy14 with SMTP id py14so13417232lab.0 for ; Thu, 28 May 2015 00:51:40 -0700 (PDT) X-Received: by 10.112.137.99 with SMTP id qh3mr1444710lbb.108.1432799500308; Thu, 28 May 2015 00:51:40 -0700 (PDT) MIME-Version: 1.0 References: <201505270346.17014.luke@dashjr.org> <20150527101516.GB25814@savin.petertodd.org> <55664AA2.7020206@certimix.com> <556669C4.50406@gmail.com> In-Reply-To: <556669C4.50406@gmail.com> From: Christian Decker Date: Thu, 28 May 2015 07:51:39 +0000 Message-ID: To: Patrick Strateman , bitcoin-development@lists.sourceforge.net Content-Type: multipart/alternative; boundary=089e0118279c401a5105171fa189 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 (decker.christian[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: 1YxsbS-0007fZ-LH Subject: Re: [Bitcoin-development] Version bits proposal 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 07:51:49 -0000 --089e0118279c401a5105171fa189 Content-Type: text/plain; charset=UTF-8 Agreed, there is no need to misuse the version field as well. There is more than enough variability you could roll in the merkle tree including and excluding transactions, and the scriptSig of the coinbase transaction, which also influences the merkle root. I have a fundamental dislike of retroactively changing semantics, and the version field should be used just for that: a version. I don't even particularly like flagging support for a fork in the version field, but since I have no better solution, count me as supporting Sipa's proposal. We definitely need a more comfortable way of rolling out new features. Regards, Chris On Thu, May 28, 2015 at 3:08 AM Patrick Strateman < patrick.strateman@gmail.com> wrote: > There is absolutely no reason to do this. > > Any reasonable micro-controller can build merkle tree roots > significantly faster than is necessary. > > 1 Th/s walks the nonce range once every 4.3ms. > > The largest valid merkle trees are 14 nodes high. > > That translates to 28 SHA256 ops per 4.3ms or 6511 SHA256 ops/second. > > For reference an RPi 1 model B does 2451050 SHA256 ops/second. > > On 05/27/2015 03:52 PM, Sergio Lerner wrote: > > I like the idea but I think we should leave at least 16 bits of the > > version fixed as an extra-nonce. > > If we don't then miners may use them as a nonce anyway, and mess with > > the soft-fork voting system. > > My original proposal was this: > https://github.com/bitcoin/bitcoin/pull/5102 > > > > Best regards > > > > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > > Bitcoin-development mailing list > > Bitcoin-development@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/bitcoin-development > > > > > ------------------------------------------------------------------------------ > _______________________________________________ > Bitcoin-development mailing list > Bitcoin-development@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/bitcoin-development > --089e0118279c401a5105171fa189 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Agreed, there is no need to misuse the version field as we= ll. There is more than enough variability you could roll in the merkle tree= including and excluding transactions, and the scriptSig of the coinbase tr= ansaction, which also influences the merkle root.

I = have a fundamental dislike of retroactively changing semantics, and the ver= sion field should be used just for that: a version. I don't even partic= ularly like flagging support for a fork in the version field, but since I h= ave no better solution, count me as supporting Sipa's proposal. We defi= nitely need a more comfortable way of rolling out new features.
<= br>
Regards,
Chris

On Thu, May 28, 2015 at 3:08 AM Patrick Strateman &l= t;patrick.strateman@gmail.co= m> wrote:
There is absolutel= y no reason to do this.

Any reasonable micro-controller can build merkle tree roots
significantly faster than is necessary.

1 Th/s walks the nonce range once every 4.3ms.

The largest valid merkle trees are 14 nodes high.

That translates to 28 SHA256 ops per 4.3ms or 6511 SHA256 ops/second.

For reference an RPi 1 model B does 2451050 SHA256 ops/second.

On 05/27/2015 03:52 PM, Sergio Lerner wrote:
> I like the idea but I think we should leave at least 16 bits of the > version fixed as an extra-nonce.
> If we don't then miners may use them as a nonce anyway, and mess w= ith
> the soft-fork voting system.
> My original proposal was this: https://github.com/bitcoin/bitcoin/pull= /5102
>
> Best regards
>
>
> ----------------------------------------------------------------------= --------
> _______________________________________________
> Bitcoin-development mailing list
> Bitcoin-development@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/bitco= in-development



---------------------------------------------------------------------------= ---
_______________________________________________
Bitcoin-development mailing list
Bitcoin-development@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bitcoin-de= velopment
--089e0118279c401a5105171fa189-- From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from sog-mx-1.v43.ch3.sourceforge.com ([172.29.43.191] helo=mx.sourceforge.net) by sfs-ml-1.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1YxsuX-0000qd-WB for bitcoin-development@lists.sourceforge.net; Thu, 28 May 2015 08:11:30 +0000 X-ACL-Warn: Received: from mout.perfora.net ([74.208.4.197]) by sog-mx-1.v43.ch3.sourceforge.com with esmtps (TLSv1:AES256-SHA:256) (Exim 4.76) id 1YxsuW-00085a-Ha for bitcoin-development@lists.sourceforge.net; Thu, 28 May 2015 08:11:29 +0000 Received: from mail-qk0-f174.google.com ([209.85.220.174]) by mrelay.perfora.net (mreueus001) with ESMTPSA (Nemesis) id 0MhT1A-1Yk5Q82Ho2-00MYXW for ; Thu, 28 May 2015 10:11:22 +0200 Received: by qkx62 with SMTP id 62so20367562qkx.3 for ; Thu, 28 May 2015 01:11:21 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.229.102.73 with SMTP id f9mr1769681qco.19.1432800681966; Thu, 28 May 2015 01:11:21 -0700 (PDT) Received: by 10.96.112.164 with HTTP; Thu, 28 May 2015 01:11:21 -0700 (PDT) In-Reply-To: References: <201505270346.17014.luke@dashjr.org> <20150527101516.GB25814@savin.petertodd.org> <55664AA2.7020206@certimix.com> <556669C4.50406@gmail.com> Date: Thu, 28 May 2015 09:11:21 +0100 Message-ID: From: Adam Back To: Christian Decker Content-Type: text/plain; charset=UTF-8 X-Provags-ID: V03:K0:5rBx9MFrD9+qwUdE3o8MYagHJMgMv+/oZxY+rA3vBMVKj8yhCZd VUSwOTpi/cX+64keT5x3RH/hOSUJVXZNzoboX9HllSRFkYaT65/XPLYj7SQjL4XvNE4BH/6 Zwy4ak23fEy8PBvwxq0pBlZcg5hPyL26wtiKTMbNF0S09GLDkT/XR+y+XDhyF8ZbEolz3vy 6p6VEFs5EQ0gLX4tXbEvg== X-UI-Out-Filterresults: notjunk:1;V01:K0:R5I9iT/9kmE=:lxidSLR/i3+QZzlpIp9MKi Zc5DYHIM+CfQnoD6a8WxG5mvyhqcpB1VNqiuactEcqWTEh24NmkD/LVuua/RN+7DIP47zpyyK qnKeeRxn0tjyoYI1CEevVV2aHjf3GYf7QqcegkTcqjAFbQAe9aznzg3Qjd85vE+SmgEO3P/o7 bU1uEyNvRfagHxLMOggN0FJ4JSFWfXzNWp7ZSdVY8z/1AlcMnJ+HieT8QDdfJHUFwMoeXHWLm 1k9wRTDsk97C73Ce6SC2h/yz6LwPDj5k2Sr4++IXNC8m8+Pq9r7duYNVKidKpdYiYLMo3Z7Ah 345qJYx2iM2hrQvcfKVq/HF5Pdz0pY6sQuiudFEob/5dH9c71qPfhR+hqPBWOab0pznXVHMJb 9IvB3qpnqZOPfsgN555x7Y+ua8BIHXDpjXC5ljJKBGG3lK3Ah61cLSz4k7O9pE18lsXyPwHE1 MT2rQLlGsuPi4Da05LSNnh/PF6kKYimFUbMMVh1ufNL/i/S+5s1Lu6+fOiXPT0B/ckVSdZpDi IqKnKTf2alJfbWGM2SxsoIdsAU+ksmkudfDhdKOxpqVcBGyqIfvkEo5Fw0Nww43AQl5v3q8Dm JVJMSgBj7fUsWNovCbqP0zfv5Ac/Ic2jbH3xfVNMMmZKcZSv6rVkbZ60zpG8c9A8wL3UX+sm5 /IfSPcf5yjhFjI9Pa/kA2/Xeln5yOtP7zIawbj7WpSMWYbw== X-Spam-Score: -0.0 (/) X-Spam-Report: Spam Filtering performed by mx.sourceforge.net. See http://spamassassin.org/tag/ for more details. -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [74.208.4.197 listed in list.dnswl.org] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record X-Headers-End: 1YxsuW-00085a-Ha Cc: Bitcoin Dev Subject: Re: [Bitcoin-development] Version bits proposal 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 08:11:30 -0000 Or as far as that goes, permuting (the non-dependent) transactions in the block by permuting the internal merkle tree nodes at increasing depths. (Dependent because transactions that depend on each other have to come in-order; but one could eg put the n-1 of each n sequence of in-order transactions in the left-half and unordered in the right half.) That makes the tree manipulations maximum depth independent, and even transaction independent possibly - just need to know enough depth in the tree of hashes that are permutation safe. Adam On 28 May 2015 at 08:51, Christian Decker wrote: > Agreed, there is no need to misuse the version field as well. There is more > than enough variability you could roll in the merkle tree including and > excluding transactions, and the scriptSig of the coinbase transaction, which > also influences the merkle root. > > I have a fundamental dislike of retroactively changing semantics, and the > version field should be used just for that: a version. I don't even > particularly like flagging support for a fork in the version field, but > since I have no better solution, count me as supporting Sipa's proposal. We > definitely need a more comfortable way of rolling out new features. > > Regards, > Chris > > On Thu, May 28, 2015 at 3:08 AM Patrick Strateman > wrote: >> >> There is absolutely no reason to do this. >> >> Any reasonable micro-controller can build merkle tree roots >> significantly faster than is necessary. >> >> 1 Th/s walks the nonce range once every 4.3ms. >> >> The largest valid merkle trees are 14 nodes high. >> >> That translates to 28 SHA256 ops per 4.3ms or 6511 SHA256 ops/second. >> >> For reference an RPi 1 model B does 2451050 SHA256 ops/second. >> >> On 05/27/2015 03:52 PM, Sergio Lerner wrote: >> > I like the idea but I think we should leave at least 16 bits of the >> > version fixed as an extra-nonce. >> > If we don't then miners may use them as a nonce anyway, and mess with >> > the soft-fork voting system. >> > My original proposal was this: >> > https://github.com/bitcoin/bitcoin/pull/5102 >> > >> > Best regards >> > >> > >> > >> > ------------------------------------------------------------------------------ >> > _______________________________________________ >> > Bitcoin-development mailing list >> > Bitcoin-development@lists.sourceforge.net >> > https://lists.sourceforge.net/lists/listinfo/bitcoin-development >> >> >> >> >> ------------------------------------------------------------------------------ >> _______________________________________________ >> Bitcoin-development mailing list >> Bitcoin-development@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/bitcoin-development > > > ------------------------------------------------------------------------------ > > _______________________________________________ > Bitcoin-development mailing list > Bitcoin-development@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/bitcoin-development > From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from sog-mx-3.v43.ch3.sourceforge.com ([172.29.43.193] helo=mx.sourceforge.net) by sfs-ml-3.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from <165318903@qq.com>) id 1YzR3P-0002d3-Nf for bitcoin-development@lists.sourceforge.net; Mon, 01 Jun 2015 14:51:05 +0000 Received-SPF: pass (sog-mx-3.v43.ch3.sourceforge.com: domain of qq.com designates 54.206.16.166 as permitted sender) client-ip=54.206.16.166; envelope-from=165318903@qq.com; helo=smtpbgau1.qq.com; Received: from smtpbgau1.qq.com ([54.206.16.166]) by sog-mx-3.v43.ch3.sourceforge.com with esmtps (TLSv1:AES256-SHA:256) (Exim 4.76) id 1YzR3G-000267-5i for bitcoin-development@lists.sourceforge.net; Mon, 01 Jun 2015 14:51:03 +0000 X-QQ-mid: esmtp28t1433170228t645t19309 Received: from [10.28.176.243] (unknown [113.200.205.53]) by esmtp4.qq.com (ESMTP) with id ; Mon, 01 Jun 2015 22:50:27 +0800 (CST) X-QQ-SSF: 0000000000000060FG101F00000000Z X-QQ-FEAT: c5qDthjzSWg+6X+f4OYij70ivP/CNG95jBDuzO7ERFAAWUTHjaYR63cSRbCcm tCI4Kd69Qs9E2gu1VrFxUvWzJ9cpwBG4TwmGyUm2RO8IWN2BGrWkQvOscgWlMU8x2WWlWaW watjOlyHJCrxwPKYAiPwdbvTm4yNwI1NnPintxCCdigyx9KGETSRux4VNiF/MP0gNNiGuvL MjJRDvsMAZwjql1wihcDV8dLtsDOmOei/+abwQZmN3bf7O69eThBb X-QQ-GoodBg: 0 Content-Type: multipart/alternative; boundary=Apple-Mail-2892A5B5-5A05-4068-95D8-012A6D7DC0CA Mime-Version: 1.0 (1.0) From: Potter QQ <165318903@qq.com> X-Mailer: iPhone Mail (12B436) In-Reply-To: Date: Mon, 1 Jun 2015 22:50:28 +0800 Content-Transfer-Encoding: 7bit Message-Id: References: <201505270346.17014.luke@dashjr.org> <20150527101516.GB25814@savin.petertodd.org> To: Tier Nolan X-QQ-SENDSIZE: 520 X-QQ-Bgrelay: 1 X-Spam-Score: -0.1 (/) 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 (165318903[at]qq.com) -0.0 RCVD_IN_DNSWL_NONE RBL: Sender listed at http://www.dnswl.org/, no trust [54.206.16.166 listed in list.dnswl.org] -0.0 T_RP_MATCHES_RCVD Envelope sender domain matches handover relay domain -0.0 SPF_PASS SPF: sender matches SPF record 0.2 FREEMAIL_ENVFROM_END_DIGIT Envelope-from freemail username ends in digit (165318903[at]qq.com) 1.0 HTML_MESSAGE BODY: HTML included in message 0.0 MIME_QP_LONG_LINE RAW: Quoted-printable line longer than 76 chars 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid 0.0 T_DKIM_INVALID DKIM-Signature header exists but is not valid X-Headers-End: 1YzR3G-000267-5i Cc: Bitcoin Dev Subject: Re: [Bitcoin-development] Version bits proposal 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: Mon, 01 Jun 2015 14:51:05 -0000 --Apple-Mail-2892A5B5-5A05-4068-95D8-012A6D7DC0CA Content-Type: text/plain; charset=gb2312 Content-Transfer-Encoding: quoted-printable oh my God ... =B7=A2=D7=D4=CE=D2=B5=C4 iPhone > =D4=DA 2015=C4=EA5=D4=C227=C8=D5=A3=AC19:26=A3=ACTier Nolan =D0=B4=B5=C0=A3=BA >=20 >=20 >=20 >> On Wed, May 27, 2015 at 11:15 AM, Peter Todd wrote: >> The median time mechanism is basically a way for hashing power to show >> what time they think it is. Equally, the nVersion soft-fork mechanism is >> a way for hashing power to show what features they want to support. >=20 > Fair enough. It means slightly more processing, but the median time could= be cached in the header index, so no big deal. >=20 >> Block counts are inconvenient for planning, as there's no guarantee >> they'll actually happen in any particular time frame, forward and back. >=20 > I don't think the deadline needs to be set that accurately. A roughly 6 m= onth deadline should be fine, but as you say a majority of miners is needed t= o abuse the median time and it is already a miner poll. >=20 > Perhaps the number of blocks used in the median could be increased to redu= ce "noise". >=20 > The median time could be median of the last 144 blocks plus 12 hours. > =20 >> If you assume no large reorganizations, your table of known BIPs can >> just as easily be a list of block heights even if the median time >> mechanism is used. >=20 > I think it makes it easier to write the code. It reduced the state that n= eeds to be stored per BIP. You don't need to check if the previous bips wer= e all accepted. >=20 > Each bit is assigned to a particular BIP for a particular range of times (= or blocks). >=20 > If block numbers were used for the deadline, you just need to check the bl= ock index for the deadline block. >=20 > enum { > BIP_INACTIVE =3D 0, > BIP_ACTIVE, > BIP_LOCKED > BIP_INVALID_BLOCK, > } >=20 > int GetBIPState(block, bip)=20 > { > if (block.height =3D=3D bip.deadline) // Bit must be set to match loc= ked/unlocked at deadline > { > int bipState =3D check_supermajority(...); > if (bipState =3D=3D BIP_LOCKED && (block.nVersion & bip.bit) > return BIP_LOCKED; >=20 > if (bipState !=3D BIP_LOCKED && (block.nVersion & (~bip.bit))) > return BIP_INACTIVE; >=20 > return BIP_INVALID_BLOCK; > } >=20 > if (block.height > deadline) // Look at the deadline block to determin= e if the BIP is locked > return (block_index[deadline].nVersion & bip_bit) !=3D 0 ? BIP_LOC= KED : BIP_INACTIVE; >=20 > if (block.height < startline + I) // BIP cannot activate/lock until st= artline + implicit window size > return INACTIVE; >=20 > return check_supermajority(....) // Check supermajority of bit > } >=20 > The block at height deadline would indicate if the BIP was locked in. >=20 > Block time could still be used as long as the block height was set after t= hat. The deadline_time could be in six months. The startline height could b= e the current block height and the deadline_height could be startline + 3500= 0. =20 >=20 > The gives roughly >=20 > start time =3D now > deadline time =3D now + six months > deadline height =3D now + eight months >=20 > The deadline height is the block height when the bit is returned to the po= ol but the deadline time is when the BIP has to be accepted. >=20 > It also helps with the warning system. For each block height, there is a s= et of known BIP bits that are allowed. Once the final deadline is passed, t= he expected mask is zeros. >=20 >> On Wed, May 27, 2015 at 11:15 AM, Jorge Tim=A8=AEn wro= te: >> On May 27, 2015 11:35 AM, "Tier Nolan" wrote: >>=20 >> > Was the intention to change the 95% rule. You need 750 of the last 100= 0 to activate and then must wait at least 1000 for implication? >>=20 >> You need 75% to start applying it, 95% to start rejecting blocks that don= 't apply it. >=20 > I think the phrasing is ambiguous. I was just asking for clarification. >=20 > "Whenever I out of any W subsequent blocks (regardless of the block itself= ) have bit B set," >=20 > That suggests that the I of W blocks for the 95% rule must happen after ac= tivation. This makes the rule checking harder. Easier to use the current s= ystem, where blocks that were part of the 750 rule also count towards the 95= % rule. > --------------------------------------------------------------------------= ---- >=20 > _______________________________________________ > Bitcoin-development mailing list > Bitcoin-development@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/bitcoin-development >=20 --Apple-Mail-2892A5B5-5A05-4068-95D8-012A6D7DC0CA Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
oh my God ...

=E5=8F=91=E8=87=AA=E6=88=91=E7=9A=84 iPhone=

=E5=9C=A8 2015=E5=B9=B45=E6=9C=8827=E6=97=A5=EF=BC=8C19:26=EF= =BC=8CTier Nolan <tier.nolan@gmai= l.com> =E5=86=99=E9=81=93=EF=BC=9A



On Wed, May 27, 2015 at 11:15 AM, Peter Todd = <pete@petertodd.o= rg> wrote:
The median time mechanism is basically a way for hashing power to sho= w
what time they think it is. Equally, the nVersion soft-fork mechanism is
= a way for hashing power to show what features they want to support.


Fair enough.  It means slightly mo= re processing, but the median time could be cached in the header index, so n= o big deal.

Block counts are inconvenient for planning, as there's no guarantee
they'll actually happen in any particular time frame, forward and back.
<= /blockquote>

I don't think the deadline needs to be set t= hat accurately.  A roughly 6 month deadline should be fine, but as you s= ay a majority of miners is needed to abuse the median time and it is already= a miner poll.

Perhaps the number of blocks used in the me= dian could be increased to reduce "noise".

The m= edian time could be median of the last 144 blocks plus 12 hours.
 
If you assume no large reorganizations, your table of known BIPs can<= br> just as easily be a list of block heights even if the median time
mechanism is used.

I think it makes it e= asier to write the code.  It reduced the state that needs to be stored p= er BIP.  You don't need to check if the previous bips were all accepted= .

Each bit is assigned to a particular BIP for a particula= r range of times (or blocks).

If block numbers w= ere used for the deadline, you just need to check the block index for the de= adline block.

enum {
    BIP_= INACTIVE =3D 0,
    BIP_ACTIVE,
&= nbsp;   BIP_LOCKED
    BIP_INVALID_BLOCK,
}

int GetBIPState(block, bip)
{
    if (= block.height =3D=3D bip.deadline)  // Bit must be set to match locked/u= nlocked at deadline
    {
 &= nbsp;      int bipState =3D check_supermajority(...= );
        if (bipState =3D= =3D BIP_LOCKED && (block.nVersion & bip.bit)
 = ;           return BIP_LOC= KED;

        if (bipSta= te !=3D BIP_LOCKED && (block.nVersion & (~bip.bit)))
            return= BIP_INACTIVE;

        r= eturn BIP_INVALID_BLOCK;
    }

 &nb= sp;  if (block.height > deadline) // Look at the deadline block to d= etermine if the BIP is locked
        r= eturn (block_index[deadline].nVersion & bip_bit) !=3D 0 ? BIP_LOCKED : B= IP_INACTIVE;

    if (block.height < star= tline + I) // BIP cannot activate/lock until startline + implicit window siz= e
        return INACTIVE;<= br>

    return check_supermajority(....) // Che= ck supermajority of bit
}

The block at height deadline w= ould indicate if the BIP was locked in.

Block time could s= till be used as long as the block height was set after that.  The deadl= ine_time could be in six months.  The startline height could be the cur= rent block height and the deadline_height could be startline + 35000.  <= br>
The gives roughly

start time =3D now
=
deadline time =3D now + six months
deadline height =3D= now + eight months

The deadline height is the block heigh= t when the bit is returned to the pool but the deadline time is when the BIP= has to be accepted.

It also helps with the war= ning system.  For each block height, there is a set of known BIP bits t= hat are allowed.  Once the final deadline is passed, the expected mask i= s zeros.

On Wed= , May 27, 2015 at 11:15 AM, Jorge Tim=C3=B3n <jtimon@jtimon.cc> w= rote:
<= p dir=3D"ltr"> On May 27, 2015 11:35 AM, "Tier Nolan" <tier.nolan@gmail.com> wrote:

> Was the intention to change the 95% rule.  You need= =20 750 of the last 1000 to activate and then must wait at least 1000 for=20 implication?

You need 75% to start applying it, 95% to start reject= ing blocks that don't apply it.


I think the phrasing is ambiguous.  I was j= ust asking for clarification.

"Whenever I out of any W subsequent<= /b> blocks (regardless of the block itself) have bit B set,"

That suggests that the I of W blocks for the 95% rule must happen after a= ctivation.  This makes the rule checking harder.  Easier to use th= e current system, where blocks that were part of the 750 rule also count tow= ards the 95% rule.
--------------------= ----------------------------------------------------------
<= /span>
__________= _____________________________________
Bitcoin-development ma= iling list
Bitcoin-development@lists.sourceforge.net
h= ttps://lists.sourceforge.net/lists/listinfo/bitcoin-development
= --Apple-Mail-2892A5B5-5A05-4068-95D8-012A6D7DC0CA-- From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from sog-mx-2.v43.ch3.sourceforge.com ([172.29.43.192] helo=mx.sourceforge.net) by sfs-ml-4.v29.ch3.sourceforge.com with esmtp (Exim 4.76) (envelope-from ) id 1Z0FUw-0001I1-Gk for bitcoin-development@lists.sourceforge.net; Wed, 03 Jun 2015 20:42:50 +0000 Received-SPF: pass (sog-mx-2.v43.ch3.sourceforge.com: domain of gmail.com designates 209.85.218.53 as permitted sender) client-ip=209.85.218.53; envelope-from=pieter.wuille@gmail.com; helo=mail-oi0-f53.google.com; Received: from mail-oi0-f53.google.com ([209.85.218.53]) by sog-mx-2.v43.ch3.sourceforge.com with esmtps (TLSv1:RC4-SHA:128) (Exim 4.76) id 1Z0FUv-0007eN-MC for bitcoin-development@lists.sourceforge.net; Wed, 03 Jun 2015 20:42:50 +0000 Received: by oihb142 with SMTP id b142so16717036oih.3 for ; Wed, 03 Jun 2015 13:42:44 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.60.82.97 with SMTP id h1mr29378225oey.71.1433364164276; Wed, 03 Jun 2015 13:42:44 -0700 (PDT) Received: by 10.60.94.36 with HTTP; Wed, 3 Jun 2015 13:42:44 -0700 (PDT) In-Reply-To: References: Date: Wed, 3 Jun 2015 13:42:44 -0700 Message-ID: From: Pieter Wuille To: Bitcoin Dev Content-Type: multipart/alternative; boundary=047d7b6767c8d879830517a319eb 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 (pieter.wuille[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: 1Z0FUv-0007eN-MC Subject: Re: [Bitcoin-development] Version bits proposal 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: Wed, 03 Jun 2015 20:42:50 -0000 --047d7b6767c8d879830517a319eb Content-Type: text/plain; charset=UTF-8 Thanks for all the comments. I plan to address the feedback and work on an implementation next week. On Tue, May 26, 2015 at 6:48 PM, Pieter Wuille wrote: > Hello everyone, > > here is a proposal for how to coordinate future soft-forking consensus > changes: https://gist.github.com/sipa/bf69659f43e763540550 > > It supports multiple parallel changes, as well as changes that get > permanently rejected without obstructing the rollout of others. > > Feel free to comment. As the gist does not support notifying participants > of new comments, I would suggest using the mailing list instead. > > This is joint work with Peter Todd and Greg Maxwell. > > -- > Pieter > --047d7b6767c8d879830517a319eb Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Thanks for all the comments.

I plan to a= ddress the feedback and work on an implementation next week.
--047d7b6767c8d879830517a319eb--