1
0
mirror of https://github.com/fluencelabs/tendermint synced 2025-07-26 09:41:57 +00:00
Files
.circleci
.github
DOCKER
abci
behaviour
benchmarks
blockchain
cmd
config
consensus
crypto
docs
.vuepress
app-dev
architecture
imgs
interviews
introduction
networks
research
spec
abci
blockchain
consensus
p2p
reactors
block_sync
consensus
evidence
mempool
concurrency.md
config.md
functionality.md
messages.md
reactor.md
pex
scripts
software
README.md
tendermint-core
tools
.python-version
.textlintrc.json
DOCS_README.md
README.md
stop-words.txt
tendermint-core-image.jpg
evidence
libs
lite
mempool
mock
networks
node
p2p
privval
proxy
rpc
scripts
state
test
tools
types
version
.editorconfig
.gitignore
.golangci.yml
CHANGELOG.md
CHANGELOG_PENDING.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md
LICENSE
Makefile
PHILOSOPHY.md
README.md
ROADMAP.md
SECURITY.md
UPGRADING.md
Vagrantfile
appveyor.yml
codecov.yml
docker-compose.yml
go.mod
go.sum
tendermint/docs/spec/reactors/mempool/messages.md

62 lines
1.4 KiB
Markdown
Raw Normal View History

2018-01-04 18:12:48 +01:00
# 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/`):
2018-05-23 10:01:32 -04:00
2018-01-04 18:12:48 +01:00
```json
{
"id": "",
"jsonrpc": "2.0",
"method": "broadcast_sync",
"params": {
2018-01-04 18:12:48 +01:00
"tx": "F012A4BC68..."
}
2018-01-04 18:12:48 +01:00
}
```
Response:
2018-05-23 10:01:32 -04:00
2018-01-04 18:12:48 +01:00
```json
{
"error": "",
"result": {
"hash": "E39AAB7A537ABAA237831742DCE1117F187C3C52",
"log": "",
"data": "",
"code": 0
},
"id": "",
"jsonrpc": "2.0"
2018-01-04 18:12:48 +01:00
}
```