<p>Because it is a waste of bandwidth to convey information that your peers should be calculating themselves anyways. It is also a bad idea to rely on peer's calculations of whether a transaction should be rejected or not because they could be lying to you.</p>

CC BY-SA 3.0
2016-06-07T18:47:11.693Z
2016-06-07T18:47:11.693Z
k kurokawa
<p>From the perspective of a full node participant in the network, why is it a bad idea to convey to a peer that a transaction has been rejected because its either a conflict transaction/high fee transaction or a transaction which already known to it? </p>

<p>I noticed that in the Bitcoin Core source code that REJECT_CONFLICT is set at 0x102 which is greater than REJECT_INTERNAL.</p>

<pre><code>if (state.GetRejectCode() &lt; REJECT_INTERNAL) // Never send AcceptToMemoryPool's internal codes over P2P
    pfrom-&gt;PushMessage(NetMsgType::REJECT, strCommand, (unsigned char)state.GetRejectCode(),
                       state.GetRejectReason().substr(0, MAX_REJECT_MESSAGE_LENGTH), inv.hash);
</code></pre>

<p>Bitcoin Core code excerpt from <a href="https://github.com/bitcoin/bitcoin/blob/22e0b35676230961aeb848a4f5c6b007cb8a43c9/src/main.cpp#L5142" rel="nofollow">src/main.cpp</a>.</p>

<mempool>
Why does Bitcoin Core not produce a Reject message for Conflict TXs?
rny
# Why does Bitcoin Core not produce a Reject message for Conflict TXs?

(Asked by: username_0 on 2016-06-03)

From the perspective of a full node participant in the network, why is it a bad idea to convey to a peer that a transaction has been rejected because its either a conflict transaction/high fee transaction or a transaction which already known to it?

I noticed that in the Bitcoin Core source code that REJECT\_CONFLICT is set at 0x102 which is greater than REJECT\_INTERNAL.

```
if (state.GetRejectCode() < REJECT_INTERNAL) // Never send AcceptToMemoryPool's internal codes over P2P
    pfrom->PushMessage(NetMsgType::REJECT, strCommand, (unsigned char)state.GetRejectCode(),
                       state.GetRejectReason().substr(0, MAX_REJECT_MESSAGE_LENGTH), inv.hash);

```

Bitcoin Core code excerpt from [src/main.cpp](https://github.com/bitcoin/bitcoin/blob/22e0b35676230961aeb848a4f5c6b007cb8a43c9/src/main.cpp#L5142).

**Tags:** mempool


---

## 1 answers

### Answer by username_1 on 2016-06-07. Score: 2

Because it is a waste of bandwidth to convey information that your peers should be calculating themselves anyways. It is also a bad idea to rely on peer's calculations of whether a transaction should be rejected or not because they could be lying to you.


---

