Add Geyser entry interfaces#30872
Conversation
|
This can also be solved by connecting to the validator's blockstore as a secondary client, as implemented in https://github.com/firedancer-io/radiance |
2fcf240 to
f84a3d8
Compare
Codecov Report
@@ Coverage Diff @@
## master #30872 +/- ##
=========================================
- Coverage 81.5% 81.5% -0.1%
=========================================
Files 726 726
Lines 204742 204753 +11
=========================================
- Hits 167001 166987 -14
- Misses 37741 37766 +25 |
| /// `solana_entry::entry::next_hash()` | ||
| pub hash: &'a [u8], | ||
| /// The number of executed transactions in the Entry | ||
| pub executed_transaction_count: u64, |
There was a problem hiding this comment.
I’m curious why the “executed_” prefix was added here, as Transaction execution is not really a concept at the Entry level.
There was a problem hiding this comment.
Tbh, I was mirroring the fields in the block notification. I agree that execution is not something that an Entry is really aware of, but on the other hand, it's not actually incorrect, as only executed transactions get recorded.
I don't feel strongly; happy to remove executed here if you think it's more clear
|
what do you think of adding Shred notification support in Geyser? If some plugin subscriber is interested in shred subscriptions, this would particularly help in light clients. |
Problem
Various users, including RPC providers, would like to be able to cryptographically verify that a block stored in long-term storage (either via Bigtable upload or streamed via Geyser) contains complete and correct transaction data. There is currently no way to do this, because the transactions get flattened and the Entry data is not included in the stored copy.
This PR is the first toward this project to address the Geyser side of the issue.
Summary of Changes
Add basic Entry interface elements to solana-geyser-plugin-interface
The entry notification is not actually sent anywhere yet.