Sans-IO Solana Block Reconstruction State Machine
yellowstone-block-machine provides a sans-IO state machine to reconstruct Solana blocks from Geyser events.
The state machine encodes ordering and lifecycle rules that are easy to miss when consuming raw Geyser streams directly.
What it does
- Reconstructs per-slot blocks from replay and metadata signals.
- Emits commitment progression updates.
- Detects forks and dead slots.
Wire-format agnostic design
The core stream and wrapper are generic over event::GeyserEventAdapter, so you can use this crate with:
- the bundled Yellowstone proto adapter (
dragonsmouth-thinfeature), or - your own adapter for a different event type/version.
This keeps block-reconstruction logic reusable without forcing all consumers onto a specific yellowstone-grpc-proto version.
Feature flags
dragonsmouth-thin: enables the built-in adapter foryellowstone_grpc_proto::geyser::SubscribeUpdate.dragonsmouth: enables gRPC client extensions (GeyserGrpcExt) on top ofdragonsmouth-thin.
Dragonsmouth integration
See docs.rs for full API docs and examples:
You can also run the repository example: