mesh

package
v0.2.24-beta.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 15, 2023 License: MIT Imports: 23 Imported by: 0

Documentation

Overview

Package mesh defines the main store point for all the persisted mesh objects such as ATXs, ballots and blocks.

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrLayerNotInOrder = errors.New("layers not applied in order")
	ErrLayerApplied    = errors.New("layer already applied")
)

Functions

This section is empty.

Types

type Executor added in v1.0.0

type Executor struct {
	// contains filtered or unexported fields
}

func NewExecutor added in v1.0.0

func NewExecutor(cdb *datastore.CachedDB, vm vmState, cs conservativeState, lg log.Log) *Executor

func (*Executor) Execute added in v1.0.0

func (e *Executor) Execute(ctx context.Context, lid types.LayerID, block *types.Block) error

Execute transactions in the specified block and update the conservative cache.

func (*Executor) ExecuteOptimistic added in v1.0.0

func (e *Executor) ExecuteOptimistic(
	ctx context.Context,
	lid types.LayerID,
	tickHeight uint64,
	rewards []types.AnyReward,
	tids []types.TransactionID,
) (*types.Block, error)

ExecuteOptimistic executes the specified transactions and returns a block that contains only successfully executed transactions.

func (*Executor) Revert added in v1.0.0

func (e *Executor) Revert(ctx context.Context, revertTo types.LayerID) error

Revert reverts the VM state and conservative cache to the given layer.

type Mesh

type Mesh struct {
	// contains filtered or unexported fields
}

Mesh is the logic layer above our mesh.DB database.

func NewMesh

func NewMesh(cdb *datastore.CachedDB, c layerClock, trtl system.Tortoise, exec *Executor, state conservativeState, logger log.Log) (*Mesh, error)

NewMesh creates a new instant of a mesh.

func (*Mesh) AddBallot added in v1.0.0

func (msh *Mesh) AddBallot(ctx context.Context, ballot *types.Ballot) (*types.MalfeasanceProof, error)

AddBallot to the mesh.

func (*Mesh) AddBlockWithTXs added in v1.0.0

func (msh *Mesh) AddBlockWithTXs(ctx context.Context, block *types.Block) error

AddBlockWithTXs adds the block and its TXs in into the database.

func (*Mesh) AddTXsFromProposal added in v1.0.0

func (msh *Mesh) AddTXsFromProposal(ctx context.Context, layerID types.LayerID, proposalID types.ProposalID, txIDs []types.TransactionID) error

AddTXsFromProposal adds the TXs in a Proposal into the database.

func (*Mesh) GetATXs

func (msh *Mesh) GetATXs(ctx context.Context, atxIds []types.ATXID) (map[types.ATXID]*types.VerifiedActivationTx, []types.ATXID)

GetATXs uses GetFullAtx to return a list of atxs corresponding to atxIds requested.

func (*Mesh) GetLayer

func (msh *Mesh) GetLayer(lid types.LayerID) (*types.Layer, error)

GetLayer returns GetLayer i from the database.

func (*Mesh) GetRewards added in v1.0.0

func (msh *Mesh) GetRewards(coinbase types.Address) ([]*types.Reward, error)

GetRewards retrieves account's rewards by the coinbase address.

func (*Mesh) LastVerified added in v1.0.0

func (msh *Mesh) LastVerified() types.LayerID

LastVerified returns the latest layer verified by tortoise.

func (*Mesh) LatestLayer

func (msh *Mesh) LatestLayer() types.LayerID

LatestLayer - returns the latest layer we saw from the network.

func (*Mesh) LatestLayerInState

func (msh *Mesh) LatestLayerInState() types.LayerID

LatestLayerInState returns the latest layer we applied to state.

func (*Mesh) MeshHash added in v1.0.0

func (msh *Mesh) MeshHash(lid types.LayerID) (types.Hash32, error)

MeshHash returns the aggregated mesh hash at the specified layer.

func (*Mesh) MissingLayer

func (msh *Mesh) MissingLayer() types.LayerID

MissingLayer is a layer in (latestLayerInState, processLayer]. this layer is missing critical data (valid blocks or transactions) and can't be applied to the state.

First valid layer starts with 1. 0 is empty layer and can be ignored.

func (*Mesh) ProcessLayer added in v1.0.0

func (msh *Mesh) ProcessLayer(ctx context.Context, layerID types.LayerID) error

ProcessLayer performs fairly heavy lifting: it triggers tortoise to process the full contents of the layer (i.e., all of its blocks), then to attempt to validate all unvalidated layers up to this layer. It also applies state for newly-validated layers.

func (*Mesh) ProcessLayerPerHareOutput added in v1.0.0

func (msh *Mesh) ProcessLayerPerHareOutput(ctx context.Context, layerID types.LayerID, blockID types.BlockID, executed bool) error

ProcessLayerPerHareOutput receives hare output once it finishes running for a given layer.

func (*Mesh) ProcessedLayer

func (msh *Mesh) ProcessedLayer() types.LayerID

ProcessedLayer returns the last processed layer ID.

func (*Mesh) SetZeroBlockLayer added in v0.1.6

func (msh *Mesh) SetZeroBlockLayer(ctx context.Context, lid types.LayerID)

SetZeroBlockLayer advances the latest layer in the network with a layer that truly has no data.

Directories

Path Synopsis
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL