-
Notifications
You must be signed in to change notification settings - Fork 4.3k
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
ledger-tool: read bigtable entries #34266
Conversation
230a5a5
to
2396b01
Compare
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## master #34266 +/- ##
=========================================
- Coverage 81.9% 81.9% -0.1%
=========================================
Files 819 819
Lines 219817 219481 -336
=========================================
- Hits 180111 179793 -318
+ Misses 39706 39688 -18 |
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, also ❤️ for json support. Certainly out of scope for this PR, but would be cool to bring json support to solana-ledger-tool slot -vv
as well.
The above probably becomes easier if we end up doing the work to coalesce the blocks like you said.
We could add a flag or option to solana-ledger-tool bigtable block that coalesces the block and entry data to match solana-ledger-tool slot -vv more exactly, if that seems useful in the future.
I could definitely see value in this. One particular instance is if I want to replay a specific slot from 2 days ago (debugging consensus divergance, examining blocks when replay times spiked, etc). Given that most nodes only retain a day, the current workflow is to download the archive (100's of GBs) for the entire epoch from the Google bucket, even if I only need 100 slots out of those 432k.
With both transaction and entry info, we could download specific slots, and then re-shred the entries. This could greatly speed up some debugging workflows
2396b01
to
a6e9ed3
Compare
I rebased to pick up e425c1a locally. Otherwise, the only changes are the 2 new commits. |
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
Agreed! I'll add it to the list.
Cool, yeah, I think it's very do-able. Maybe we can chat a little bit later on about what output format(s) would be most helpful. Mirroring |
Problem
#34099 uploads entries to bigtable, but there is no plumbing to read this data.
Summary of Changes
Add
solana-ledger-tool bigtable entries
subcommand. This dumps the entry info for a single block, emulating the format of the entry lines insolana-ledger-tool slot -vv
(output_entry()
). However, the new command also supports--output json
.We could add a flag or option to
solana-ledger-tool bigtable block
that coalesces the block and entry data to matchsolana-ledger-tool slot -vv
more exactly, if that seems useful in the future.