summaryrefslogtreecommitdiff
path: root/1c/4bea55af9b51502ae9f6dfe88cfddf12aecfe2
blob: 1af5b71e37b0d77547e8a024f0a425c9a8c41d9c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
Return-Path: <jtimon@jtimon.cc>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id 9B36A9E8
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Thu,  6 Jul 2017 17:20:50 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.7.6
Received: from mail-vk0-f53.google.com (mail-vk0-f53.google.com
	[209.85.213.53])
	by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 06E231BB
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Thu,  6 Jul 2017 17:20:48 +0000 (UTC)
Received: by mail-vk0-f53.google.com with SMTP id r126so4312883vkg.0
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Thu, 06 Jul 2017 10:20:48 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=jtimon-cc.20150623.gappssmtp.com; s=20150623;
	h=mime-version:in-reply-to:references:from:date:message-id:subject:to
	:cc:content-transfer-encoding;
	bh=CgL+jPKqzTsftGK8j4n4lhPbpc5Tbu3tFnIv8Nxyi00=;
	b=L1uGAOpaTtybKWR98aIPGMSDFEBjUypgQHUowzeRkxpZaUKm/kEuZnDlrVseFjA7n5
	+JXITZi09kONXmHXst5gofJny4fMgmbt/F8Uv2DZcg+TLkFcwDSOJAgZDQ0cN/1h7w8Q
	7/IpzAxMOpbHdSONp8aErDJOsJFjJXHxRuqCN4istMq6r09c+rEvys33RRMKTuj/Xy7y
	L+LptesuXcopqbRlT1+DINcisKL8sfK4LLgNOtAOPKz2orYL9fGJc+BtFZXhepR7YXLL
	u947AajtjbVK5CKYrwPh+9wxOMtgxVK97C9CTmY+B34vbEBH/+++bDVRxOqI/M8LuSyN
	3quA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20161025;
	h=x-gm-message-state:mime-version:in-reply-to:references:from:date
	:message-id:subject:to:cc:content-transfer-encoding;
	bh=CgL+jPKqzTsftGK8j4n4lhPbpc5Tbu3tFnIv8Nxyi00=;
	b=crA07YaSL2EAJnye4Gr/BAqwPOVciRlXyzfDhpVocyiJJlmjUiJ1bhX2bQunAMXNDi
	m4M//pet1oG40YiWObFBRSFHP2UrKHUtf3AE2tYsym5/c6tphdjQstBQFbYb75G3o52s
	z7o3DujiRwWwQQjswU0l0grgfiBLXVBfQypmxGxXRoaFvokzpnYd/iVlClBCZosWuP6H
	dT6dsn/f4LRFJ24y2j/Zf1Ua2IEl3YidAk97HYeJ2RvKYLVjWRlloS1pfZg95eNBx+9t
	onhOoaNCnea/V7TwisSc6JQom8iOZBdbUlAZDC8O19qZNbTaZgiEI9DgVCQpeYED05IT
	Cg0Q==
X-Gm-Message-State: AKS2vOx9qIABLlzAG12d51Qaz9BQBiQJNgCbgiAxh2V6pn6IlBo8BrCr
	7Pm+YCh6nrjPdsBRYMyooPAIKppnS3eaAf4=
X-Received: by 10.31.89.4 with SMTP id n4mr25488165vkb.135.1499361648066; Thu,
	06 Jul 2017 10:20:48 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.31.52.85 with HTTP; Thu, 6 Jul 2017 10:20:47 -0700 (PDT)
In-Reply-To: <CAFMkqK9ezq_AdOpeA08jpr9haHP_jEHaJaQ2KZC=yMy6UXaJyA@mail.gmail.com>
References: <KXL-Ie0q1dKTlbQ2XCyTRCzoQLND-Q7M9CFvYTfhjgeiZ4K3knpetQSwwLviO6whuHXQnFPg-rg8q1xW8w5mNnYFxalvx5_9Vci63lC9ju4=@protonmail.ch>
	<201707050350.53122.luke@dashjr.org>
	<00qcLaDJFDoC9D6644P_aLf7_n5B1pqCPj_c02QlqySsrJLsB6TZipXMD8L7l3lJcw5NoLP6dphCMruKJCIMkJUIDYbIw0iDd322vsNFmNw=@protonmail.ch>
	<201707050410.45217.luke@dashjr.org>
	<CAFMkqK9ezq_AdOpeA08jpr9haHP_jEHaJaQ2KZC=yMy6UXaJyA@mail.gmail.com>
From: =?UTF-8?B?Sm9yZ2UgVGltw7Nu?= <jtimon@jtimon.cc>
Date: Thu, 6 Jul 2017 19:20:47 +0200
Message-ID: <CABm2gDo0CdyXJkpMJ7dL82xJ0LuNSq6H7sHCC8Yt9RamvhF1YQ@mail.gmail.com>
To: =?UTF-8?Q?Hampus_Sj=C3=B6berg?= <hampus.sjoberg@gmail.com>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,
	DKIM_VALID, RCVD_IN_DNSWL_NONE,
	RCVD_IN_SORBS_SPAM autolearn=no version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
	smtp1.linux-foundation.org
Cc: "bitcoin-dev@lists.linuxfoundation.org"
	<bitcoin-dev@lists.linuxfoundation.org>
Subject: Re: [bitcoin-dev] Height based vs block time based thresholds
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Bitcoin Protocol Discussion <bitcoin-dev.lists.linuxfoundation.org>
List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>,
	<mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe>
List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/>
List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org>
List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help>
List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>,
	<mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe>
X-List-Received-Date: Thu, 06 Jul 2017 17:20:50 -0000

I'm all for using height instead of time. That was my preference for
bip9 all along, but my arguments at the time apparently weren't
convincing.

Regarding luke's proposal, the only advantage I see is that it would
allow nodes that don't know a deployment that gets activated to issue
a warning, like bip9 always does when an unknown deployment is locked
in.

But there's a simpler way to do that which doesn't require to add
consensus rules as to what versionbits should be.
I'm honestly not worried about it being "coersive" and I don't think
it's inherently reckless (although used with short deployment times
like bip148 it can be IMO). But it adds more complexity to the
consensus rules, with something that could merely be "warning code".

You can just use a special bit in versionbits for nodes to get the warning.
My proposal doesn't guarantee that the warning will be signaled, for
example, if the miner that mines the block right after lock in doesn't
know about the deployment, he can't possibly know that he was supposed
to signal the warning bit, even if he has the best intentions. Miners
can also intentionally not signal it out of pure malice. But that's no
worse than the current form, when deployments activated by final date
instead of miner signaling never get a warning.

Shaolinfry had more concerns with my proposed modification, but I
think I answered all of them here:

https://github.com/bitcoin/bitcoin/pull/10462#issuecomment-306266218

The implementation of the proposal is there too. I'm happy to reopen
and rebase to simplify (#10464 was merged and there's at least 1
commit to squash).

> It also enables deploying softforks as a MASF, and only upgrading them to=
 UASF
on an as-needed basis.

You can also do

consensus.vDeployments[Consensus::DEPLOYMENT_MASF].bit =3D 0;
consensus.vDeployments[Consensus::DEPLOYMENT_MASF].nStartHeight =3D 500000;
consensus.vDeployments[Consensus::DEPLOYMENT_MASF].nTimeoutHeight =3D 51000=
0;
consensus.vDeployments[Consensus::DEPLOYMENT_MASF].lockinontimeout =3D fals=
e;

and "if needed", simply add the following at any time (before the new
nStartHeight, obviously):


consensus.vDeployments[Consensus::DEPLOYMENT_UASF].bit =3D 0;
consensus.vDeployments[Consensus::DEPLOYMENT_UASF].nStartHeight =3D 510000;
consensus.vDeployments[Consensus::DEPLOYMENT_UASF].nTimeoutHeight =3D 51500=
0;
consensus.vDeployments[Consensus::DEPLOYMENT_UASF].lockinontimeout =3D true=
;


On Wed, Jul 5, 2017 at 9:44 PM, Hampus Sj=C3=B6berg via bitcoin-dev
<bitcoin-dev@lists.linuxfoundation.org> wrote:
> From the PR change:
>
>> Miners must continue setting the bit in LOCKED_IN phase so uptake is
>> visible and acknowledged. Blocks without the applicable bit set are inva=
lid
>> during this period
>
> Luke, it seems like the amendments to BIP8 make it drastically different =
to
> how it first was designed to work.
> It now looks more akin to BIP148, which was AFAICT not how BIP8 was
> originally intended to work.
> Perhaps this should be made into its own BIP instead, or make it so it's
> possible to decide how the LOCKED_IN state should work when designing the
> softfork.
>
> Hampus
>
> 2017-07-05 6:10 GMT+02:00 Luke Dashjr via bitcoin-dev
> <bitcoin-dev@lists.linuxfoundation.org>:
>>
>> It's not pointless: it's a wake-up call for miners asleep "at the wheel"=
,
>> to
>> ensure they upgrade in time. Not having a mandatory signal turned out to
>> be a
>> serious bug in BIP 9, and one which is fixed in BIP 148 (and remains a
>> problem
>> for BIP 149 as-is). Additionally, it makes the activation decisive and
>> unambiguous: once the lock-in period is complete, there remains no
>> question as
>> to what the correct protocol rules are.
>>
>> It also enables deploying softforks as a MASF, and only upgrading them t=
o
>> UASF
>> on an as-needed basis.
>>
>> Luke
>>
>>
>> On Wednesday 05 July 2017 4:00:38 AM shaolinfry wrote:
>> > Luke,
>> > I previously explored an extra state to require signalling before
>> > activation in an earlier draft of BIP8, but the overall impression I g=
ot
>> > was that gratuitous orphaning was undesirable, so I dropped it. I
>> > understand the motivation behind it (to ensure miners are upgraded), b=
ut
>> > it's also rather pointless when miners can just fake signal. A properl=
y
>> > constructed soft fork is generally such that miners have to deliberate=
ly
>> > do something invalid - they cannot be tricked into it... and miners ca=
n
>> > always chose to do something invalid anyway.
>> >
>> > > -------- Original Message --------
>> > > From: luke@dashjr.org
>> > > To: bitcoin-dev@lists.linuxfoundation.org, shaolinfry
>> > > <shaolinfry@protonmail.ch> I"ve already opened a PR almost 2 weeks a=
go
>> > > to do this and fix the other issues BIP 9 has.
>> > > https://github.com/bitcoin/bips/pull/550
>> > > It just needs your ACK to merge.
>> > >
>> > > On Wednesday 05 July 2017 1:30:26 AM shaolinfry via bitcoin-dev wrot=
e:
>> > >> Some people have criticized BIP9"s blocktime based thresholds argui=
ng
>> > >> they are confusing (the first retarget after threshold). It is also
>> > >> vulnerable to miners fiddling with timestamps in a way that could
>> > >> prevent or delay activation - for example by only advancing the blo=
ck
>> > >> timestamp by 1 second you would never meet the threshold (although
>> > >> this
>> > >> would come a the penalty of hiking the difficulty dramatically). On
>> > >> the
>> > >> other hand, the exact date of a height based thresholds is hard to
>> > >> predict a long time in advance due to difficulty fluctuations.
>> > >> However,
>> > >> there is certainty at a given block height and it"s easy to monitor=
.
>> > >> If
>> > >> there is sufficient interest, I would be happy to amend BIP8 to be
>> > >> height based. I originally omitted height based thresholds in the
>> > >> interests of simplicity of review - but now that the proposal has
>> > >> been
>> > >> widely reviewed it would be a trivial amendment.
>> _______________________________________________
>> bitcoin-dev mailing list
>> bitcoin-dev@lists.linuxfoundation.org
>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>
>
>
> _______________________________________________
> bitcoin-dev mailing list
> bitcoin-dev@lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>