statetransfer

package
v0.0.0-...-b045ee9 Latest Latest
Warning

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

Go to latest
Published: Jun 16, 2021 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Coordinator

type Coordinator interface {
	Start() // Start the block transfer go routine
	Stop()  // Stop up the block transfer go routine

	// SyncToTarget attempts to move the state to the given target, returning an error, and whether this target might succeed if attempted at a later time
	SyncToTarget(blockNumber uint64, blockHash []byte, peerIDs []*pb.PeerID) (error, bool)
}

Coordinator is used to initiate state transfer. Start must be called before use, and Stop should be called to free allocated resources

func NewCoordinatorImpl

func NewCoordinatorImpl(stack PartialStack) Coordinator

NewCoordinatorImpl constructs a coordinatorImpl

type PartialStack

type PartialStack interface {
	peer.BlockChainAccessor
	peer.BlockChainModifier
	peer.BlockChainUtil
	GetPeers() (*pb.PeersMessage, error)
	GetPeerEndpoint() (*pb.PeerEndpoint, error)
	GetRemoteLedger(receiver *pb.PeerID) (peer.RemoteLedger, error)
}

PartialStack is a subset of peer.MessageHandlerCoordinator functionality which is necessary to perform state transfer

Jump to

Keyboard shortcuts

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