- # Mempool Messages
-
- ## P2P Messages
-
- There is currently only one message that Mempool broadcasts
- and receives over the p2p gossip network (via the reactor):
- `TxMessage`
-
- ```go
- // TxMessage is a MempoolMessage containing a transaction.
- type TxMessage struct {
- Tx types.Tx
- }
- ```
-
- TxMessage is go-wire encoded and prepended with `0x1` as a
- "type byte". This is followed by a go-wire encoded byte-slice.
- Prefix of 40=0x28 byte tx is: `0x010128...` followed by
- the actual 40-byte tx. Prefix of 350=0x015e byte tx is:
- `0x0102015e...` followed by the actual 350 byte tx.
-
- (Please see the [go-wire repo](https://github.com/tendermint/go-wire#an-interface-example) for more information)
-
- ## RPC Messages
-
- Mempool exposes `CheckTx([]byte)` over the RPC interface.
-
- It can be posted via `broadcast_commit`, `broadcast_sync` or
- `broadcast_async`. They all parse a message with one argument,
- `"tx": "HEX_ENCODED_BINARY"` and differ in only how long they
- wait before returning (sync makes sure CheckTx passes, commit
- makes sure it was included in a signed block).
-
- Request (`POST http://gaia.zone:26657/`):
-
- ```json
- {
- "id": "",
- "jsonrpc": "2.0",
- "method": "broadcast_sync",
- "params": {
- "tx": "F012A4BC68..."
- }
- }
- ```
-
- Response:
-
- ```json
- {
- "error": "",
- "result": {
- "hash": "E39AAB7A537ABAA237831742DCE1117F187C3C52",
- "log": "",
- "data": "",
- "code": 0
- },
- "id": "",
- "jsonrpc": "2.0"
- }
- ```
|