-
Notifications
You must be signed in to change notification settings - Fork 254
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 get_blocks and get_slot methods to bench-tps-client #94
Add get_blocks and get_slot methods to bench-tps-client #94
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #94 +/- ##
=========================================
- Coverage 81.8% 81.8% -0.1%
=========================================
Files 838 838
Lines 226223 226223
=========================================
- Hits 185240 185177 -63
- Misses 40983 41046 +63 |
a2703f1
to
5287558
Compare
@@ -1,6 +1,7 @@ | |||
use { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Plan is still for ThinClient to be deprecated then deleted, right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, been deprecated in PR: #35365. Fully removing it from other parts is WIP
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code looks good to me.
Design wise, I'm debating if bench-tps is the right tool for doing this. I can convince myself that verifying transaction results is a reasonable extension of the existing tool.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Questions about the commitment level are quite reasonable.
This change is to support more metrics in bench-tps.
Specifically, Kirill is adding block fetching code here: #92
As bench-tps is supposed to be a major source of transactions, while it is running, fetching whole blocks and getting transaction stats this way it probably the most efficient approach.
There is a short summary here: https://github.com/anza-xyz/agave/pull/92/files#diff-1d0a43d64af632a7d6ecf76ff095dec3b9a6243758fb5818752e26f4c5383611R1-R2
But it would not hurt to provide a more extensive reasoning in the same or some other comment, relevant to the added service :P
For fetching blocks, I think, we want confirmed commitment level. Latency is not important, and we would not want to deal with forks.
We may want to add some fork related stats in there at a later point.
Alternatively, I could have implemented a standalone tool which goes over all the provided signatures in the give span of blocks and does the same. This approach will make bench-tps runs execution to take much longer time and will lead to slightly more complex setup (create signature file, read it, what if something went wrong, etc) |
5287558
to
318a67b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
* add get_block(s)/slot methods to BenchTpsClient * Update Cargo.lock * add commitment level for get_slot/blocks
Problem
For the analysis of the confirmed transactions implemented in #92
BenchTpsClient
needs some additional methods.Summary of Changes
Add
get_block
,get_blocks
andget_slot
methods.