Author: Mike Hearn 2013-10-27 14:50:37
Published on: 2013-10-27T14:50:37+00:00
Bitcoinj, a library used for Bitcoin transactions, has been receiving consistent bug reports where transactions fail to propagate. This is due to the library selecting one peer to send the transaction to and waiting for it to propagate across the network. If that selected peer refuses the transaction, the propagation doesn't occur, and there's currently no timeout to make it retry with another node. However, Luke-Jr suggests that the real bug is that BitcoinJ relies on good behavior from other nodes and advises that handling a peer that doesn't relay a transaction should be expected behavior. Although these nodes are more likely to be broken than malicious, there is no way to diagnose why they are dropping a transaction without explicit error handling. Adding timeouts and other measures may not help if the transactions are being rejected due to a change in network rules.
Updated on: 2023-06-07T18:41:44.267273+00:00