 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
- type Bootstrapper
- func (b *Bootstrapper) Accepted(ctx context.Context, nodeID ids.NodeID, requestID uint32, ...) error
- func (b *Bootstrapper) AcceptedFrontier(ctx context.Context, nodeID ids.NodeID, requestID uint32, containerID ids.ID) error
- func (b *Bootstrapper) Ancestors(ctx context.Context, nodeID ids.NodeID, requestID uint32, blks [][]byte) error
- func (b *Bootstrapper) Clear(context.Context) error
- func (b *Bootstrapper) Connected(ctx context.Context, nodeID ids.NodeID, nodeVersion *version.Application) error
- func (b *Bootstrapper) Context() *snow.ConsensusContext
- func (b *Bootstrapper) Disconnected(ctx context.Context, nodeID ids.NodeID) error
- func (b *Bootstrapper) GetAcceptedFailed(ctx context.Context, nodeID ids.NodeID, requestID uint32) error
- func (b *Bootstrapper) GetAcceptedFrontierFailed(ctx context.Context, nodeID ids.NodeID, requestID uint32) error
- func (b *Bootstrapper) GetAncestorsFailed(ctx context.Context, nodeID ids.NodeID, requestID uint32) error
- func (*Bootstrapper) Gossip(context.Context) error
- func (b *Bootstrapper) HealthCheck(ctx context.Context) (interface{}, error)
- func (b *Bootstrapper) Notify(_ context.Context, msg common.Message) error
- func (b *Bootstrapper) Shutdown(ctx context.Context) error
- func (b *Bootstrapper) Start(ctx context.Context, startReqID uint32) error
- func (b *Bootstrapper) Timeout(ctx context.Context) error
 
- type Config
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Bootstrapper ¶
type Bootstrapper struct {
	Config
	common.Halter
	// list of NoOpsHandler for messages dropped by bootstrapper
	common.StateSummaryFrontierHandler
	common.AcceptedStateSummaryHandler
	common.PutHandler
	common.QueryHandler
	common.ChitsHandler
	common.AppHandler
	// contains filtered or unexported fields
}
    bootstrapper repeatedly performs the bootstrapping protocol.
- Wait until a sufficient amount of stake is connected.
- Sample a small number of nodes to get the last accepted block ID
- Verify against the full network that the last accepted block ID received in step 2 is an accepted block.
- Sync the full ancestry of the last accepted block.
- Execute all the fetched blocks that haven't already been executed.
- Restart the bootstrapping protocol until the number of blocks being accepted during a bootstrapping round stops decreasing.
Note: Because of step 6, the bootstrapping protocol will generally be performed multiple times.
Invariant: The VM is not guaranteed to be initialized until Start has been called, so it must be guaranteed the VM is not used until after Start.
func (*Bootstrapper) AcceptedFrontier ¶ added in v1.10.17
func (*Bootstrapper) Ancestors ¶ added in v1.10.16
func (b *Bootstrapper) Ancestors(ctx context.Context, nodeID ids.NodeID, requestID uint32, blks [][]byte) error
Ancestors handles the receipt of multiple containers. Should be received in response to a GetAncestors message to [nodeID] with request ID [requestID]
func (*Bootstrapper) Connected ¶ added in v0.8.2
func (b *Bootstrapper) Connected(ctx context.Context, nodeID ids.NodeID, nodeVersion *version.Application) error
func (*Bootstrapper) Context ¶ added in v1.10.16
func (b *Bootstrapper) Context() *snow.ConsensusContext
func (*Bootstrapper) Disconnected ¶ added in v0.8.2
func (*Bootstrapper) GetAcceptedFailed ¶ added in v1.10.17
func (*Bootstrapper) GetAcceptedFrontierFailed ¶ added in v1.10.17
func (*Bootstrapper) GetAncestorsFailed ¶
func (*Bootstrapper) HealthCheck ¶ added in v1.10.16
func (b *Bootstrapper) HealthCheck(ctx context.Context) (interface{}, error)
func (*Bootstrapper) Shutdown ¶ added in v1.10.16
func (b *Bootstrapper) Shutdown(ctx context.Context) error
type Config ¶
type Config struct {
	common.AllGetsServer
	Ctx     *snow.ConsensusContext
	Beacons validators.Manager
	SampleK          int
	StartupTracker   tracker.Startup
	Sender           common.Sender
	BootstrapTracker common.BootstrapTracker
	Timer            common.Timer
	// PeerTracker manages the set of nodes that we fetch the next block from.
	PeerTracker *p2p.PeerTracker
	// This node will only consider the first [AncestorsMaxContainersReceived]
	// containers in an ancestors message it receives.
	AncestorsMaxContainersReceived int
	// Database used to track the fetched, but not yet executed, blocks during
	// bootstrapping.
	DB database.Database
	VM block.ChainVM
	// NonVerifyingParse parses blocks without verifying them.
	NonVerifyingParse block.ParseFunc
	Bootstrapped func()
}
     Click to show internal directories. 
   Click to hide internal directories.