provider

package
Version: v0.35.0 Latest Latest
Warning

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

Go to latest
Published: Nov 4, 2021 License: Apache-2.0 Imports: 4 Imported by: 19

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrHeightTooHigh is returned when the height is higher than the last
	// block that the provider has. The light client will not remove the provider
	ErrHeightTooHigh = errors.New("height requested is too high")
	// ErrLightBlockNotFound is returned when a provider can't find the
	// requested header (i.e. it has been pruned).
	// The light client will not remove the provider
	ErrLightBlockNotFound = errors.New("light block not found")
	// ErrNoResponse is returned if the provider doesn't respond to the
	// request in a given time. The light client will not remove the provider
	ErrNoResponse = errors.New("client failed to respond")
	// ErrConnectionClosed is returned if the provider closes the connection.
	// In this case we remove the provider.
	ErrConnectionClosed = errors.New("client closed connection")
)

Functions

This section is empty.

Types

type ErrBadLightBlock

type ErrBadLightBlock struct {
	Reason error
}

ErrBadLightBlock is returned when a provider returns an invalid light block. The light client will remove the provider.

func (ErrBadLightBlock) Error

func (e ErrBadLightBlock) Error() string

type ErrUnreliableProvider added in v0.35.0

type ErrUnreliableProvider struct {
	Reason string
}

ErrUnreliableProvider is a generic error that indicates that the provider isn't behaving in a reliable manner to the light client. The light client will remove the provider

func (ErrUnreliableProvider) Error added in v0.35.0

func (e ErrUnreliableProvider) Error() string

type Provider

type Provider interface {
	// LightBlock returns the LightBlock that corresponds to the given
	// height.
	//
	// 0 - the latest.
	// height must be >= 0.
	//
	// If the provider fails to fetch the LightBlock due to the IO or other
	// issues, an error will be returned.
	// If there's no LightBlock for the given height, ErrLightBlockNotFound
	// error is returned.
	LightBlock(ctx context.Context, height int64) (*types.LightBlock, error)

	// ReportEvidence reports an evidence of misbehavior.
	ReportEvidence(context.Context, types.Evidence) error
}

Provider provides information for the light client to sync (verification happens in the client).

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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