Version: v0.0.0-...-d007484 Latest Latest

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

Go to latest
Published: Jul 28, 2019 License: GPL-3.0 Imports: 12 Imported by: 0



Package fetcher contains the block announcement based synchronisation.



This section is empty.


This section is empty.


This section is empty.


type Fetcher

type Fetcher struct {
	// contains filtered or unexported fields

Fetcher is responsible for accumulating block announcements from various peers and scheduling them for retrieval.

func New

func New(mux *event.TypeMux, getBlock blockRetrievalFn, verifyHeader headerVerifierFn, broadcastBlock blockBroadcasterFn, chainHeight chainHeightFn, insertChain chainInsertFn, dropPeer peerDropFn) *Fetcher

New creates a block fetcher to retrieve blocks based on hash announcements.

func (*Fetcher) Enqueue

func (f *Fetcher) Enqueue(peer string, block *types.Block) error

Enqueue tries to fill gaps in the fetcher's future import queue.

func (*Fetcher) FilterBodies

func (f *Fetcher) FilterBodies(peer string, transactions [][]*types.Transaction, uncles [][]*types.Header, time time.Time) ([][]*types.Transaction, [][]*types.Header)

FilterBodies extracts all the block bodies that were explicitly requested by the fetcher, returning those that should be handled differently.

func (*Fetcher) FilterHeaders

func (f *Fetcher) FilterHeaders(peer string, headers []*types.Header, time time.Time) []*types.Header

FilterHeaders extracts all the headers that were explicitly requested by the fetcher, returning those that should be handled differently.

func (*Fetcher) Notify

func (f *Fetcher) Notify(peer string, hash common.Hash, number uint64, time time.Time,
	headerFetcher headerRequesterFn, bodyFetcher bodyRequesterFn) error

Notify announces the fetcher of the potential availability of a new block in the network.

func (*Fetcher) Start

func (f *Fetcher) Start()

Start boots up the announcement based synchroniser, accepting and processing hash notifications and block fetches until termination requested.

func (*Fetcher) Stop

func (f *Fetcher) Stop()

Stop terminates the announcement based synchroniser, canceling all pending operations.

type FetcherInsertBlockEvent

type FetcherInsertBlockEvent struct {
	Peer  string
	Block *types.Block

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL