Documentation ¶
Index ¶
- type BaseConfig
- type FlowNodeBuilder
- func (fnb *FlowNodeBuilder) Component(name string, f func(*FlowNodeBuilder) (module.ReadyDoneAware, error)) *FlowNodeBuilder
- func (fnb *FlowNodeBuilder) ExtraFlags(f func(*pflag.FlagSet)) *FlowNodeBuilder
- func (fnb *FlowNodeBuilder) Module(name string, f func(builder *FlowNodeBuilder) error) *FlowNodeBuilder
- func (fnb *FlowNodeBuilder) MustNot(err error) *zerolog.Event
- func (fnb *FlowNodeBuilder) PostInit(f func(node *FlowNodeBuilder)) *FlowNodeBuilder
- func (fnb *FlowNodeBuilder) Run()
- type Metrics
- type Storage
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BaseConfig ¶
type BaseConfig struct { BootstrapDir string // contains filtered or unexported fields }
BaseConfig is the general config for the FlowNodeBuilder
type FlowNodeBuilder ¶
type FlowNodeBuilder struct { BaseConfig BaseConfig NodeID flow.Identifier Logger zerolog.Logger Me *local.Local Tracer module.Tracer MetricsRegisterer prometheus.Registerer Metrics Metrics DB *badger.DB Storage Storage ProtocolEvents *events.Distributor State protocol.State Middleware *p2p.Middleware Network *p2p.Network MsgValidators []network.MessageValidator FvmOptions []fvm.Option // root state information RootBlock *flow.Block RootQC *flow.QuorumCertificate RootResult *flow.ExecutionResult RootSeal *flow.Seal RootChainID flow.ChainID // contains filtered or unexported fields }
FlowNodeBuilder is the builder struct used for all flow nodes It runs a node process with following structure, in sequential order Base inits (network, storage, state, logger)
PostInit handlers, if any
Components handlers, if any, wait sequentially Run() <- main loop Components destructors, if any
func FlowNode ¶
func FlowNode(role string) *FlowNodeBuilder
FlowNode creates a new Flow node builder with the given name.
func (*FlowNodeBuilder) Component ¶
func (fnb *FlowNodeBuilder) Component(name string, f func(*FlowNodeBuilder) (module.ReadyDoneAware, error)) *FlowNodeBuilder
Component adds a new component to the node that conforms to the ReadyDone interface.
When the node is run, this component will be started with `Ready`. When the node is stopped, we will wait for the component to exit gracefully with `Done`.
func (*FlowNodeBuilder) ExtraFlags ¶
func (fnb *FlowNodeBuilder) ExtraFlags(f func(*pflag.FlagSet)) *FlowNodeBuilder
ExtraFlags enables binding additional flags beyond those defined in BaseConfig.
func (*FlowNodeBuilder) Module ¶
func (fnb *FlowNodeBuilder) Module(name string, f func(builder *FlowNodeBuilder) error) *FlowNodeBuilder
Module enables setting up dependencies of the engine with the builder context.
func (*FlowNodeBuilder) MustNot ¶
func (fnb *FlowNodeBuilder) MustNot(err error) *zerolog.Event
MustNot asserts that the given error must not occur.
If the error is nil, returns a nil log event (which acts as a no-op). If the error is not nil, returns a fatal log event containing the error.
func (*FlowNodeBuilder) PostInit ¶
func (fnb *FlowNodeBuilder) PostInit(f func(node *FlowNodeBuilder)) *FlowNodeBuilder
func (*FlowNodeBuilder) Run ¶
func (fnb *FlowNodeBuilder) Run()
Run initiates all common components (logger, database, protocol state etc.) then starts each component. It also sets up a channel to gracefully shut down each component if a SIGINT is received.
type Metrics ¶
type Metrics struct { Network module.NetworkMetrics Engine module.EngineMetrics Compliance module.ComplianceMetrics Cache module.CacheMetrics Mempool module.MempoolMetrics }
type Storage ¶
type Storage struct { Headers storage.Headers Index storage.Index Identities storage.Identities Guarantees storage.Guarantees Receipts storage.ExecutionReceipts Results storage.ExecutionResults Seals storage.Seals Payloads storage.Payloads Blocks storage.Blocks Transactions storage.Transactions Collections storage.Collections Setups storage.EpochSetups Commits storage.EpochCommits Statuses storage.EpochStatuses }
Directories ¶
Path | Synopsis |
---|---|
cmd
contains CLI logic that can exit the program and read/write files.
|
contains CLI logic that can exit the program and read/write files. |
run
contains reusable logic that does not know about a CLI.
|
contains reusable logic that does not know about a CLI. |
Package build contains information about the build that injected at build-time.
|
Package build contains information about the build that injected at build-time. |
testclient
module
|
|