Documentation
¶
Overview ¶
Package sync is a generated GoMock package.
Index ¶
- Variables
- func BuildBlock(t *testing.T, instance BuildBlockRuntime, parent *types.Header, ...) *types.Block
- type BabeVerifier
- type BlockImportHandler
- type BlockState
- type BuildBlockRuntime
- type ChainSync
- type Config
- type DisjointBlockSet
- type FinalityGadget
- type MockRequestMaker
- type MockRequestMakerMockRecorder
- type Network
- type Service
- func (s *Service) CreateBlockResponse(req *network.BlockRequestMessage) (*network.BlockResponseMessage, error)
- func (s *Service) HandleBlockAnnounce(from peer.ID, msg *network.BlockAnnounceMessage) error
- func (s *Service) HandleBlockAnnounceHandshake(from peer.ID, msg *network.BlockAnnounceHandshake) error
- func (s *Service) HighestBlock() uint
- func (s *Service) IsSynced() bool
- func (s *Service) Start() error
- func (s *Service) Stop() error
- type StorageState
- type Telemetry
- type TransactionState
Constants ¶
This section is empty.
Variables ¶
var ( // ErrServiceStopped is returned when the service has been stopped ErrServiceStopped = errors.New("service has been stopped") // ErrInvalidBlock is returned when a block cannot be verified ErrInvalidBlock = errors.New("could not verify block") // ErrInvalidBlockRequest is returned when an invalid block request is received ErrInvalidBlockRequest = errors.New("invalid block request") )
var ErrStopTimeout = errors.New("stop timeout")
Functions ¶
Types ¶
type BabeVerifier ¶ added in v0.7.0
BabeVerifier deals with BABE block verification
type BlockImportHandler ¶ added in v0.7.0
type BlockImportHandler interface {
HandleBlockImport(block *types.Block, state *rtstorage.TrieState, announce bool) error
}
BlockImportHandler is the interface for the handler of newly imported blocks
type BlockState ¶
type BlockState interface {
BestBlockHeader() (*types.Header, error)
BestBlockNumber() (number uint, err error)
CompareAndSetBlockData(bd *types.BlockData) error
GetBlockBody(common.Hash) (*types.Body, error)
GetHeader(common.Hash) (*types.Header, error)
HasHeader(hash common.Hash) (bool, error)
Range(startHash, endHash common.Hash) (hashes []common.Hash, err error)
RangeInMemory(start, end common.Hash) ([]common.Hash, error)
GetReceipt(common.Hash) ([]byte, error)
GetMessageQueue(common.Hash) ([]byte, error)
GetJustification(common.Hash) ([]byte, error)
SetJustification(hash common.Hash, data []byte) error
GetHashByNumber(blockNumber uint) (common.Hash, error)
GetBlockByHash(common.Hash) (*types.Block, error)
GetRuntime(blockHash common.Hash) (runtime runtime.Instance, err error)
StoreRuntime(blockHash common.Hash, runtime runtime.Instance)
GetHighestFinalisedHeader() (*types.Header, error)
GetFinalisedNotifierChannel() chan *types.FinalisationInfo
GetHeaderByNumber(num uint) (*types.Header, error)
GetAllBlocksAtNumber(num uint) ([]common.Hash, error)
IsDescendantOf(parent, child common.Hash) (bool, error)
}
BlockState is the interface for the block state
type BuildBlockRuntime ¶ added in v0.8.0
type BuildBlockRuntime interface {
InitializeBlock(header *types.Header) error
FinalizeBlock() (*types.Header, error)
InherentExtrinsics(data []byte) ([]byte, error)
ApplyExtrinsic(data types.Extrinsic) ([]byte, error)
ValidateTransaction(e types.Extrinsic) (*transaction.Validity, error)
}
BuildBlockRuntime is the runtime interface to interact with blocks and extrinsics.
type ChainSync ¶ added in v0.7.0
type ChainSync interface {
// contains filtered or unexported methods
}
ChainSync contains the methods used by the high-level service into the `chainSync` module
type Config ¶
type Config struct {
LogLvl log.Level
Network Network
BlockState BlockState
StorageState StorageState
FinalityGadget FinalityGadget
TransactionState TransactionState
BlockImportHandler BlockImportHandler
BabeVerifier BabeVerifier
MinPeers, MaxPeers int
SlotDuration time.Duration
Telemetry Telemetry
BadBlocks []string
RequestMaker network.RequestMaker
}
Config is the configuration for the sync Service.
type DisjointBlockSet ¶ added in v0.7.0
type DisjointBlockSet interface {
// contains filtered or unexported methods
}
DisjointBlockSet represents a set of incomplete blocks, or blocks with an unknown parent. it is implemented by *disjointBlockSet
type FinalityGadget ¶ added in v0.7.0
FinalityGadget implements justification verification functionality
type MockRequestMaker ¶ added in v0.8.0
type MockRequestMaker struct {
// contains filtered or unexported fields
}
MockRequestMaker is a mock of RequestMaker interface.
func NewMockRequestMaker ¶ added in v0.8.0
func NewMockRequestMaker(ctrl *gomock.Controller) *MockRequestMaker
NewMockRequestMaker creates a new mock instance.
func (*MockRequestMaker) Do ¶ added in v0.8.0
func (m *MockRequestMaker) Do(arg0 peer.ID, arg1 network.Message, arg2 network.ResponseMessage) error
Do mocks base method.
func (*MockRequestMaker) EXPECT ¶ added in v0.8.0
func (m *MockRequestMaker) EXPECT() *MockRequestMakerMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
type MockRequestMakerMockRecorder ¶ added in v0.8.0
type MockRequestMakerMockRecorder struct {
// contains filtered or unexported fields
}
MockRequestMakerMockRecorder is the mock recorder for MockRequestMaker.
type Network ¶ added in v0.7.0
type Network interface {
// Peers returns a list of currently connected peers
Peers() []common.PeerInfo
// ReportPeer reports peer based on the peer behaviour.
ReportPeer(change peerset.ReputationChange, p peer.ID)
AllConnectedPeersIDs() []peer.ID
BlockAnnounceHandshake(*types.Header) error
}
Network is the interface for the network
type Service ¶
type Service struct {
// contains filtered or unexported fields
}
Service deals with chain syncing by sending block request messages and watching for responses.
func NewService ¶
NewService returns a new *sync.Service
func (*Service) CreateBlockResponse ¶
func (s *Service) CreateBlockResponse(req *network.BlockRequestMessage) (*network.BlockResponseMessage, error)
CreateBlockResponse creates a block response message from a block request message
func (*Service) HandleBlockAnnounce ¶
HandleBlockAnnounce notifies the `chainSync` module that we have received a block announcement from the given peer.
func (*Service) HandleBlockAnnounceHandshake ¶ added in v0.7.0
func (s *Service) HandleBlockAnnounceHandshake(from peer.ID, msg *network.BlockAnnounceHandshake) error
HandleBlockAnnounceHandshake notifies the `chainSync` module that we have received a BlockAnnounceHandshake from the given peer.
func (*Service) HighestBlock ¶ added in v0.7.0
HighestBlock gets the highest known block number
type StorageState ¶
type StorageState interface {
TrieState(root *common.Hash) (*rtstorage.TrieState, error)
sync.Locker
}
StorageState is the interface for the storage state
type TransactionState ¶
TransactionState is the interface for transaction queue methods