Important
The code has moved to firehose-core, this repository still exists in read-only form so that older dependencies still resolves correctly.
The relayer process fans out and propagates blocks from instrumented blockchain nodes, down to services, serving as a redundant and highly-available access to streaming block & transaction data. It is part of StreamingFast.
Design The Relayer section of the official Firehose documentation provides additional information on its design details.
https://firehose.streamingfast.io/concepts-and-architeceture/components#relayer
Current implementations:
Graph:
[--------------] [-------------------]
[ Mindreader-1 ] [ Mindreader-2, ... ]
[--------------] [-------------------]
\ /
\ /
[-----------------] [-------------------]
[ OneBlocksSource ] [ MultiplexedSource ]
[-----------------] [-------------------]
\ /
[-------------]
[ ForkableHub ] (all blocks triggering StepNew)
[-------------]
|
(hub's single subscriber)
|
[-----------------------------------]
[ pipe Handler: Server.PushBlock ]
[-----------------------------------]
/ \
[-----------------] [---------------]
[ Buffer (dedupe) ]-->[ Subscriptions ]
[-----------------] [---------------]
Issues and PR in this repo related strictly to the relayer functionalities
Report any protocol-specific issues in their respective repositories
Please first refer to the general StreamingFast contribution guide, if you wish to contribute to this code base.