Documentation
¶
Index ¶
- type AncestorTree
- type Config
- type Engine
- type EngineTest
- type Transitive
- func (t *Transitive) Chits(ctx context.Context, nodeID ids.NodeID, requestID uint32, votes []ids.ID, ...) error
- func (t *Transitive) Context() *snow.ConsensusContext
- func (t *Transitive) GetBlock(ctx context.Context, blkID ids.ID) (snowman.Block, error)
- func (t *Transitive) GetFailed(ctx context.Context, nodeID ids.NodeID, requestID uint32) error
- func (t *Transitive) GetVM() common.VM
- func (t *Transitive) Gossip(ctx context.Context) error
- func (*Transitive) Halt(context.Context)
- func (t *Transitive) HealthCheck(ctx context.Context) (interface{}, error)
- func (m *Transitive) Initialize(namespace string, reg prometheus.Registerer) error
- func (t *Transitive) Notify(ctx context.Context, msg common.Message) error
- func (t *Transitive) PullQuery(ctx context.Context, nodeID ids.NodeID, requestID uint32, blkID ids.ID) error
- func (t *Transitive) PushQuery(ctx context.Context, nodeID ids.NodeID, requestID uint32, blkBytes []byte) error
- func (t *Transitive) Put(ctx context.Context, nodeID ids.NodeID, requestID uint32, blkBytes []byte) error
- func (t *Transitive) QueryFailed(ctx context.Context, nodeID ids.NodeID, requestID uint32) error
- func (t *Transitive) Shutdown(ctx context.Context) error
- func (t *Transitive) Start(ctx context.Context, startReqID uint32) error
- func (*Transitive) Timeout(context.Context) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AncestorTree ¶ added in v1.9.8
type AncestorTree interface {
Add(blkID ids.ID, parentID ids.ID)
Has(blkID ids.ID) bool
GetRoot(blkID ids.ID) ids.ID
Remove(blkID ids.ID)
RemoveSubtree(blkID ids.ID)
Len() int
}
func NewAncestorTree ¶ added in v1.9.8
func NewAncestorTree() AncestorTree
type Config ¶
type Config struct {
common.AllGetsServer
Ctx *snow.ConsensusContext
VM block.ChainVM
Sender common.Sender
Validators validators.Set
Params snowball.Parameters
Consensus snowman.Consensus
}
Config wraps all the parameters needed for a snowman engine
type Engine ¶
Engine describes the events that can occur to a Snowman instance.
The engine is used to fetch, order, and decide on the fate of blocks. This engine runs the leaderless version of the Snowman consensus protocol. Therefore, the liveness of this protocol tolerant to O(sqrt(n)) Byzantine Nodes where n is the number of nodes in the network. Therefore, this protocol should only be run in a Crash Fault Tolerant environment, or in an environment where lose of liveness and manual intervention is tolerable.
type EngineTest ¶ added in v1.9.8
type EngineTest struct {
common.EngineTest
CantGetBlock bool
GetBlockF func(context.Context, ids.ID) (snowman.Block, error)
}
EngineTest is a test engine
func (*EngineTest) Default ¶ added in v1.9.8
func (e *EngineTest) Default(cant bool)
type Transitive ¶
type Transitive struct {
Config
// list of NoOpsHandler for messages dropped by engine
common.StateSummaryFrontierHandler
common.AcceptedStateSummaryHandler
common.AcceptedFrontierHandler
common.AcceptedHandler
common.AncestorsHandler
common.AppHandler
validators.Connector
RequestID uint32
// contains filtered or unexported fields
}
Transitive implements the Engine interface by attempting to fetch all Transitive dependencies.
func (*Transitive) Context ¶
func (t *Transitive) Context() *snow.ConsensusContext
func (*Transitive) GetVM ¶ added in v1.9.8
func (t *Transitive) GetVM() common.VM
func (*Transitive) Halt ¶ added in v1.9.8
func (*Transitive) Halt(context.Context)
func (*Transitive) HealthCheck ¶ added in v1.9.8
func (t *Transitive) HealthCheck(ctx context.Context) (interface{}, error)
func (*Transitive) Initialize ¶
func (m *Transitive) Initialize(namespace string, reg prometheus.Registerer) error
Initialize the metrics