Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type StateMgr ¶
type StateMgr interface {
consGR.StateMgr
// The StateMgr has to find a common ancestor for the prevAO and nextAO, then return
// the state for Next ao and reject blocks in range (commonAO, prevAO]. The StateMgr
// can determine relative positions of the corresponding blocks based on their state
// indexes.
ChainFetchStateDiff(
ctx context.Context,
prevAO, nextAO *isc.AliasOutputWithID,
) <-chan *sm_inputs.ChainFetchStateDiffResults
// Invoked by the chain when a set of server (access⁻¹) nodes has changed.
// These nodes should be used to perform block replication.
ChainNodesUpdated(serverNodes, accessNodes, committeeNodes []*cryptolib.PublicKey)
// This is called to save a prelim block, received from other nodes.
// That should happen on the access nodes to receive the active state faster.
// This function should save the block (in the WAL) synchronously.
PreliminaryBlock(block state.Block) error
}
func New ¶
func New( ctx context.Context, chainID isc.ChainID, me *cryptolib.PublicKey, peerPubKeys []*cryptolib.PublicKey, net peering.NetworkProvider, wal sm_gpa_utils.BlockWAL, snapshotManager sm_snapshots.SnapshotManager, store state.Store, shutdownCoordinator *shutdown.Coordinator, metrics *metrics.ChainStateManagerMetrics, pipeMetrics *metrics.ChainPipeMetrics, log *logger.Logger, parameters sm_gpa.StateManagerParameters, ) (StateMgr, error)
Click to show internal directories.
Click to hide internal directories.