summaryrefslogtreecommitdiff
path: root/bf/92f2e157fc3a1019ba34436ba8edc99a15ac25
blob: 205b27724ff8ff9bdb80512a2c1dcffb88a6878e (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
240
241
242
243
244
245
246
247
248
249
250
251
252
253
Return-Path: <mark@friedenbach.org>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id 7E7BCD8F
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Wed,  9 Dec 2015 07:00:04 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.7.6
Received: from mail-ig0-f172.google.com (mail-ig0-f172.google.com
	[209.85.213.172])
	by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 5EB31126
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Wed,  9 Dec 2015 07:00:03 +0000 (UTC)
Received: by igcph11 with SMTP id ph11so112256744igc.1
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Tue, 08 Dec 2015 23:00:02 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=friedenbach-org.20150623.gappssmtp.com; s=20150623;
	h=mime-version:in-reply-to:references:from:date:message-id:subject:to
	:cc:content-type;
	bh=wRamgxi2FYspUx8/lrh8SmH2Ddbaiy20deY5gPuaRKc=;
	b=DeN1Zsu6zsekvBdsZMHC0TwtjeCHBJ+p//iyswHYM0Anstqbx1PeAEGV0fw+VqgYkX
	T2TFeg3rvsFs2HYNW+obX0knDGUI+ROCYwSAD+T8kK/aUrzDGDzjM37vmEb/4yyWQ06c
	XX4TRKepTQkw5u/DKZ01uxfr2Cb7GvolyFvpylOy1sBlJ8x/3gjsC1proUn3cXMb/Cr8
	wl6q5TV+4McLBphZYGwljzO3+PT342eJ1lNtAGbm0SBeWfU8hSMvd46XPrAepMq8aqMD
	p1iQzaB59AYhJ3KP7BBxe59hFldvk31H45JA6LXT+NVg1OFcJmuJVO9Iu7kOMWlD2d32
	f6pQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20130820;
	h=x-gm-message-state:mime-version:in-reply-to:references:from:date
	:message-id:subject:to:cc:content-type;
	bh=wRamgxi2FYspUx8/lrh8SmH2Ddbaiy20deY5gPuaRKc=;
	b=hxjaWQB35EYW+KsU9fLOKL4yeHasLzPf9UFXKgDzFpekxFru2jBvbpcl3ULsFxkV0O
	dHSO2lmI6opzc063qjhm/VSrQVk79tKw6M866lzevHgjgZGhZS9+wZHMEWibSUE3ShM3
	FQrD9/GXuKD/XEvTn504SSnCxHDDWk07mdbKvb20MwiZYBDYuZMOt6FbQWaO2+6knR4r
	6W0wwJnA1BYLPQDmowAoti0HAGWnTOjU6mo0VLlDKV6uBV8NB9D5f8epWXgGAx3OrfIU
	yzVEDN3zPF4DZ7MoZfV/YLtwqQZtTQUF0nDrCC0cBW8BIojwXXcK+Qw9KNQgWnPh/Kv5
	jC9g==
X-Gm-Message-State: ALoCoQljzL/T2l8Lc16s0R28MZ5h+Fp6lLMHFioHlDvx0WQglOwduchTErulsSEMFDj5s7nIpeRQSp9+HPwz1uIGx6OxhAhogw==
X-Received: by 10.50.66.144 with SMTP id f16mr24269375igt.22.1449644402579;
	Tue, 08 Dec 2015 23:00:02 -0800 (PST)
MIME-Version: 1.0
Received: by 10.107.133.217 with HTTP; Tue, 8 Dec 2015 22:59:43 -0800 (PST)
X-Originating-IP: [202.83.241.113]
In-Reply-To: <CAAS2fgS-jjEVeHf_LErppTadtAaSeBum+KiGHpoo=Jz5BZArsQ@mail.gmail.com>
References: <CAAS2fgQyVs1fAEj+vqp8E2=FRnqsgs7VUKqALNBHNxRMDsHdVg@mail.gmail.com>
	<20151208110752.GA31180@amethyst.visucore.com>
	<CABm2gDpcek=u=Rpe68EMOq6M7Bji9J=s5VvoQWKRqaQDAP5kTw@mail.gmail.com>
	<CABsx9T1wga3Tandoe2mVGSKdHJytHoc9Ko7HRm2SvJXABEFk9w@mail.gmail.com>
	<CAAS2fgTGYSiAJHZq80rD4UieV8XetS=W0b45b5onWAS9gF-F7g@mail.gmail.com>
	<CABsx9T1i50Gvxj18W=n2mYGNpsMrSkDT26CdA3aQqT5FFN86yw@mail.gmail.com>
	<CAAS2fgSxpSat3VOje3-C4zgaRUVJVx-eRJbSYJqhvfR5SvCDwA@mail.gmail.com>
	<CAF_2MyUJMdJyh7FKq6UYCtwJZQ59i-pnWT_tFEK5EQx65iwHDQ@mail.gmail.com>
	<CAAS2fgS-jjEVeHf_LErppTadtAaSeBum+KiGHpoo=Jz5BZArsQ@mail.gmail.com>
From: Mark Friedenbach <mark@friedenbach.org>
Date: Wed, 9 Dec 2015 14:59:43 +0800
Message-ID: <CAOG=w-sN5Kc5_W07iSKvZqSz_cNu50rkoQ65cP3_bWeFNcyizA@mail.gmail.com>
To: Gregory Maxwell <greg@xiph.org>
Content-Type: multipart/alternative; boundary=047d7bdc9daeaab8e9052671a326
X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,
	DKIM_VALID, HTML_MESSAGE, RCVD_IN_DNSWL_LOW,
	RCVD_IN_SORBS_WEB autolearn=ham version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
	smtp1.linux-foundation.org
Cc: Bitcoin Dev <bitcoin-dev@lists.linuxfoundation.org>
Subject: Re: [bitcoin-dev] Capacity increases for the Bitcoin system.
X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Bitcoin Development 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: Wed, 09 Dec 2015 07:00:04 -0000

--047d7bdc9daeaab8e9052671a326
Content-Type: text/plain; charset=UTF-8

Greg, if you have actual data showing that putting the commitment in the
last transaction would be disruptive, and how disruptive, that would be
appreciated. Of the mining hardware I have looked at, none of it cared at
all what transactions other than the coinbase are. You need to provide a
path to the coinbase for extranonce rolling, but the witness commitment
wouldn't need to be updated.

I'm sorry but it's not clear how this would be an incompatible upgrade,
disruptive to anything other than the transaction selection code. Maybe I'm
missing something? I'm not familiar with all the hardware or pooling setups
out there.

On Wed, Dec 9, 2015 at 2:29 PM, Gregory Maxwell via bitcoin-dev <
bitcoin-dev@lists.linuxfoundation.org> wrote:

> On Wed, Dec 9, 2015 at 4:44 AM, Ryan Butler <rryananizer@gmail.com> wrote:
> >>I agree, but nothing I have advocated creates significant technical
> >>debt. It is also a bad engineering practice to combine functional
> >>changes (especially ones with poorly understood system wide
> >>consequences and low user autonomy) with structural tidying.
> >
> > I don't think I would classify placing things in consensus critical code
> > when it doesn't need to be as "structural tidying".  Gavin said "pile on"
> > which you took as implying "a lot", he can correct me, but I believe he
> > meant "add to".
>
> Nothing being discussed would move something from consensus critical
> code to not consensus critical.
>
> What was being discussed was the location of the witness commitment;
> which is consensus critical regardless of where it is placed. Should
> it be placed in an available location which is compatible with the
> existing network, or should the block hashing data structure
> immediately be changed in an incompatible way to accommodate it in
> order to satisfy an ascetic sense of purity and to make fraud proofs
> somewhat smaller?
>
> I argue that the size difference in the fraud proofs is not
> interesting, the disruption to the network in an incompatible upgrade
> is interesting; and that if it really were desirable reorganization to
> move the commitment point could be done as part of a separate change
> that changes only the location of things (and/or other trivial
> adjustments); and that proceeding int this fashion would minimize
> disruption and risk... by making the incompatible changes that will
> force network wide software updates be as small and as simple as
> possible.
>
> >> (especially ones with poorly understood system wide consequences and low
> >> user autonomy)
> >
> > This implies there you have no confidence in the unit tests and
> functional
> > testing around Bitcoin and should not be a reason to avoid refactoring.
> > It's more a reason to increase testing so that you will have confidence
> when
> > you refactor.
>
> I am speaking from our engineering experience in a  public,
> world-wide, multi-vendor, multi-version, inter-operable, distributed
> system which is constantly changing and in production contains private
> code, unknown and assorted hardware, mixtures of versions, unreliable
> networks, undisclosed usage patterns, and more sources of complex
> behavior than can be counted-- including complex economic incentives
> and malicious participants.
>
> Even if we knew the complete spectrum of possible states for the
> system the combinatioric explosion makes complete testing infeasible.
>
> Though testing is essential one cannot "unit test" away all the risks
> related to deploying a new behavior in the network.
> _______________________________________________
> bitcoin-dev mailing list
> bitcoin-dev@lists.linuxfoundation.org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>

--047d7bdc9daeaab8e9052671a326
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Greg, if you have actual data showing that putting th=
e commitment in the last transaction would be disruptive, and how disruptiv=
e, that would be appreciated. Of the mining hardware I have looked at, none=
 of it cared at all what transactions other than the coinbase are. You need=
 to provide a path to the coinbase for extranonce rolling, but the witness =
commitment wouldn&#39;t need to be updated.<br><br></div>I&#39;m sorry but =
it&#39;s not clear how this would be an incompatible upgrade, disruptive to=
 anything other than the transaction selection code. Maybe I&#39;m missing =
something? I&#39;m not familiar with all the hardware or pooling setups out=
 there.<br></div><div class=3D"gmail_extra"><br><div class=3D"gmail_quote">=
On Wed, Dec 9, 2015 at 2:29 PM, Gregory Maxwell via bitcoin-dev <span dir=
=3D"ltr">&lt;<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org" targe=
t=3D"_blank">bitcoin-dev@lists.linuxfoundation.org</a>&gt;</span> wrote:<br=
><blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1=
px #ccc solid;padding-left:1ex"><span class=3D"">On Wed, Dec 9, 2015 at 4:4=
4 AM, Ryan Butler &lt;<a href=3D"mailto:rryananizer@gmail.com">rryananizer@=
gmail.com</a>&gt; wrote:<br>
&gt;&gt;I agree, but nothing I have advocated creates significant technical=
<br>
&gt;&gt;debt. It is also a bad engineering practice to combine functional<b=
r>
&gt;&gt;changes (especially ones with poorly understood system wide<br>
&gt;&gt;consequences and low user autonomy) with structural tidying.<br>
&gt;<br>
&gt; I don&#39;t think I would classify placing things in consensus critica=
l code<br>
&gt; when it doesn&#39;t need to be as &quot;structural tidying&quot;.=C2=
=A0 Gavin said &quot;pile on&quot;<br>
&gt; which you took as implying &quot;a lot&quot;, he can correct me, but I=
 believe he<br>
&gt; meant &quot;add to&quot;.<br>
<br>
</span>Nothing being discussed would move something from consensus critical=
<br>
code to not consensus critical.<br>
<br>
What was being discussed was the location of the witness commitment;<br>
which is consensus critical regardless of where it is placed. Should<br>
it be placed in an available location which is compatible with the<br>
existing network, or should the block hashing data structure<br>
immediately be changed in an incompatible way to accommodate it in<br>
order to satisfy an ascetic sense of purity and to make fraud proofs<br>
somewhat smaller?<br>
<br>
I argue that the size difference in the fraud proofs is not<br>
interesting, the disruption to the network in an incompatible upgrade<br>
is interesting; and that if it really were desirable reorganization to<br>
move the commitment point could be done as part of a separate change<br>
that changes only the location of things (and/or other trivial<br>
adjustments); and that proceeding int this fashion would minimize<br>
disruption and risk... by making the incompatible changes that will<br>
force network wide software updates be as small and as simple as<br>
possible.<br>
<span class=3D""><br>
&gt;&gt; (especially ones with poorly understood system wide consequences a=
nd low<br>
&gt;&gt; user autonomy)<br>
&gt;<br>
&gt; This implies there you have no confidence in the unit tests and functi=
onal<br>
&gt; testing around Bitcoin and should not be a reason to avoid refactoring=
.<br>
&gt; It&#39;s more a reason to increase testing so that you will have confi=
dence when<br>
&gt; you refactor.<br>
<br>
</span>I am speaking from our engineering experience in a=C2=A0 public,<br>
world-wide, multi-vendor, multi-version, inter-operable, distributed<br>
system which is constantly changing and in production contains private<br>
code, unknown and assorted hardware, mixtures of versions, unreliable<br>
networks, undisclosed usage patterns, and more sources of complex<br>
behavior than can be counted-- including complex economic incentives<br>
and malicious participants.<br>
<br>
Even if we knew the complete spectrum of possible states for the<br>
system the combinatioric explosion makes complete testing infeasible.<br>
<br>
Though testing is essential one cannot &quot;unit test&quot; away all the r=
isks<br>
related to deploying a new behavior in the network.<br>
<div class=3D"HOEnZb"><div class=3D"h5">___________________________________=
____________<br>
bitcoin-dev mailing list<br>
<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org">bitcoin-dev@lists.=
linuxfoundation.org</a><br>
<a href=3D"https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev" =
rel=3D"noreferrer" target=3D"_blank">https://lists.linuxfoundation.org/mail=
man/listinfo/bitcoin-dev</a><br>
</div></div></blockquote></div><br></div>

--047d7bdc9daeaab8e9052671a326--