N
N
Nicknames2019-08-21 13:11:49
blockchain
Nicknames, 2019-08-21 13:11:49

What to do with incorrect mempool in tendermint?

I have 2 tendermint nodes/validators, also using Cosmos-SDK.
The problem is that when I send a lot of transactions to different REST servers (each node has its own), the mempool is clogged and blocks are closed extremely rarely, and not every +-X seconds as it should be. Another problem is that if the mempool becomes full, then the nodes hang and under certain circumstances the mempool of one node is released, but the second one is not. Thus, transactions from REST of one validator get into blocks, and transactions from the second one hang in the filled mempool.
Tests were carried out:
When sending 20k transactions, the mempool is clogged, and then after 20 seconds all transactions go into one block. Expected result - all transactions are scattered into several blocks that are closed at the same interval.
When sending 300k transactions, the mempool clogged up to 280k (another 20k ended up in a block that closed at the very beginning), and then within 20 minutes all transactions from the mempool went to the blockchain in 3 blocks (~123k, ~123k, ~25k), as expected that these 300k transactions will be placed in blocks that close in a uniform amount of time.
I created an issue on the github: https://github.com/tendermint/tendermint/issues/3905
Here you can see the graphs and a more detailed description of the problem.

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question