header

package
v0.7.0-rc3 Latest Latest
Warning

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

Go to latest
Published: Feb 10, 2023 License: Apache-2.0 Imports: 23 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ConstructModule

func ConstructModule(tp node.Type, cfg *Config) fx.Option

func Flags

func Flags() *flag.FlagSet

Flags gives a set of hardcoded Header package flags.

func ParseFlags

func ParseFlags(cmd *cobra.Command, cfg *Config) error

ParseFlags parses Header package flags from the given cmd and applies them to the passed config.

func ParseTrustedHashFlags

func ParseTrustedHashFlags(
	cmd *cobra.Command,
	cfg *Config,
) error

ParseTrustedHashFlags parses Header package flags from the given cmd and saves them to the passed config.

func ParseTrustedPeerFlags

func ParseTrustedPeerFlags(
	cmd *cobra.Command,
	cfg *Config,
) error

ParseTrustedPeerFlags parses Header package flags from the given cmd and applies them to the passed config.

func TrustedHashFlags

func TrustedHashFlags() *flag.FlagSet

TrustedHashFlags returns a set of flags related to configuring a `TrustedHash`.

func TrustedPeersFlags

func TrustedPeersFlags() *flag.FlagSet

TrustedPeersFlags returns a set of flags.

Types

type API added in v0.5.0

type API struct {
	Internal struct {
		GetByHeight func(context.Context, uint64) (*header.ExtendedHeader, error) `perm:"public"`
		Head        func(context.Context) (*header.ExtendedHeader, error)         `perm:"public"`
		IsSyncing   func(context.Context) bool                                    `perm:"public"`
	}
}

API is a wrapper around Module for the RPC. TODO(@distractedm1nd): These structs need to be autogenerated.

func (*API) GetByHeight added in v0.5.0

func (api *API) GetByHeight(ctx context.Context, u uint64) (*header.ExtendedHeader, error)

func (*API) Head added in v0.5.0

func (api *API) Head(ctx context.Context) (*header.ExtendedHeader, error)

func (*API) IsSyncing added in v0.5.0

func (api *API) IsSyncing(ctx context.Context) bool

type Config

type Config struct {
	// TrustedHash is the Block/Header hash that Nodes use as starting point for header synchronization.
	// Only affects the node once on initial sync.
	TrustedHash string
	// TrustedPeers are the peers we trust to fetch headers from.
	// Note: The trusted does *not* imply Headers are not verified, but trusted as reliable to fetch
	// headers at any moment.
	TrustedPeers []string

	Store  store.Parameters
	Syncer sync.Parameters

	Server p2p_exchange.ServerParameters
	Client p2p_exchange.ClientParameters `toml:",omitempty"`
}

Config contains configuration parameters for header retrieval and management.

func DefaultConfig

func DefaultConfig(tp node.Type) Config

func (*Config) Validate

func (cfg *Config) Validate(tp node.Type) error

Validate performs basic validation of the config.

type InitStore added in v0.6.2

type InitStore libhead.Store[*header.ExtendedHeader]

InitStore is a type representing initialized header store. NOTE: It is needed to ensure that Store is always initialized before Syncer is started.

type Module

type Module interface {
	// GetByHeight returns the ExtendedHeader at the given height, blocking
	// until header has been processed by the store or context deadline is exceeded.
	GetByHeight(context.Context, uint64) (*header.ExtendedHeader, error)
	// Head returns the ExtendedHeader of the chain head.
	Head(context.Context) (*header.ExtendedHeader, error)
	// IsSyncing returns the status of sync
	IsSyncing(context.Context) bool
}

Module exposes the functionality needed for querying headers from the network. Any method signature changed here needs to also be changed in the API struct.

type Service added in v0.5.0

type Service struct {
	// contains filtered or unexported fields
}

Service represents the header Service that can be started / stopped on a node. Service's main function is to manage its sub-services. Service can contain several sub-services, such as Exchange, ExchangeServer, Syncer, and so forth.

func (*Service) GetByHeight added in v0.5.0

func (s *Service) GetByHeight(ctx context.Context, height uint64) (*header.ExtendedHeader, error)

func (*Service) Head added in v0.5.0

func (s *Service) Head(ctx context.Context) (*header.ExtendedHeader, error)

func (*Service) IsSyncing added in v0.5.0

func (s *Service) IsSyncing(context.Context) bool

Directories

Path Synopsis
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

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