Expand description
Yellowstone jet-tpu-client
This crate is port of the custom TPU-QUIC client used by Yellowstone Jet a subsystem of Cascade-Marketplace,
This crates expose a generic TPU sender implementation TpuSender that can be used with different TPU info services, stake info services, eviction strategies, and leader schedule predictors.
The cores async event-loop engine uses quinn and tokio crates to provide a high-performance QUIC-based transport protocol implementation. It is designed to handle the latest Agave network changes and covers all the edge-cases observed in production usage:
- Automatic leader schedule tracking and slot updates
- Automatic TPU contact-info handling:
- Contact info discovery using latest gossip information from the network.
- Handles TPU endpoint changes due to leader contact info flapping (e.g. Jito validators)
- Automic connection manamgent: reconnect, connection-prediction, failures handling.
- Rescue transaction on connection dropped (e.g. due to remote peer connection eviction)
- Stake-aware TPU selection and eviction strategies.
§YellowstoneTpuSender : Smart TPU sender implementation
This crate come with a smart TPU sender implementation: YellowstoneTpuSender
This sender implementation supports three different sending strategies:
- Send transaction to one or more remote peers
- Send to the current leader
- Send to the the curent leader AND the next
N-1leaders in the schedule.
The sender automatically tracks the current slot and leader schedule.
§Example
See repository for more examples.
§feature-flag supports
- prometheus: Enable prometheus metrics exposition module [
crate::prom] - yellowstone-grpc: Enable Yellowstone gRPC based TPU sender implementation
crate::yellowstone_grpc - bytes : Enable
bytescrate based transaction representation support in TPU sender