Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mempool: Transactions getting stuck #1637

Open
thanethomson opened this issue Nov 16, 2023 · 4 comments
Open

mempool: Transactions getting stuck #1637

thanethomson opened this issue Nov 16, 2023 · 4 comments
Labels
enhancement New feature or request mempool

Comments

@thanethomson
Copy link
Contributor

In cases where an application does not correctly handle replay protection, transactions can get stuck in the mempool as per tendermint/tendermint#3865.

There have been discussions over the years about how to handle this sort of problem more intelligently. Our team cannot control how applications are built, but we can control whether we implement some kind of fallback mechanism to deal with such cases.

One suggestion has been to implement a TTL (time-to-live) parameter for transactions:

  • A mempool configuration parameter that determines the lifespan of a particular transaction from the time that it is entered into the mempool.
  • After that TTL period expires for that transaction, that transaction is removed from the mempool by Comet.
  • The removal of that transaction is kept track of for some period of time in case another peer gossips it to our node again, in which case we opt not to add it to our mempool.

Definition of done

When we've implemented at least one mechanism by which we can eliminate the possibility of transactions getting stuck in the mempool.

@thanethomson thanethomson added enhancement New feature or request mempool labels Nov 16, 2023
@taariq
Copy link

taariq commented Nov 29, 2023

Not sure if our ticket here is related, but adding for us to keep track: #1623

@faddat
Copy link
Contributor

faddat commented Dec 27, 2023

It's literally in my report

https://docs.google.com/document/d/1oCjsVYMaV77etxOEbDxh58vkAQaXf7RAkhXvF_8GYis/edit?usp=drivesdk

You guys wanted to ban me from contributing.

@hvanz
Copy link
Member

hvanz commented Jan 26, 2024

Another reason to implement TTL is to get rid of the config keep-invalid-txs-in-cache. Quoting tendermint/tendermint#5813 (comment):

this is a temporary config option. The more correct solution would be to add a TTL to each transaction (i.e. CheckTx may return a TTL in ResponseCheckTx).

@faddat
Copy link
Contributor

faddat commented Feb 10, 2024

I really like that idea

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request mempool
Projects
None yet
Development

No branches or pull requests

4 participants