github.com/onflow/flow-go@v0.35.7-crescendo-preview.23-atree-inlining/state/protocol/cluster.go (about)

     1  package protocol
     2  
     3  import (
     4  	"github.com/onflow/flow-go/model/cluster"
     5  	"github.com/onflow/flow-go/model/flow"
     6  )
     7  
     8  // Cluster represents the detailed information for a particular cluster,
     9  // for a given epoch. This information represents the INITIAL state of the
    10  // cluster, as defined by the Epoch Preparation Protocol. It DOES NOT take
    11  // into account state changes over the course of the epoch (ie. slashing).
    12  type Cluster interface {
    13  
    14  	// Index returns the index for this cluster.
    15  	Index() uint
    16  
    17  	// ChainID returns chain ID for the cluster's chain.
    18  	ChainID() flow.ChainID
    19  
    20  	// EpochCounter returns the epoch counter for this cluster.
    21  	EpochCounter() uint64
    22  
    23  	// Members returns the IdentitySkeletons of the cluster members in canonical order.
    24  	// This represents the cluster composition at the time the cluster was specified by the epoch smart
    25  	// contract (hence, we return IdentitySkeletons as opposed to full identities).
    26  	Members() flow.IdentitySkeletonList
    27  
    28  	// RootBlock returns the root block for this cluster.
    29  	RootBlock() *cluster.Block
    30  
    31  	// RootQC returns the quorum certificate for this cluster.
    32  	RootQC() *flow.QuorumCertificate
    33  }