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

Bench-tps depends too much on forwarding and floods the network #3149

Closed
3 of 5 tasks
garious opened this issue Mar 6, 2019 · 5 comments
Closed
3 of 5 tasks

Bench-tps depends too much on forwarding and floods the network #3149

garious opened this issue Mar 6, 2019 · 5 comments
Assignees

Comments

@garious
Copy link
Contributor

garious commented Mar 6, 2019

Problem

Client code doesn't know what node will be the leader by the time its transaction arrives and so depends on validator forwarding to get the transactions to the right place. To make matters a little worse, the validator isn't much smarter and assumes zero network latency. That can cause infinite forwarding as each transaction arrives a hair too late and needs to be forwarded again.

Proposed Solution

  • Filter out late transactions using the transactions HashQueue and the transaction's recent_blockhash
  • Add counters so we can see how often we're missing those windows
  • Add logic to validators to acknowledge network latency when choosing to forward transactions
  • Add an RPC API endpoint such that the client can get more information regarding where it should send its transactions
  • After a bit of discussion, split the above into separate tickets.
@pgarg66
Copy link
Contributor

pgarg66 commented May 20, 2019

#4266 #4249 #4199

@pgarg66
Copy link
Contributor

pgarg66 commented May 20, 2019

Most of the items discussed in this issue are done. The outstanding item is
Add an RPC API endpoint such that the client can get more information regarding where it should send its transactions

Wondering if we should indeed be doing this, given the frequency of the leader rotation. The client may not catch the current leader with certainty.

@pgarg66
Copy link
Contributor

pgarg66 commented May 20, 2019

@garious any thoughts about my previous comment?

@garious
Copy link
Contributor Author

garious commented May 20, 2019

@pgarg66 Sounds great! Yes, agreed on punting on the RPC endpoint suggestion. That idea predates the more ambitious (and higher TPS!) plan of sending transactions to the nearest validator, letting it batch transactions, and then sending large batches to the leader.

@pgarg66
Copy link
Contributor

pgarg66 commented May 20, 2019

Thanks @garious , I'll close the issue then.

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

4 participants