Documentation
      ¶
    
    
  
    
  
    Index ¶
- func BootstrapIdentities(addresses []string, keys []string) (flow.IdentitySkeletonList, error)
 - type BootstrapNodeInfo
 - type Config
 - type ConsensusFollower
 - type ConsensusFollowerImpl
 - type FollowerOption
 - type FollowerServiceBuilder
 - type FollowerServiceConfig
 - type Option
 - func WithBootstrapDir(bootstrapDir string) Option
 - func WithComplianceConfig(config *compliance.Config) Option
 - func WithExposeMetrics(expose bool) Option
 - func WithLockManager(lockManager lockctx.Manager) Option
 - func WithLogLevel(level string) Option
 - func WithProtocolDB(db storage.DB) Option
 - func WithSyncCoreConfig(config *chainsync.Config) Option
 
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BootstrapIdentities ¶ added in v0.27.0
func BootstrapIdentities(addresses []string, keys []string) (flow.IdentitySkeletonList, error)
BootstrapIdentities converts the bootstrap node addresses and keys to a Flow Identity list where each Flow Identity is initialized with the passed address, the networking key and the Node ID set to ZeroID, role set to Access, 0 stake and no staking key.
Types ¶
type BootstrapNodeInfo ¶
type BootstrapNodeInfo struct {
	Host             string // ip or hostname
	Port             uint
	NetworkPublicKey crypto.PublicKey // the network public key of the bootstrap peer
}
    BootstrapNodeInfo contains the details about the upstream bootstrap peer the consensus follower uses
type Config ¶
type Config struct {
	// contains filtered or unexported fields
}
    Config contains the configurable fields for a `ConsensusFollower`.
type ConsensusFollower ¶
type ConsensusFollower interface {
	component.Component
	// Run starts the consensus follower.
	Run(context.Context)
	// AddOnBlockFinalizedConsumer adds a new block finalization subscriber.
	AddOnBlockFinalizedConsumer(pubsub.OnBlockFinalizedConsumer)
}
    ConsensusFollower is a standalone module run by third parties which provides a mechanism for observing the block chain. It maintains a set of subscribers and delivers block proposals broadcasted by the consensus nodes to each one.
type ConsensusFollowerImpl ¶
type ConsensusFollowerImpl struct {
	component.Component
	*cmd.NodeConfig
	// contains filtered or unexported fields
}
    func NewConsensusFollower ¶
func NewConsensusFollower( networkPrivKey crypto.PrivateKey, bindAddr string, bootstapIdentities []BootstrapNodeInfo, opts ...Option, ) (*ConsensusFollowerImpl, error)
NewConsensusFollower creates a new consensus follower.
func (*ConsensusFollowerImpl) AddOnBlockFinalizedConsumer ¶
func (cf *ConsensusFollowerImpl) AddOnBlockFinalizedConsumer(consumer pubsub.OnBlockFinalizedConsumer)
AddOnBlockFinalizedConsumer adds a new block finalization subscriber.
func (*ConsensusFollowerImpl) Run ¶
func (cf *ConsensusFollowerImpl) Run(ctx context.Context)
Run starts the consensus follower. This may also be implemented directly in a calling library to take advantage of error recovery possible with the irrecoverable error handling.
type FollowerOption ¶ added in v0.27.0
type FollowerOption func(*FollowerServiceConfig)
func WithBaseOptions ¶ added in v0.27.0
func WithBaseOptions(baseOptions []cmd.Option) FollowerOption
func WithBootStrapPeers ¶ added in v0.27.0
func WithBootStrapPeers(bootstrapNodes ...*flow.IdentitySkeleton) FollowerOption
func WithNetworkKey ¶ added in v0.27.0
func WithNetworkKey(key crypto.PrivateKey) FollowerOption
func WithStorageLockManager ¶ added in v0.43.0
func WithStorageLockManager(lockManager lockctx.Manager) FollowerOption
type FollowerServiceBuilder ¶ added in v0.27.0
type FollowerServiceBuilder struct {
	*cmd.FlowNodeBuilder
	*FollowerServiceConfig
	// components
	LibP2PNode          p2p.LibP2PNode
	FollowerState       protocol.FollowerState
	SyncCore            *synchronization.Core
	FollowerDistributor *pubsub.FollowerDistributor
	Committee           hotstuff.DynamicCommittee
	Finalized           *flow.Header
	Pending             []*flow.ProposalHeader
	FollowerCore        module.HotStuffFollower
	// for the observer, the sync engine participants provider is the libp2p peer store which is not
	// available until after the network has started. Hence, a factory function that needs to be called just before
	// creating the sync engine
	SyncEngineParticipantsProviderFactory func() module.IdentifierProvider
	// engines
	FollowerEng *follower.ComplianceEngine
	SyncEng     *synceng.Engine
	// contains filtered or unexported fields
}
    FollowerServiceBuilder provides the common functionality needed to bootstrap a Flow staked and observer It is composed of the FlowNodeBuilder, the FollowerServiceConfig and contains all the components and modules needed for the staked and observers
func FlowConsensusFollowerService ¶ added in v0.27.0
func FlowConsensusFollowerService(opts ...FollowerOption) *FollowerServiceBuilder
func (*FollowerServiceBuilder) Build ¶ added in v0.27.0
func (builder *FollowerServiceBuilder) Build() (cmd.Node, error)
Build enqueues the sync engine and the follower engine for the observer. Currently, the observer only runs the follower engine.
func (*FollowerServiceBuilder) BuildConsensusFollower ¶ added in v0.27.0
func (builder *FollowerServiceBuilder) BuildConsensusFollower() cmd.NodeBuilder
func (*FollowerServiceBuilder) InitIDProviders ¶ added in v0.27.0
func (builder *FollowerServiceBuilder) InitIDProviders()
func (*FollowerServiceBuilder) Initialize ¶ added in v0.27.0
func (builder *FollowerServiceBuilder) Initialize() error
type FollowerServiceConfig ¶ added in v0.27.0
type FollowerServiceConfig struct {
	NetworkKey crypto.PrivateKey // the networking key passed in by the caller when being used as a library
	// contains filtered or unexported fields
}
    FollowerServiceConfig defines all the user defined parameters required to bootstrap an access node For a node running as a standalone process, the config fields will be populated from the command line params, while for a node running as a library, the config fields are expected to be initialized by the caller.
func DefaultFollowerServiceConfig ¶ added in v0.27.0
func DefaultFollowerServiceConfig() *FollowerServiceConfig
DefaultFollowerServiceConfig defines all the default values for the FollowerServiceConfig
type Option ¶
type Option func(c *Config)
func WithBootstrapDir ¶
func WithComplianceConfig ¶ added in v0.26.16
func WithComplianceConfig(config *compliance.Config) Option
func WithExposeMetrics ¶ added in v0.24.7
func WithLockManager ¶ added in v0.43.0
func WithLogLevel ¶ added in v0.21.1
func WithProtocolDB ¶ added in v0.43.0
currently used by rosetta