 Documentation
      ¶
      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
	NetworkKey crypto.PrivateKey
	// 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
      ¶
      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. | 
| 
          
            transit
            
            command
          
          
         | |
| 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
           | |
| 
          
            cmd/read-badger
            
            command
          
          
         | |
| 
          
            cmd/read-protocol-state
            
            command
          
          
         | |
| 
          
            cmd/remove-execution-fork
            
            command
          
          
         | |