Removal of reject network messages from Bitcoin Core (BIP61)



Summary:

Bitcoin Core's "reject" messages are responses sent to network peers when a message could not be accepted. These messages are toggled by the "-enablebip61" command line option, and have been disabled by default since Bitcoin Core version 0.18.0. While nodes on the network cannot generally be trusted to send valid "reject" messages, Marco Falke suggests re-enabling them before 0.18. Reject messages cannot be replaced for debugging user problems unless RPC or bitcoind logfiles are made available via the P2P protocol, which is not recommended. The typical case is that a wallet logfile with reject messages is mailed, but the bitcoind logfile(s) of the node(s) that generated the reject message in the first place cannot be accessed, nor can their RPC interface. Testing or debugging of implementations of the Bitcoin P2P network protocol should be done by inspecting the log messages produced by a recent version of Bitcoin Core. Blocks and transactions can be tested for validity using specific RPCs such as "submitblock," "getblocktemplate," "sendrawtransaction," and "testmempoolaccept." Wallets should not use the absence of "reject" messages to indicate a transaction has propagated the network, nor should they use "reject" messages to set transaction fees. Instead, wallets should use fee estimation to determine transaction fees and set replace-by-fee if desired.


Updated on: 2023-06-13T17:16:05.795475+00:00