Relayer
StreamingFast Firehose Relayer component
How Relayer Works
┌─────────────────────────────────────────────────────────────────────────┐
│ Relayer Component │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Reader 1 │ │ Reader 2 │ │ Reader N │ │
│ │ (source) │ │ (source) │ │ (source) │ │
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
│ │ │ │ │
│ └────────────────┼────────────────┘ │
│ ▼ │
│ ┌───────────────────────────────────────────────────────────────────┐ │
│ │ Multiplexed Source │ │
│ │ • Connects to multiple Reader endpoints │ │
│ │ • Races sources for fastest block delivery │ │
│ │ • Filters lagging sources based on latency threshold │ │
│ └───────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────────────────────────────┐ │
│ │ ForkableHub │ │
│ │ • Maintains fork-aware block graph │ │
│ │ • Tracks head block and time drift │ │
│ │ • Signals readiness when synchronized │ │
│ └───────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────────────────────────────┐ │
│ │ gRPC BlockStream Server │ │
│ │ • Streams live blocks to Firehose, Substreams, etc. │ │
│ │ • Same interface as Reader Node (BlockStream::Blocks) │ │
│ └───────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌───────────┴───────────┐ │
│ ▼ ▼ │
│ Firehose Substreams Tier 1 │
│ Component │
└─────────────────────────────────────────────────────────────────────────┘Source Multiplexing
Realtime Gating
ForkableHub
gRPC Interface
Operational Patterns
Single Relayer
Regional Relayers
Storage Access
Configuration Reference
Last updated
Was this helpful?
