Mempool Messages
P2P Messages
There is currently only one message that Mempool broadcasts and receives over the p2p gossip network (via the reactor): TxMessage
// 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 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/
):
{
"id": "",
"jsonrpc": "2.0",
"method": "broadcast_sync",
"params": {
"tx": "F012A4BC68..."
}
}
Response:
{
"error": "",
"result": {
"hash": "E39AAB7A537ABAA237831742DCE1117F187C3C52",
"log": "",
"data": "",
"code": 0
},
"id": "",
"jsonrpc": "2.0"
}