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

Add support of tpu-client-next to validator #3454

Open
5 of 10 tasks
KirillLykov opened this issue Nov 4, 2024 · 3 comments
Open
5 of 10 tasks

Add support of tpu-client-next to validator #3454

KirillLykov opened this issue Nov 4, 2024 · 3 comments
Assignees

Comments

@KirillLykov
Copy link

KirillLykov commented Nov 4, 2024

Problem

Current quic client implementation ConnectionCache has some disadvantages:

  • creates fragmented traffic: if you send tx1, tx2 which are split into chunks c1_1, c1_2, c2_1, c2_2 than ConnectionCache doesn't guarantee that they will be in the order.
  • uses internal tokio queue of futures instead of explicit channel. So when you call connection_cache.send what happens it puts future to the tokio internal queue. If there is a flow control on server side slowing down connection, this futures queue will grow on client side. There is not control over it.
  • need to warm-up cache by sending empty packets in ConnectionCache. Instead, here we try opening connections to the next leaders before we use them.
  • No way to cancel ConnectionCache gracefully.
  • Uses unnecessary synchronization code internally, slowing down sending and creating not uniform flow in case of heavy load
  • creates internally tokio runtime instead of taking one from outside.

Internally validator uses quic client for two components:

  1. Forwarder
  2. SendTransactionService

This issue to is track the work on adding support of new network crate tpu-client-next to the these components.
When finished, it should be possible to choose between two client codes.

Proposed Solution

@KirillLykov KirillLykov self-assigned this Nov 4, 2024
@KirillLykov
Copy link
Author

Address #3515 (comment)

@KirillLykov
Copy link
Author

Address #3515 (comment) (outside of backporting)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant