Documentation ¶
Overview ¶
Package layerfetcher fetches layers from remote peers
Index ¶
- Variables
- type Config
- type Future
- type LayerPromiseResult
- type Logic
- func (l *Logic) Close()
- func (l *Logic) FetchAtx(ctx context.Context, id types.ATXID) error
- func (l *Logic) FetchBlock(ctx context.Context, id types.BlockID) error
- func (l *Logic) GetAtxs(ctx context.Context, IDs []types.ATXID) error
- func (l *Logic) GetBallots(context.Context, []types.BallotID) error
- func (l *Logic) GetBlocks(ctx context.Context, IDs []types.BlockID) error
- func (l *Logic) GetEpochATXs(ctx context.Context, id types.EpochID) error
- func (l *Logic) GetPoetProof(ctx context.Context, id types.Hash32) error
- func (l *Logic) GetTxs(ctx context.Context, IDs []types.TransactionID) error
- func (l *Logic) IsSynced(context.Context) bool
- func (l *Logic) ListenToGossip() bool
- func (l *Logic) PollLayerContent(ctx context.Context, layerID types.LayerID) chan LayerPromiseResult
- func (l *Logic) Start()
Constants ¶
This section is empty.
Variables ¶
var ( // ErrNoPeers is returned when node has no peers. ErrNoPeers = errors.New("no peers") // ErrInternal is returned from the peer when the peer encounters an internal error. ErrInternal = errors.New("unspecified error returned by peer") // ErrBlockNotFetched is returned when at least one block is not fetched successfully. ErrBlockNotFetched = errors.New("block not fetched") )
Functions ¶
This section is empty.
Types ¶
type Config ¶
Config defines configuration for layer fetching logic.
func DefaultConfig ¶
func DefaultConfig() Config
DefaultConfig returns default configuration for layer fetching logic.
type Future ¶
type Future struct {
// contains filtered or unexported fields
}
Future is a preparation for using actual futures in the code, this will allow to truly execute asynchronous reads and receive result only when needed.
func (*Future) Result ¶
func (f *Future) Result() fetch.HashDataPromiseResult
Result actually evaluates the result of the fetch task.
type LayerPromiseResult ¶
LayerPromiseResult is the result of trying to fetch data for an entire layer.
type Logic ¶
type Logic struct {
// contains filtered or unexported fields
}
Logic is the struct containing components needed to follow layer fetching logic.
func NewLogic ¶
func NewLogic(ctx context.Context, cfg Config, blocks blockHandler, atxs atxHandler, poet poetDB, atxIDs atxIDsDB, txs txProcessor, host *p2p.Host, dbStores fetch.LocalDataSource, layers layerDB, log log.Log) *Logic
NewLogic creates a new instance of layer fetching logic.
func (*Logic) FetchBlock ¶
FetchBlock gets data for a single block id and validates it.
func (*Logic) GetAtxs ¶
GetAtxs gets the data for given atx ids IDs and validates them. returns an error if at least one ATX cannot be fetched.
func (*Logic) GetBallots ¶
GetBallots gets data for the specified BallotIDs and validates them.
func (*Logic) GetBlocks ¶
GetBlocks gets the data for given block ids and validates the blocks. returns an error if a single atx failed to be fetched or validated.
func (*Logic) GetEpochATXs ¶
GetEpochATXs fetches all atxs received by peer for given layer.
func (*Logic) GetPoetProof ¶
GetPoetProof gets poet proof from remote peer.
func (*Logic) GetTxs ¶
GetTxs fetches the txs provided as IDs and validates them, returns an error if one TX failed to be fetched.
func (*Logic) ListenToGossip ¶
ListenToGossip indicates if node is currently accepting packets from gossip.
func (*Logic) PollLayerContent ¶
func (l *Logic) PollLayerContent(ctx context.Context, layerID types.LayerID) chan LayerPromiseResult
PollLayerContent polls peers for the content of a given layer ID. it returns a channel for the caller to be notified when responses are received from all peers.