Documentation

Overview

    Package fetcher contains the block announcement based synchronisation.

    Index

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    This section is empty.

    Types

    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(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 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.