yellowstone-block-machine 0.9.0

State machine for reconstructing Solana blocks from Geyser events
Documentation
# Sans-IO Solana Block Reconstruction State Machine

`yellowstone-block-machine` provides a [sans-IO](https://sans-io.readthedocs.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-thin` feature), 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 for `yellowstone_grpc_proto::geyser::SubscribeUpdate`.
- `dragonsmouth`: enables gRPC client extensions (`GeyserGrpcExt`) on top of `dragonsmouth-thin`.

## Dragonsmouth integration

See docs.rs for full API docs and examples:

- https://docs.rs/yellowstone-block-machine/latest/yellowstone_block_machine/

You can also run the repository example:

- https://github.com/rpcpool/yellowstone-block-machine/tree/main/examples/dragonsmouth