Don't assume that all transaction reaped from the mempool will be accepted by the application
Currently, tendermint will reap transactions on the mempool based on the MaxBytes consensus param because it assumes that all the transactions that are reaped will make it in the block. Since this assumption is not true, we should instead reap more than MaxBytes and rely on the application to create proposals that are small enough.
edit: per discussion below this issue is blocked by #1241 1241
first before we move forward with a solution to this issue we should gather more data on roughly how large of a problem this is. We first need a metric determining how efficient this process is
We could track as a metric how many transactions are rejected by the application