Response: Reject ("reject")
Notifies peer that a received message is invalid.
Message Format
| Field | Length | Format | Description |
|---|---|---|---|
| rejected message type | variable | variable length string | The command string of the message that is being rejected (e.g. "tx"). |
| rejection code | 1 byte | rejection code | A code indicating why the message was rejected. |
| rejection reason* | variable | variable length string | A description of why the message was rejected. |
| rejection data | variable | rejection code specific | Optional extra data provided by rejection codes. For example, those that reject specific objects. Currently, all rejection codes that use this field fill it with the hash of the object being rejected, such as the transaction ID or block header hash, in which case the field is 32 bytes. |
* rejection reason is a string providing a human language explanation of the reason the message was rejected. This string is subject to change so client software SHOULD NOT use it programmatically. Bitcoin Cash Node truncates it to at most 111 bytes.
Sending reject messages is optional (BIP-61); nodes SHOULD NOT rely on receiving one. Bitcoin Cash Node sends them by default (-enablebip61).
Rejection Codes
| Name | Value | Response To | Description |
|---|---|---|---|
| REJECT_MALFORMED | 0x01 | any | Message cannot be deserialized. |
| REJECT_INVALID | 0x10 | BLOCK, TX, FILTERSIZEXTHIN | Block or transaction is invalid, or xthin filter size is too small |
| REJECT_OBSOLETE | 0x11 | VERSION | This node no longer supports your client protocol version |
| REJECT_DUPLICATE | 0x12 | VERSION, TX | Duplicate version message, or transaction already in or conflicting with the mempool. |
| REJECT_NONSTANDARD | 0x40 | VERSION, TX | Peer does not offer the expected services (VERSION), or transaction is non-standard, or not final as per BIP68. |
| REJECT_DUST | 0x41 | TX | Transaction has an output that is too small. Not used by Bitcoin Cash Node, which rejects dust outputs with REJECT_NONSTANDARD (reason "dust"). |
| REJECT_INSUFFICIENTFEE | 0x42 | TX | Transaction does not pay enough in fees to be relayed. |
| REJECT_CHECKPOINT | 0x43 | BLOCK | Block conflicts with a checkpoint, or forks from the main chain before the last checkpoint. |