Skip to content

feat(geyser): add completed data set shred range to deshred txn#11748

Merged
sam0x17 merged 4 commits intoanza-xyz:masterfrom
leafaar:extend-deshred-type
Apr 7, 2026
Merged

feat(geyser): add completed data set shred range to deshred txn#11748
sam0x17 merged 4 commits intoanza-xyz:masterfrom
leafaar:extend-deshred-type

Conversation

@leafaar
Copy link
Copy Markdown

@leafaar leafaar commented Apr 3, 2026

Problem

Deshred transaction notifications currently do not identify which completed data set produced a transaction. Plugins can receive transactions before execution, but they cannot associate them with the contiguous shred range that reconstructed the underlying Vec<Entry>.

A block-wide transaction index would be misleading here, since a completed data set can contain multiple entries and multiple transactions, and completed data sets for the same slot may be observed out of order.

Summary of Changes

  • Add completed-data-set shred range metadata to deshred transaction notifications:
    completed_data_set_starting_shred_index and completed_data_set_ending_shred_index_exclusive
  • Thread the completed-data-set shred range through CompletedDataSetsService, DeshredTransactionNotifier, and the geyser plugin manager
  • Add ReplicaDeshredTransactionInfoV2 and emit ReplicaDeshredTransactionInfoVersions::V0_0_2 instead of overloading the existing payload
  • Expand the documentation to clearly define a completed data set as a contiguous range of data shreds whose combined payload deserializes to a single Vec<Entry>
  • Add targeted test coverage for deshred notification forwarding and for blockstore-backed multi-entry, multi-shred completed data sets

Fixes #

@mergify mergify Bot requested a review from a team April 3, 2026 18:10
@sam0x17
Copy link
Copy Markdown

sam0x17 commented Apr 3, 2026

A few things to flag:

  1. V0_0_1 is now dead code. The notifier unconditionally emits V0_0_2. Since V0_0_1 hasn't shipped in a release yet, consider just removing ReplicaDeshredTransactionInfo (V1) and the V0_0_1 variant entirely rather than leaving dead code in the interface. If it has shipped, then plugins need guidance on handling both variants.

  2. V2 was a missed opportunity to include slot in the struct. The previous review requested adding slot to the info struct (item number 4). This new V2 struct would have been the natural place to do it — it still passes slot only as a separate method parameter.

  3. The trait parameter list is getting long (7 params). notify_deshred_transaction(&self, slot, start_index, end_index_exclusive, signature, is_vote, transaction, loaded_addresses) — consider bundling into a notification struct to keep the interface clean, especially since it's already grown twice.

@sam0x17
Copy link
Copy Markdown

sam0x17 commented Apr 3, 2026

ah nvm, there are already release tags, we will just keep it how you did it 👍🏻

@sam0x17 sam0x17 marked this pull request as ready for review April 4, 2026 00:13
@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Apr 4, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.2%. Comparing base (c7c1f20) to head (9cbddaf).

Additional details and impacted files
@@            Coverage Diff            @@
##           master   #11748     +/-   ##
=========================================
- Coverage    83.2%    83.2%   -0.1%     
=========================================
  Files         859      859             
  Lines      322230   322338    +108     
=========================================
+ Hits       268144   268222     +78     
- Misses      54086    54116     +30     
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@sam0x17
Copy link
Copy Markdown

sam0x17 commented Apr 6, 2026

@leafaar it's complaining about coverage again

@leafaar
Copy link
Copy Markdown
Author

leafaar commented Apr 6, 2026

On it!

@leafaar leafaar force-pushed the extend-deshred-type branch from 91d964f to dbab45a Compare April 6, 2026 16:27
@sam0x17 sam0x17 enabled auto-merge April 7, 2026 18:55
@sam0x17 sam0x17 added this pull request to the merge queue Apr 7, 2026
Merged via the queue into anza-xyz:master with commit 2ccb6af Apr 7, 2026
49 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants