Documentation ¶
Overview ¶
Package mesh defines the main store point for all the persisted mesh objects such as ATXs, ballots and blocks.
Index ¶
- Variables
- type Executor
- type MalfeasanceHandler
- type MalfeasanceOpt
- type Mesh
- func (msh *Mesh) AddBallot(ctx context.Context, ballot *types.Ballot) (*wire.MalfeasanceProof, error)
- func (msh *Mesh) AddBlockWithTXs(ctx context.Context, block *types.Block) error
- func (msh *Mesh) AddTXsFromProposal(ctx context.Context, layerID types.LayerID, proposalID types.ProposalID, ...) error
- func (msh *Mesh) GetLayer(lid types.LayerID) (*types.Layer, error)
- func (msh *Mesh) GetLayerVerified(lid types.LayerID) (*types.Block, error)
- func (msh *Mesh) GetRewardsByCoinbase(coinbase types.Address) ([]*types.Reward, error)
- func (msh *Mesh) GetRewardsBySmesherId(smesherID types.NodeID) ([]*types.Reward, error)
- func (msh *Mesh) LastVerified() types.LayerID
- func (msh *Mesh) LatestLayer() types.LayerID
- func (msh *Mesh) LatestLayerInState() types.LayerID
- func (msh *Mesh) MeshHash(lid types.LayerID) (types.Hash32, error)
- func (msh *Mesh) MissingBlocks() <-chan []types.BlockID
- func (msh *Mesh) ProcessLayer(ctx context.Context, lid types.LayerID) error
- func (msh *Mesh) ProcessLayerPerHareOutput(ctx context.Context, layerID types.LayerID, blockID types.BlockID, ...) error
- func (msh *Mesh) ProcessedLayer() types.LayerID
- func (msh *Mesh) SetZeroBlockLayer(ctx context.Context, lid types.LayerID)
- type MissingBlocksError
Constants ¶
This section is empty.
Variables ¶
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 (*Executor) Execute ¶ added in v1.0.0
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.
type MalfeasanceHandler ¶ added in v1.6.0
type MalfeasanceHandler struct {
// contains filtered or unexported fields
}
func NewMalfeasanceHandler ¶ added in v1.6.0
func NewMalfeasanceHandler( db sql.Executor, edVerifier *signing.EdVerifier, opt ...MalfeasanceOpt, ) *MalfeasanceHandler
func (*MalfeasanceHandler) ReportInvalidProof ¶ added in v1.6.0
func (mh *MalfeasanceHandler) ReportInvalidProof(numInvalidProofs *prometheus.CounterVec)
func (*MalfeasanceHandler) ReportProof ¶ added in v1.6.0
func (mh *MalfeasanceHandler) ReportProof(numProofs *prometheus.CounterVec)
type MalfeasanceOpt ¶ added in v1.6.0
type MalfeasanceOpt func(*MalfeasanceHandler)
func WithMalfeasanceLogger ¶ added in v1.6.0
func WithMalfeasanceLogger(logger *zap.Logger) MalfeasanceOpt
type Mesh ¶
type Mesh struct {
// contains filtered or unexported fields
}
Mesh is the logic layer above our mesh.DB database.
func NewMesh ¶
func NewMesh( db *sql.Database, atxsdata *atxsdata.Data, 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, ) (*wire.MalfeasanceProof, error)
AddBallot to the mesh.
func (*Mesh) AddBlockWithTXs ¶ added in v1.0.0
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) GetLayerVerified ¶ added in v1.3.3
GetLayerVerified returns the verified, canonical block for a layer (or none for an empty layer).
func (*Mesh) GetRewardsByCoinbase ¶ added in v1.3.0
GetRewardsByCoinbase retrieves account's rewards by the coinbase address.
func (*Mesh) GetRewardsBySmesherId ¶ added in v1.3.0
GetRewardsBySmesherId retrieves account's rewards by the smesher ID.
func (*Mesh) LastVerified ¶ added in v1.0.0
LastVerified returns the latest layer verified by tortoise.
func (*Mesh) LatestLayer ¶
LatestLayer - returns the latest layer we saw from the network.
func (*Mesh) LatestLayerInState ¶
LatestLayerInState returns the latest layer we applied to state.
func (*Mesh) MeshHash ¶ added in v1.0.0
MeshHash returns the aggregated mesh hash at the specified layer.
func (*Mesh) MissingBlocks ¶ added in v1.0.16
MissingBlocks returns single consumer channel. Consumer by contract is responsible for downloading missing blocks.
func (*Mesh) ProcessLayer ¶ added in v1.0.0
ProcessLayer reads latest consensus results and ensures that vm state is consistent with results. It is safe to call after optimistically executing the block.
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 ¶
ProcessedLayer returns the last processed layer ID.
type MissingBlocksError ¶ added in v1.4.3
func (*MissingBlocksError) Error ¶ added in v1.4.3
func (e *MissingBlocksError) Error() string