-
Notifications
You must be signed in to change notification settings - Fork 549
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
feat(mempool/dog): optimize sending of ResetRoute #4766
base: main
Are you sure you want to change the base?
Conversation
I suppose @jmalicevic is concerned as she opened the issue and @hvanz as he has been pinged in. |
Hi @najeal, I am implementing the DOG algorithm in Rust and came across the same issue. I had the same idea as you for the solution. However, when implementing it, I realized an interesting point. Suppose the following topology:
I'm sorry for my poor drawing skills, but here are the edges: (A, C), (A, D), (B, C), (B, D), (C, E), (D, E). In this situation, we can imagine node E receiving duplicates for transactions originating from A and B. Now, suppose node E sends two have_tx messages (for both A's and B's transactions) to the same node: either C or D. If we follow the HashSet solution ( So, I suggest keeping track of all the have_tx sent, not just the peers. Something like Let me know what you think about this approach! |
Hi @BastienFaivre ! Sorry for the delay ! |
Thank you for your response, @najeal! I now see better why we reasoned differently. I think the meaning of an Therefore, Let me know if I missed one of your points! |
@BastienFaivre in CometBFT, the SenderNode will also continue to delivers some messages when specific route has not been restricted. |
Closes #4617
PR checklist
.changelog
(we use unclog to manage our changelog)docs/
orspec/
) and code comments