summaryrefslogtreecommitdiff
path: root/2d/641760327d2d4de2d55fe23a04668b62e3d30c
blob: 9bbd91afb55a0bd6a9e41e19b508011ad19bf793 (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
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
Return-Path: <john@johnnewbery.com>
Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
	[172.17.192.35])
	by mail.linuxfoundation.org (Postfix) with ESMTPS id 615ADAF0
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Fri, 18 Oct 2019 20:53:40 +0000 (UTC)
X-Greylist: whitelisted by SQLgrey-1.7.6
Received: from mail-ot1-f50.google.com (mail-ot1-f50.google.com
	[209.85.210.50])
	by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 00ED7821
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Fri, 18 Oct 2019 20:53:36 +0000 (UTC)
Received: by mail-ot1-f50.google.com with SMTP id 60so6118700otu.0
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Fri, 18 Oct 2019 13:53:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=johnnewbery-com.20150623.gappssmtp.com; s=20150623;
	h=mime-version:references:in-reply-to:from:date:message-id:subject:to; 
	bh=VtA7JtFWaA14yl4jXBfEuEAy5sNwUbVBVNM9RWb33Zg=;
	b=LQ6K2tNwqdEnGFEV74csD2ByfD+YS+RHw2c68nXcxV+GRE5e0fgT9q1rEEkDw2h4UM
	7ljGndZN7hPJEIXtCa6C8bElr/omsuWyh5jS/aMl9XQk+i1r9UJxbL6gE+AS7jvAKC/8
	bLrfkhScS0VaHIeEdkZFFbaelPRoEboJAHaAv4m+N37y//M5dsWfIZhKSokQ9GIoUXJA
	tikE6BQi8iIZCl1Hf2YFKVAJDA/cVFglCtzy5AQrcwiKR/+G4aRNXjE4P/TkdBbzsnzW
	/yS2OVCh7aPDylSw7xnEQjPcasBYCktHZaYDog62HmZD4XHGVd1HMT3/398M41P2HXpz
	4QdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
	d=1e100.net; s=20161025;
	h=x-gm-message-state:mime-version:references:in-reply-to:from:date
	:message-id:subject:to;
	bh=VtA7JtFWaA14yl4jXBfEuEAy5sNwUbVBVNM9RWb33Zg=;
	b=WRk2dQg1MiGLo0nltII9/dHAc9Evfkqv0qxkV0wR34Xuy049+MffoAvhw5BXTcjMKs
	vw1vawFGl0kaUHnHgmGkbwhm8ORP7OK5Lzgd5ivUCLFsKEdBTS0bkLoqMj/IRVQhQuiu
	teyE2nqb8wY1VF5QDscb0TLac1147Sf+yOOJPnn65XtId78shCEjaNx4EBwlMVhjG9+U
	KMkgcKdax8COoz027CzCJjodOwjWU2lpZrEVtMYIL96mtSL7YRUegLHzuzazjC9XSJn2
	vfyhR/8jnoWbT2iFNAOYQEG6WgWFM4+QsPUt34ludk0uWRc6NamcZSCuyHCXAJQ+ZNf6
	HmfA==
X-Gm-Message-State: APjAAAVMKI2u65d6zF7fBq0mHzHyoZia1v3jYCOoEg/jZBhBNZuthGL1
	1Io7EWyGgOUuKct+AUZ9HykFhEd/hIM=
X-Google-Smtp-Source: APXvYqyuOPe8sTHebs80ZlBUlHTIwgRQZycpZy7cpRA33CRTiHO24qco5uDOAUTsaB+xJq8n9TBEeA==
X-Received: by 2002:a05:6830:22e6:: with SMTP id
	t6mr9169381otc.65.1571432015673; 
	Fri, 18 Oct 2019 13:53:35 -0700 (PDT)
Received: from mail-ot1-f47.google.com (mail-ot1-f47.google.com.
	[209.85.210.47]) by smtp.gmail.com with ESMTPSA id
	y11sm1687019oih.18.2019.10.18.13.53.34
	for <bitcoin-dev@lists.linuxfoundation.org>
	(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);
	Fri, 18 Oct 2019 13:53:34 -0700 (PDT)
Received: by mail-ot1-f47.google.com with SMTP id g13so6082036otp.8
	for <bitcoin-dev@lists.linuxfoundation.org>;
	Fri, 18 Oct 2019 13:53:34 -0700 (PDT)
X-Received: by 2002:a9d:37a1:: with SMTP id x30mr9608771otb.49.1571432013831; 
	Fri, 18 Oct 2019 13:53:33 -0700 (PDT)
MIME-Version: 1.0
References: <CAK51vgDO2Tg38XbW0pqAnO3ETJ_qf8owRsUYsTXmrf7H2yGZtw@mail.gmail.com>
	<CAFmfg2u3cLwG4h=tSF1+ho__1n2n4xyBGH+mwQgVYE9c_s+EMw@mail.gmail.com>
In-Reply-To: <CAFmfg2u3cLwG4h=tSF1+ho__1n2n4xyBGH+mwQgVYE9c_s+EMw@mail.gmail.com>
From: John Newbery <john@johnnewbery.com>
Date: Fri, 18 Oct 2019 16:53:23 -0400
X-Gmail-Original-Message-ID: <CAFmfg2sU=ur7NdzU6r9bGC=xZqcX7WA7ux-r8QOwNa+FKhS4Pw@mail.gmail.com>
Message-ID: <CAFmfg2sU=ur7NdzU6r9bGC=xZqcX7WA7ux-r8QOwNa+FKhS4Pw@mail.gmail.com>
To: Marco Falke via bitcoin-dev <bitcoin-dev@lists.linuxfoundation.org>
Content-Type: multipart/alternative; boundary="000000000000f9243e059535864b"
X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,
	DKIM_VALID, HTML_MESSAGE, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1
X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
	smtp1.linux-foundation.org
X-Mailman-Approved-At: Fri, 18 Oct 2019 21:32:45 +0000
Subject: Re: [bitcoin-dev] Removal of reject network messages from Bitcoin
 Core (BIP61)
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: Fri, 18 Oct 2019 20:53:40 -0000

--000000000000f9243e059535864b
Content-Type: text/plain; charset="UTF-8"

> Is there a NODE_* bit we can use to pick peers that support this (useful!)
feature?

No. BIP 61 has no mechanism for advertising that a node will send REJECT
messages.

On Wed, Oct 16, 2019 at 12:43 PM John Newbery <john@johnnewbery.com> wrote:

> Following discussion on this mailing list, support for BIP 61 REJECT
> messages was not removed from Bitcoin Core in V0.19. The behaviour in that
> upcoming release is that REJECT messages are disabled by default and can be
> enabled using the `-enablebip61` command line option.
>
> Support for REJECT messages will be removed entirely in Bitcoin Core
> V0.20, expected for release in mid 2020. The PR to remove support was
> merged into Bitcoin Core's master branch this week.
>
> Adoption of new Bitcoin Core versions across reachable nodes generally
> takes several months. https://bitnodes.earn.com/dashboard/?days=365 shows
> that although v0.18 was released in May 2019, there are still several
> hundred reachable nodes on V0.17, V0.16, V0.15 and earlier software.
> Software that currently use REJECT messages from public nodes for
> troubleshooting issues therefore have plenty of time to transition to one
> of the methods listed by Marco in the email above.
>
> John
>
> On Tue, Mar 5, 2019 at 10:28 PM Marco Falke via bitcoin-dev <
> bitcoin-dev@lists.linuxfoundation.org> wrote:
>
>> Bitcoin Core may send "reject" messages as response to "tx", "block" or
>> "version" messages from a network peer when the message could not be
>> accepted.
>>
>> This feature is toggled by the `-enablebip61` command line option and has
>> been
>> disabled by default since Bitcoin Core version 0.18.0 (not yet released
>> as of
>> time of writing). Nodes on the network can not generally be trusted to
>> send
>> valid ("reject") messages, so this should only ever be used when
>> connected to a
>> trusted node. At this time, I am not aware of any software that requires
>> this
>> feature, and I would like to remove if from Bitcoin Core to make the
>> codebase
>> slimmer, easier to understand and maintain. Let us know if your
>> application
>> relies on this feature and you can not use any of the recommended
>> alternatives:
>>
>> * Testing or debugging of implementations of the Bitcoin P2P network
>> protocol
>>   should be done by inspecting the log messages that are produced by a
>> recent
>>   version of Bitcoin Core. Bitcoin Core logs debug messages
>>   (`-debug=<category>`) to a stream (`-printtoconsole`) or to a file
>>   (`-debuglogfile=<debug.log>`).
>>
>> * Testing the validity of a block can be achieved by specific RPCs:
>>   - `submitblock`
>>   - `getblocktemplate` with `'mode'` set to `'proposal'` for blocks with
>>     potentially invalid POW
>>
>> * Testing the validity of a transaction can be achieved by specific RPCs:
>>   - `sendrawtransaction`
>>   - `testmempoolaccept`
>>
>> * Wallets should not use the absence of "reject" messages to indicate a
>>   transaction has propagated the network, nor should wallets use "reject"
>>   messages to set transaction fees. Wallets should rather use fee
>> estimation
>>   to determine transaction fees and set replace-by-fee if desired. Thus,
>> they
>>   could wait until the transaction has confirmed (taking into account the
>> fee
>>   target they set (compare the RPC `estimatesmartfee`)) or listen for the
>>   transaction announcement by other network peers to check for
>> propagation.
>>
>> I propose to remove "reject" messages from Bitcoin Core 0.19.0 unless
>> there are
>> valid concerns about its removal.
>>
>> Marco
>> _______________________________________________
>> bitcoin-dev mailing list
>> bitcoin-dev@lists.linuxfoundation.org
>> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev
>>
>

--000000000000f9243e059535864b
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr">&gt;=C2=A0<span style=3D"color:rgb(0,0,0)=
;white-space:pre-wrap">Is there a NODE_* bit we can use to pick peers that =
support this </span><span style=3D"color:rgb(0,0,0);white-space:pre-wrap">(=
useful!) feature?</span></div><div dir=3D"ltr"><span style=3D"color:rgb(0,0=
,0);white-space:pre-wrap"><br></span></div><div><span style=3D"color:rgb(0,=
0,0);white-space:pre-wrap">No. BIP 61 has no mechanism for advertising that=
 a node will send REJECT messages.</span></div><div><br></div><div class=3D=
"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Wed, Oct 16, 2019 at=
 12:43 PM John Newbery &lt;<a href=3D"mailto:john@johnnewbery.com">john@joh=
nnewbery.com</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);paddin=
g-left:1ex"><div dir=3D"ltr"><div>Following discussion on this mailing list=
, support for BIP 61 REJECT messages was not removed from Bitcoin Core in V=
0.19. The behaviour in that upcoming release is that REJECT messages are di=
sabled by default and can be enabled using the `-enablebip61` command line =
option.<br><br>Support for REJECT messages will be removed entirely in Bitc=
oin Core V0.20, expected for release in mid 2020. The PR to remove support =
was merged into Bitcoin Core&#39;s master branch this week.<br><br>Adoption=
 of new Bitcoin Core versions across reachable nodes generally takes severa=
l months. <a href=3D"https://bitnodes.earn.com/dashboard/?days=3D365" targe=
t=3D"_blank">https://bitnodes.earn.com/dashboard/?days=3D365</a> shows that=
 although v0.18 was released in May 2019, there are still several hundred r=
eachable nodes on V0.17, V0.16, V0.15 and earlier software. Software that c=
urrently use REJECT messages from public nodes for troubleshooting issues t=
herefore have plenty of time to transition to one of the methods listed by =
Marco in the email above.<br></div><div><br></div>John<div><br><div class=
=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Tue, Mar 5, 2019 =
at 10:28 PM Marco Falke via bitcoin-dev &lt;<a href=3D"mailto:bitcoin-dev@l=
ists.linuxfoundation.org" target=3D"_blank">bitcoin-dev@lists.linuxfoundati=
on.org</a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"m=
argin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left=
:1ex">Bitcoin Core may send &quot;reject&quot; messages as response to &quo=
t;tx&quot;, &quot;block&quot; or<br>
&quot;version&quot; messages from a network peer when the message could not=
 be accepted.<br>
<br>
This feature is toggled by the `-enablebip61` command line option and has b=
een<br>
disabled by default since Bitcoin Core version 0.18.0 (not yet released as =
of<br>
time of writing). Nodes on the network can not generally be trusted to send=
<br>
valid (&quot;reject&quot;) messages, so this should only ever be used when =
connected to a<br>
trusted node. At this time, I am not aware of any software that requires th=
is<br>
feature, and I would like to remove if from Bitcoin Core to make the codeba=
se<br>
slimmer, easier to understand and maintain. Let us know if your application=
<br>
relies on this feature and you can not use any of the recommended alternati=
ves:<br>
<br>
* Testing or debugging of implementations of the Bitcoin P2P network protoc=
ol<br>
=C2=A0 should be done by inspecting the log messages that are produced by a=
 recent<br>
=C2=A0 version of Bitcoin Core. Bitcoin Core logs debug messages<br>
=C2=A0 (`-debug=3D&lt;category&gt;`) to a stream (`-printtoconsole`) or to =
a file<br>
=C2=A0 (`-debuglogfile=3D&lt;debug.log&gt;`).<br>
<br>
* Testing the validity of a block can be achieved by specific RPCs:<br>
=C2=A0 - `submitblock`<br>
=C2=A0 - `getblocktemplate` with `&#39;mode&#39;` set to `&#39;proposal&#39=
;` for blocks with<br>
=C2=A0 =C2=A0 potentially invalid POW<br>
<br>
* Testing the validity of a transaction can be achieved by specific RPCs:<b=
r>
=C2=A0 - `sendrawtransaction`<br>
=C2=A0 - `testmempoolaccept`<br>
<br>
* Wallets should not use the absence of &quot;reject&quot; messages to indi=
cate a<br>
=C2=A0 transaction has propagated the network, nor should wallets use &quot=
;reject&quot;<br>
=C2=A0 messages to set transaction fees. Wallets should rather use fee esti=
mation<br>
=C2=A0 to determine transaction fees and set replace-by-fee if desired. Thu=
s, they<br>
=C2=A0 could wait until the transaction has confirmed (taking into account =
the fee<br>
=C2=A0 target they set (compare the RPC `estimatesmartfee`)) or listen for =
the<br>
=C2=A0 transaction announcement by other network peers to check for propaga=
tion.<br>
<br>
I propose to remove &quot;reject&quot; messages from Bitcoin Core 0.19.0 un=
less there are<br>
valid concerns about its removal.<br>
<br>
Marco<br>
_______________________________________________<br>
bitcoin-dev mailing list<br>
<a href=3D"mailto:bitcoin-dev@lists.linuxfoundation.org" target=3D"_blank">=
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>
</blockquote></div></div></div>
</blockquote></div></div>

--000000000000f9243e059535864b--