<oembed><type>rich</type><version>1.0</version><author_name>npub1qspcss06rhl7lwrhzrnv5k7w7er32htkgds2d50802eguajx4p5sp9jjz5</author_name><author_url>https://nostr.ae/npub1qspcss06rhl7lwrhzrnv5k7w7er32htkgds2d50802eguajx4p5sp9jjz5</author_url><provider_name>njump</provider_name><provider_url>https://nostr.ae</provider_url><html>📅 Original date posted:2019-03-05&#xA;📝 Original message:Bitcoin Core may send &#34;reject&#34; messages as response to &#34;tx&#34;, &#34;block&#34; or&#xA;&#34;version&#34; messages from a network peer when the message could not be accepted.&#xA;&#xA;This feature is toggled by the `-enablebip61` command line option and has been&#xA;disabled by default since Bitcoin Core version 0.18.0 (not yet released as of&#xA;time of writing). Nodes on the network can not generally be trusted to send&#xA;valid (&#34;reject&#34;) messages, so this should only ever be used when connected to a&#xA;trusted node. At this time, I am not aware of any software that requires this&#xA;feature, and I would like to remove if from Bitcoin Core to make the codebase&#xA;slimmer, easier to understand and maintain. Let us know if your application&#xA;relies on this feature and you can not use any of the recommended alternatives:&#xA;&#xA;* Testing or debugging of implementations of the Bitcoin P2P network protocol&#xA;  should be done by inspecting the log messages that are produced by a recent&#xA;  version of Bitcoin Core. Bitcoin Core logs debug messages&#xA;  (`-debug=&lt;category&gt;`) to a stream (`-printtoconsole`) or to a file&#xA;  (`-debuglogfile=&lt;debug.log&gt;`).&#xA;&#xA;* Testing the validity of a block can be achieved by specific RPCs:&#xA;  - `submitblock`&#xA;  - `getblocktemplate` with `&#39;mode&#39;` set to `&#39;proposal&#39;` for blocks with&#xA;    potentially invalid POW&#xA;&#xA;* Testing the validity of a transaction can be achieved by specific RPCs:&#xA;  - `sendrawtransaction`&#xA;  - `testmempoolaccept`&#xA;&#xA;* Wallets should not use the absence of &#34;reject&#34; messages to indicate a&#xA;  transaction has propagated the network, nor should wallets use &#34;reject&#34;&#xA;  messages to set transaction fees. Wallets should rather use fee estimation&#xA;  to determine transaction fees and set replace-by-fee if desired. Thus, they&#xA;  could wait until the transaction has confirmed (taking into account the fee&#xA;  target they set (compare the RPC `estimatesmartfee`)) or listen for the&#xA;  transaction announcement by other network peers to check for propagation.&#xA;&#xA;I propose to remove &#34;reject&#34; messages from Bitcoin Core 0.19.0 unless there are&#xA;valid concerns about its removal.&#xA;&#xA;Marco</html></oembed>