relayer

package module
v0.0.2-0...-fac0c3d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2024 License: Apache-2.0 Imports: 12 Imported by: 0

README

StreamingFast Relayer

reference License

[!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:

Schema

			Graph:

		                       [--------------]   [-------------------]
		                       [ Mindreader-1 ]   [ Mindreader-2, ... ]
		                       [--------------]   [-------------------]
		                            \                 /
		                             \               /
		    [-----------------]    [-------------------]
		    [ OneBlocksSource ]    [ MultiplexedSource ]
		    [-----------------]    [-------------------]
		                   \        /
					    [-------------]
					    [ ForkableHub ] (all blocks triggering StepNew)
					    [-------------]
                                 |
                       (hub's single subscriber)
				                 |
 		       [-----------------------------------]
 		       [   pipe Handler: Server.PushBlock  ]
 		       [-----------------------------------]
	                          /          \
		       [-----------------]   [---------------]
		       [ Buffer (dedupe) ]-->[ Subscriptions ]
		       [-----------------]   [---------------]

Contributing

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.

License

Apache 2.0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewMultiplexedSource

func NewMultiplexedSource(handler bstream.Handler, sourceAddresses []string, maxSourceLatency time.Duration, sourceRequestBurst int) bstream.Source

Types

type Relayer

type Relayer struct {
	*shutter.Shutter
	// contains filtered or unexported fields
}

func NewRelayer

func NewRelayer(
	liveSourceFactory bstream.SourceFactory,
	oneBlocksSourceFactory bstream.SourceFromNumFactoryWithSkipFunc,
	grpcListenAddr string,
) *Relayer

func (*Relayer) Run

func (r *Relayer) Run()

func (*Relayer) Watch

Directories

Path Synopsis
app

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL