Skip to content

V4.1 transition next#801

Merged
lvboudre merged 9 commits into
masterfrom
v4.1-transition-next
Jul 2, 2026
Merged

V4.1 transition next#801
lvboudre merged 9 commits into
masterfrom
v4.1-transition-next

Conversation

@lvboudre

@lvboudre lvboudre commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

No description provided.

leafaar and others added 8 commits June 18, 2026 14:25
Introduces `SubscribeDeshred`, a new RPC endpoint for subscribing to deshred
transactions. These are transactions received when entries are formed from
shreds, before execution occurs. At this stage, no `TransactionStatusMeta` is
available. Address lookup tables are resolved during deshred, making both
static and dynamically loaded account keys available for filtering
(`account_include`, `account_exclude`, `account_required`).

The new endpoint uses a separate `SubscribeUpdateDeshred` response type with
its own `FilteredUpdateDeshred` server-side encoding, keeping deshred streams
fully independent from the main `Subscribe` RPC.

On the plugin side, implements the `notify_deshred_transaction` hook from the
geyser plugin interface and adds configuration to enable these notifications.

Includes comprehensive filter tests for vote filtering, account include/exclude
with static and loaded (ALT) addresses, account required, and pong generation.
@lvboudre
lvboudre requested review from Ozodimgba, WilfredAlmeida, Copilot and leafaar and removed request for Ozodimgba July 2, 2026 15:36
@lvboudre
lvboudre requested a review from Synestraa July 2, 2026 15:36
Comment thread yellowstone-grpc-geyser/Cargo.toml Outdated
Comment thread CHANGELOG.md Outdated
Comment thread CHANGELOG.md

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the Yellowstone gRPC stack for the Solana/Agave 4.1 transition, adding a dedicated “deshred” (pre-execution) subscription stream and extending protobuf payloads to support new transaction/message features.

Changes:

  • Add a separate SubscribeDeshred server stream with its own filter path, message types, and broadcast channel (including metrics + tests).
  • Extend protobuf schemas/encoders for Transaction V1 message config (SIMD-0385) and new reward type (DeactivatedStake).
  • Migrate serialization and dependencies for the 4.1 transition (rand 0.10 API updates, move tx error (de)serialization to wincode, toolchain bump).

Reviewed changes

Copilot reviewed 24 out of 25 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
yellowstone-grpc-proto/src/cuckoo/filter.rs Update tests for rand 0.10 generation APIs.
yellowstone-grpc-proto/proto/solana-storage.proto Add TransactionConfig to messages and extend RewardType.
yellowstone-grpc-geyser/src/plugin/message.rs Introduce deshred transaction message structs and Message::DeshredTransaction.
yellowstone-grpc-geyser/src/plugin/filter/mod.rs Export DeshredFilter alongside existing filter types.
yellowstone-grpc-geyser/src/plugin/filter/message.rs Add server-side encoded FilteredUpdateDeshred* message types.
yellowstone-grpc-geyser/src/plugin/filter/limits.rs Add configurable limits for deshred transaction filters.
yellowstone-grpc-geyser/src/plugin/filter/filter.rs Implement DeshredFilter and deshred transaction filtering logic + tests.
yellowstone-grpc-geyser/src/plugin/entry.rs Wire a dedicated deshred broadcast channel into the plugin and enable notifications.
yellowstone-grpc-geyser/src/plugin/convert_to.rs Encode V1 message config; switch tx error serialization to wincode; map new reward type.
yellowstone-grpc-geyser/src/plugin/convert_from.rs Switch tx error deserialization to wincode; map new reward type.
yellowstone-grpc-geyser/src/metrics.rs Add deshred_queue_size gauge helpers.
yellowstone-grpc-geyser/src/grpc.rs Implement subscribe_deshred end-to-end (sessions, filter updates, stream loop, tests).
yellowstone-grpc-geyser/src/block_reconstruction.rs Minor cleanup in replay event handling block.
yellowstone-grpc-geyser/src/auth.rs Minor type simplification for separator constant.
yellowstone-grpc-geyser/Cargo.toml Version bump and dependency/feature updates for 4.1 + wincode.
yellowstone-grpc-geyser/build.rs Route SubscribeDeshred output through server-side encoding type.
yellowstone-grpc-client-nodejs/napi/src/lib.rs Add dead-code allowances for N-API stream fields/methods.
yellowstone-grpc-client-nodejs/napi/src/encoding.rs Remove prost 0.11 usage; standardize decoding on prost 0.14.
yellowstone-grpc-client-nodejs/napi/Cargo.toml Drop prost 0.11 dependency and simplify Solana error deps.
rust-toolchain.toml Bump Rust toolchain version.
examples/rust/src/bin/client.rs Improve deshred CLI progress accounting for slot updates.
examples/rust/Cargo.toml Remove bincode dependency (no longer used).
CHANGELOG.md Document deshred support / Triton extension patch notes.
Cargo.toml Update workspace dependency versions for Solana/Agave 4.1 transition.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Cargo.toml
Comment thread yellowstone-grpc-geyser/src/grpc.rs
Comment thread yellowstone-grpc-geyser/src/grpc.rs
@lvboudre
lvboudre merged commit f300267 into master Jul 2, 2026
4 checks passed
@lvboudre
lvboudre deleted the v4.1-transition-next branch July 2, 2026 17:27
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

Successfully merging this pull request may close these issues.

4 participants