Here we describe configuration options around mempool. For the purposes of this document, they are described in a toml file, but some of them can also be passed in as environmental variables.
Recheck determines if the mempool rechecks all pending transactions after a block was committed. Once a block is committed, the mempool removes all valid transactions that were successfully included in the block.
recheck is true, then it will rerun CheckTx on
all remaining transactions with the new block state.
Determines whether this node gossips any valid transactions that arrive in mempool. Default is to gossip anything that passes checktx. If this is disabled, transactions are not gossiped, but instead stored locally and added to the next block this node is the proposer.
This defines the directory where mempool writes the write-ahead logs. These files can be used to reload unbroadcasted transactions if the node crashes.
If the directory passed in is an absolute path, the wal file is
created there. If the directory is a relative path, the path is
appended to home directory of the tendermint process to
generate an absolute path to the wal directory
$HOME/.tendermint or set via
Size defines the total amount of transactions stored in the mempool. Default is
5_000 but can be adjusted to any number you would like. The higher the size the more strain on the node.
# Max Transactions Bytes
Max transactions bytes defines the total size of all the transactions in the mempool. Default is 1 GB.
# Cache size
Cache size determines the size of the cache holding transactions we have already seen. The cache exists to avoid running
checktx each time we receive a transaction.
# Keep Invalid Transactions In Cache
Keep invalid transactions in cache determines wether a transaction in the cache, which is invalid, should be evicted. An invalid transaction here may mean that the transaction may rely on a different tx that has not been included in a block.
# Max Transaction Bytes
Max transaction bytes defines the max size a transaction can be for your node. If you would like your node to only keep track of smaller transactions this field would need to be changed. Default is 1MB.
# Max Batch Bytes
Max batch bytes defines the amount of bytes the node will send to a peer. Default is 0.
Note: Unused due to https://github.com/tendermint/tendermint/issues/5796