-
Notifications
You must be signed in to change notification settings - Fork 638
mempool: Add push-pull gossip protocol (CAT) #1472
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
Conversation
These are the results of some preliminary experiments run on a laptop using the e2e framework. For more thorough results we would still need to run these experiments with around 200 nodes in the cloud, as we do for the QA tests, probably also with a different network topology. Here, each experiment instance has:
Instances are defined by the permutation of transaction load rate (
For each We can see in the above graphs that:
|
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
but I must kindly ask that we backport this. It is badly needed. |
Agree. Thanks Jacob! Is there a specific app-chain team that is waiting on it? If so, my bad, I was not aware! Even more importantly, are Celestia mainnet nodes employing the CAT mempool? Our last chat with their team (Oct/Nov) we agreed we'd push CAT over the finish line if they give us the green light they will use it in their mainnet, and the Comet+Celestia teams will do complementary testing of CAT. But I have not re-checked since then so my info is very stale. We should get an update. cc @cmwaters |
Then deprecate 1971 in favor of present PR? Not sure 1971 still has anything worth keeping, let me know if so. cc @faddat BTW thanks for bringing the present PR up-to-date with |
Big thanks from me too. 😍 I'll gladly close the other. |
For the moment deprioritized in favor of #3297 |
Closes: #2027.
Relates to #1058.
The CAT (for Content-Addressable Transaction) pool is a gossip protocol for the mempool originally implemented by Celestia. CAT is a push-pull protocol in contrast to CometBFT's default push protocol.
The code in this PR was ported from Celestia's feature/cat branch. The original protocol is built on top of the priority mempool implementation (aka
v1
), which existed in CometBFT until v0.37. The current code was ported on top of CometBFT's default mempool implementation (CListMempool
), so we had to make to some changes to adapt it to the different underlying implementation.PR checklist
.changelog
(we use unclog to manage our changelog)docs/
orspec/
) and code comments