Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsSortedAndUniqueHashOf ¶ added in v1.1.1
func SortHashOf ¶ added in v1.1.1
func SortHashOf(bytesSlice [][]byte)
Types ¶
type Builder ¶ added in v1.1.1
type Builder interface { // Build a new vertex from the contents of a vertex BuildVtx(parentIDs []ids.ID, txs []snowstorm.Tx) (avalanche.Vertex, error) // Build a new stop vertex from the parents BuildStopVtx(parentIDs []ids.ID) (avalanche.Vertex, error) }
Builder builds a vertex given a set of parentIDs and transactions.
type DAGVM ¶
type DAGVM interface { common.VM Getter // Return any transactions that have not been sent to consensus yet PendingTxs() []snowstorm.Tx // Convert a stream of bytes to a transaction or return an error ParseTx(tx []byte) (snowstorm.Tx, error) }
DAGVM defines the minimum functionality that an avalanche VM must implement
type Getter ¶ added in v1.7.14
type Getter interface { // Retrieve a transaction that was submitted previously GetTx(ids.ID) (snowstorm.Tx, error) }
Getter defines the functionality for fetching a tx/block by its ID.
type Heap ¶
type Heap interface { // Empty the heap. Clear() // Add the provided vertex to the heap. Vertices are de-duplicated, returns // true if the vertex was added, false if it was dropped. Push(avalanche.Vertex) bool // Remove the top vertex. Assumes that there is at least one element. Pop() avalanche.Vertex // Returns if a vertex with the provided ID is currently in the heap. Contains(ids.ID) bool // Returns the number of vertices in the heap. Len() int }
Heap defines the functionality of a heap of vertices with unique VertexIDs ordered by height
type Manager ¶
Manager defines all the vertex related functionality that is required by the consensus engine.
type Parser ¶ added in v1.1.1
type Parser interface { // Parse a vertex from a slice of bytes ParseVtx(vertex []byte) (avalanche.Vertex, error) }
Parser parses bytes into a vertex.
type StatelessVertex ¶ added in v1.1.1
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 ¶ added in v1.1.1
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 ¶ added in v1.7.4
Build a new stateless vertex from the contents of a vertex
func Parse ¶ added in v1.1.1
func Parse(bytes []byte) (StatelessVertex, error)
Parse parses the provided vertex bytes into a stateless vertex
type Storage ¶ added in v1.1.1
type Storage interface { // Get a vertex by its hash from storage. GetVtx(vtxID ids.ID) (avalanche.Vertex, error) // Edge returns a list of accepted vertex IDs with no accepted children. Edge() (vtxIDs []ids.ID) // Returns "true" if accepted frontier ("Edge") is stop vertex. StopVertexAccepted() (bool, error) }
Storage defines the persistent storage that is required by the consensus engine.
type TestBuilder ¶ added in v1.1.1
type TestBuilder struct { T *testing.T CantBuildVtx bool BuildVtxF func(parentIDs []ids.ID, txs []snowstorm.Tx) (avalanche.Vertex, error) BuildStopVtxF func(parentIDs []ids.ID) (avalanche.Vertex, error) }
func (*TestBuilder) BuildStopVtx ¶ added in v1.7.4
func (*TestBuilder) Default ¶ added in v1.1.1
func (b *TestBuilder) Default(cant bool)
type TestManager ¶
type TestManager struct { TestBuilder TestParser TestStorage }
func NewTestManager ¶ added in v1.1.1
func NewTestManager(t *testing.T) *TestManager
func (*TestManager) Default ¶
func (m *TestManager) Default(cant bool)
type TestParser ¶ added in v1.1.1
type TestParser struct { T *testing.T CantParseVtx bool ParseVtxF func([]byte) (avalanche.Vertex, error) }
func (*TestParser) Default ¶ added in v1.1.1
func (p *TestParser) Default(cant bool)
type TestStorage ¶ added in v1.1.1
type TestStorage struct { T *testing.T CantGetVtx, CantEdge, CantStopVertexAccepted bool GetVtxF func(ids.ID) (avalanche.Vertex, error) EdgeF func() []ids.ID StopVertexAcceptedF func() (bool, error) }
func (*TestStorage) Default ¶ added in v1.1.1
func (s *TestStorage) Default(cant bool)
func (*TestStorage) Edge ¶ added in v1.1.1
func (s *TestStorage) Edge() []ids.ID
func (*TestStorage) StopVertexAccepted ¶ added in v1.7.14
func (s *TestStorage) StopVertexAccepted() (bool, error)