You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

22 lines
981 B

  1. # Mempool Reactor
  2. ## Channels
  3. See [this issue](https://github.com/tendermint/tendermint/issues/1503)
  4. Mempool maintains a cache of the last 10000 transactions to prevent
  5. replaying old transactions (plus transactions coming from other
  6. validators, who are continually exchanging transactions). Read [Replay
  7. Protection](https://github.com/tendermint/tendermint/blob/master/docs/app-dev/app-development.md#replay-protection)
  8. for details.
  9. Sending incorrectly encoded data or data exceeding `maxMsgSize` will result
  10. in stopping the peer.
  11. The mempool will not send a tx back to any peer which it received it from.
  12. The reactor assigns an `uint16` number for each peer and maintains a map from
  13. p2p.ID to `uint16`. Each mempool transaction carries a list of all the senders
  14. (`[]uint16`). The list is updated every time mempool receives a transaction it
  15. is already seen. `uint16` assumes that a node will never have over 65535 active
  16. peers (0 is reserved for unknown source - e.g. RPC).