Mempool Reactor
Channels
See this issue
Mempool maintains a cache of the last 10000 transactions to prevent replaying old transactions (plus transactions coming from other validators, who are continually exchanging transactions). Read Replay Protection for details.
Sending incorrectly encoded data or data exceeding maxMsgSize
will result in stopping the peer.
The mempool will not send a tx back to any peer which it received it from.
The reactor assigns an uint16
number for each peer and maintains a map from p2p.ID to uint16
. Each mempool transaction carries a list of all the senders ([]uint16
). The list is updated every time mempool receives a transaction it is already seen. uint16
assumes that a node will never have over 65535 active peers (0 is reserved for unknown source - e.g. RPC).