github.com/MetalBlockchain/metalgo@v1.11.9/snow/engine/avalanche/bootstrap/config.go (about)

     1  // Copyright (C) 2019-2024, Ava Labs, Inc. All rights reserved.
     2  // See the file LICENSE for licensing terms.
     3  
     4  package bootstrap
     5  
     6  import (
     7  	"github.com/MetalBlockchain/metalgo/ids"
     8  	"github.com/MetalBlockchain/metalgo/network/p2p"
     9  	"github.com/MetalBlockchain/metalgo/snow"
    10  	"github.com/MetalBlockchain/metalgo/snow/engine/avalanche/bootstrap/queue"
    11  	"github.com/MetalBlockchain/metalgo/snow/engine/avalanche/vertex"
    12  	"github.com/MetalBlockchain/metalgo/snow/engine/common"
    13  	"github.com/MetalBlockchain/metalgo/snow/engine/common/tracker"
    14  )
    15  
    16  type Config struct {
    17  	common.AllGetsServer
    18  
    19  	Ctx *snow.ConsensusContext
    20  
    21  	StartupTracker tracker.Startup
    22  	Sender         common.Sender
    23  
    24  	// PeerTracker manages the set of nodes that we fetch the next block from.
    25  	PeerTracker *p2p.PeerTracker
    26  
    27  	// This node will only consider the first [AncestorsMaxContainersReceived]
    28  	// containers in an ancestors message it receives.
    29  	AncestorsMaxContainersReceived int
    30  
    31  	// VtxBlocked tracks operations that are blocked on vertices
    32  	VtxBlocked *queue.JobsWithMissing
    33  	// TxBlocked tracks operations that are blocked on transactions
    34  	TxBlocked *queue.Jobs
    35  
    36  	Manager vertex.Manager
    37  	VM      vertex.LinearizableVM
    38  
    39  	// If StopVertexID is empty, the engine will generate the stop vertex based
    40  	// on the current state.
    41  	StopVertexID ids.ID
    42  }