Documentation ¶
Index ¶
Constants ¶
View Source
const ( CodecVersion uint16 = 0 CodecVersionWithStopVtx uint16 = 1 )
Variables ¶
View Source
var Codec codec.Manager
Functions ¶
This section is empty.
Types ¶
type Builder ¶
type Builder interface { // Build a new stop vertex from the parents BuildStopVtx(ctx context.Context, parentIDs []ids.ID) (avalanche.Vertex, error) }
Builder builds a vertex given a set of parentIDs and transactions.
type DAGVM ¶
type DAGVM interface { block.ChainVM // Convert a stream of bytes to a transaction or return an error ParseTx(ctx context.Context, txBytes []byte) (snowstorm.Tx, error) }
DAGVM defines the minimum functionality that an avalanche VM must implement
type LinearizableVM ¶
type LinearizableVM interface { DAGVM // Linearize is called after [Initialize] and after the DAG has been // finalized. After Linearize is called: // // - PendingTxs will never be called again // - GetTx will never be called again // - ParseTx may still be called // - All the block based functions of the [block.ChainVM] must work as // expected. // // Linearize is part of the VM initialization, and will be called at most // once per VM instantiation. This means that Linearize should be called // every time the chain restarts after the DAG has finalized. Linearize(ctx context.Context, stopVertexID ids.ID) error }
type LinearizableVMWithEngine ¶
type LinearizableVMWithEngine interface { DAGVM // Linearize is called after [Initialize] and after the DAG has been // finalized. After Linearize is called: // // - PendingTxs will never be called again // - GetTx will never be called again // - ParseTx may still be called // - All the block based functions of the [block.ChainVM] must work as // expected. // // Linearize is part of the VM initialization, and will be called at most // once per VM instantiation. This means that Linearize should be called // every time the chain restarts after the DAG has finalized. Linearize( ctx context.Context, stopVertexID ids.ID, toEngine chan<- common.Message, ) error }
type Manager ¶
Manager defines all the vertex related functionality that is required by the consensus engine.
type Parser ¶
type Parser interface { // Parse a vertex from a slice of bytes ParseVtx(ctx context.Context, vertex []byte) (avalanche.Vertex, error) }
Parser parses bytes into a vertex.
type StatelessVertex ¶
type StatelessVertex interface { verify.Verifiable ID() ids.ID Bytes() []byte Version() uint16 ChainID() ids.ID StopVertex() bool Height() uint64 Epoch() uint32 ParentIDs() []ids.ID Txs() [][]byte }
func Build ¶
func Build( chainID ids.ID, height uint64, parentIDs []ids.ID, txs [][]byte, ) (StatelessVertex, error)
Build a new stateless vertex from the contents of a vertex
func BuildStopVertex ¶
Build a new stateless vertex from the contents of a vertex
func Parse ¶
func Parse(bytes []byte) (StatelessVertex, error)
Parse parses the provided vertex bytes into a stateless vertex
type Storage ¶
type Storage interface { // Get a vertex by its hash from storage. GetVtx(ctx context.Context, vtxID ids.ID) (avalanche.Vertex, error) // Edge returns a list of accepted vertex IDs with no accepted children. Edge(ctx context.Context) (vtxIDs []ids.ID) // Returns "true" if accepted frontier ("Edge") is stop vertex. StopVertexAccepted(ctx context.Context) (bool, error) }
Storage defines the persistent storage that is required by the consensus engine.
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package vertexmock is a generated GoMock package.
|
Package vertexmock is a generated GoMock package. |
Click to show internal directories.
Click to hide internal directories.