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">>=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 <<a href=3D"mailto:john@johnnewbery.com">john@joh= nnewbery.com</a>> 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'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 <<a href=3D"mailto:bitcoin-dev@l= ists.linuxfoundation.org" target=3D"_blank">bitcoin-dev@lists.linuxfoundati= on.org</a>> 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 "reject" messages as response to &quo= t;tx", "block" or<br> "version" 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 ("reject") 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<category>`) to a stream (`-printtoconsole`) or to = a file<br> =C2=A0 (`-debuglogfile=3D<debug.log>`).<br> <br> * Testing the validity of a block can be achieved by specific RPCs:<br> =C2=A0 - `submitblock`<br> =C2=A0 - `getblocktemplate` with `'mode'` set to `'proposal'= ;` 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 "reject" messages to indi= cate a<br> =C2=A0 transaction has propagated the network, nor should wallets use "= ;reject"<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 "reject" 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--