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 }