statetracker

package
v0.35.8 Latest Latest
Warning

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

Go to latest
Published: Mar 4, 2024 License: Apache-2.0 Imports: 40 Imported by: 0

Documentation

Index

Constants

View Source
const (
	FlagTimeout                 = "timeout"
	FlagValue                   = "value"
	FlagEventName               = "event"
	FlagBreak                   = "break"
	FlagHasAttributeName        = "has-attribute"
	FlagShowAttributeName       = "show-attribute"
	FlagDisableInteractiveShell = "disable-interactive"
)
View Source
const (
	BlocksToSaveLavaChainTracker   = 1 // we only need the latest block
	TendermintConsensusParamsQuery = "consensus_params"
)
View Source
const (

	// same account can continue failing the more providers you have under the same account
	// for example if you have a provider staked at 20 chains you will ask for 20 payments per epoch.
	// therefore currently our best solution is to continue retrying increasing sequence number until successful
	RETRY_INCORRECT_SEQUENCE = 100
)

Variables

This section is empty.

Functions

func CreateEventsCobraCommand

func CreateEventsCobraCommand() *cobra.Command

Types

type ConsumerEmergencyTrackerInf

type ConsumerEmergencyTrackerInf interface {
	GetLatestVirtualEpoch() uint64
}

type ConsumerStateTracker

type ConsumerStateTracker struct {
	ConsumerTxSenderInf
	*StateTracker
	ConsumerEmergencyTrackerInf
	// contains filtered or unexported fields
}

ConsumerStateTracker CSTis a class for tracking consumer data from the lava blockchain, such as epoch changes. it allows also to query specific data form the blockchain and acts as a single place to send transactions

func NewConsumerStateTracker

func NewConsumerStateTracker(ctx context.Context, txFactory tx.Factory, clientCtx client.Context, chainFetcher chaintracker.ChainFetcher, metrics *metrics.ConsumerMetricsManager, disableConflictTransactions bool) (ret *ConsumerStateTracker, err error)

func (*ConsumerStateTracker) GetConsumerPolicy

func (cst *ConsumerStateTracker) GetConsumerPolicy(ctx context.Context, consumerAddress, chainID string) (*plantypes.Policy, error)

func (*ConsumerStateTracker) GetProtocolVersion

func (cst *ConsumerStateTracker) GetProtocolVersion(ctx context.Context) (*updaters.ProtocolVersionResponse, error)

func (*ConsumerStateTracker) RegisterConsumerSessionManagerForPairingUpdates

func (cst *ConsumerStateTracker) RegisterConsumerSessionManagerForPairingUpdates(ctx context.Context, consumerSessionManager *lavasession.ConsumerSessionManager)

func (*ConsumerStateTracker) RegisterFinalizationConsensusForUpdates

func (cst *ConsumerStateTracker) RegisterFinalizationConsensusForUpdates(ctx context.Context, finalizationConsensus *lavaprotocol.FinalizationConsensus)

func (*ConsumerStateTracker) RegisterForDowntimeParamsUpdates

func (cst *ConsumerStateTracker) RegisterForDowntimeParamsUpdates(ctx context.Context, downtimeParamsUpdatable updaters.DowntimeParamsUpdatable) error

func (*ConsumerStateTracker) RegisterForPairingUpdates

func (cst *ConsumerStateTracker) RegisterForPairingUpdates(ctx context.Context, pairingUpdatable updaters.PairingUpdatable)

func (*ConsumerStateTracker) RegisterForSpecUpdates

func (cst *ConsumerStateTracker) RegisterForSpecUpdates(ctx context.Context, specUpdatable updaters.SpecUpdatable, endpoint lavasession.RPCEndpoint) error

func (*ConsumerStateTracker) RegisterForVersionUpdates

func (cst *ConsumerStateTracker) RegisterForVersionUpdates(ctx context.Context, version *protocoltypes.Version, versionValidator updaters.VersionValidationInf)

func (*ConsumerStateTracker) TxConflictDetection

func (cst *ConsumerStateTracker) TxConflictDetection(ctx context.Context, finalizationConflict *conflicttypes.FinalizationConflict, responseConflict *conflicttypes.ResponseConflict, sameProviderConflict *conflicttypes.FinalizationConflict, conflictHandler common.ConflictHandlerInterface) error

type ConsumerTxSender

type ConsumerTxSender struct {
	*TxSender
}

func NewConsumerTxSender

func NewConsumerTxSender(ctx context.Context, clientCtx client.Context, txFactory tx.Factory) (ret *ConsumerTxSender, err error)

func (*ConsumerTxSender) TxSenderConflictDetection

func (ts *ConsumerTxSender) TxSenderConflictDetection(ctx context.Context, finalizationConflict *conflicttypes.FinalizationConflict, responseConflict *conflicttypes.ResponseConflict, sameProviderConflict *conflicttypes.FinalizationConflict) error

type ConsumerTxSenderInf

type ConsumerTxSenderInf interface {
	TxSenderConflictDetection(ctx context.Context, finalizationConflict *conflicttypes.FinalizationConflict, responseConflict *conflicttypes.ResponseConflict, sameProviderConflict *conflicttypes.FinalizationConflict) error
}

type EmergencyTracker

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

func NewEmergencyTracker

func NewEmergencyTracker(metrics EmergencyTrackerMetrics) (emergencyTracker *EmergencyTracker, emergencyCallback func(latestBlockTime time.Time))

func (*EmergencyTracker) GetDowntimeParams

func (cs *EmergencyTracker) GetDowntimeParams() downtimev1.Params

func (*EmergencyTracker) GetLatestVirtualEpoch

func (cs *EmergencyTracker) GetLatestVirtualEpoch() uint64

func (*EmergencyTracker) GetVirtualEpoch

func (cs *EmergencyTracker) GetVirtualEpoch(epoch uint64) uint64

func (*EmergencyTracker) SetDowntimeParams

func (cs *EmergencyTracker) SetDowntimeParams(params downtimev1.Params)

func (*EmergencyTracker) UpdateEpoch

func (cs *EmergencyTracker) UpdateEpoch(epoch uint64)

type EmergencyTrackerMetrics

type EmergencyTrackerMetrics interface {
	SetVirtualEpoch(virtualEpoch uint64)
}

type ProviderStateTracker

type ProviderStateTracker struct {
	*StateTracker
	*EmergencyTracker
	// contains filtered or unexported fields
}

ProviderStateTracker PST is a class for tracking provider data from the lava blockchain, such as epoch changes. it allows also to query specific data form the blockchain and acts as a single place to send transactions

func NewProviderStateTracker

func NewProviderStateTracker(ctx context.Context, txFactory tx.Factory, clientCtx client.Context, chainFetcher chaintracker.ChainFetcher, metrics *metrics.ProviderMetricsManager) (ret *ProviderStateTracker, err error)

func (*ProviderStateTracker) EarliestBlockInMemory

func (pst *ProviderStateTracker) EarliestBlockInMemory(ctx context.Context) (uint64, error)

func (*ProviderStateTracker) GetAverageBlockTime

func (pst *ProviderStateTracker) GetAverageBlockTime() time.Duration

func (*ProviderStateTracker) GetEpochSize

func (pst *ProviderStateTracker) GetEpochSize(ctx context.Context) (uint64, error)

func (*ProviderStateTracker) GetEpochSizeMultipliedByRecommendedEpochNumToCollectPayment

func (pst *ProviderStateTracker) GetEpochSizeMultipliedByRecommendedEpochNumToCollectPayment(ctx context.Context) (uint64, error)

func (*ProviderStateTracker) GetMaxCuForUser

func (pst *ProviderStateTracker) GetMaxCuForUser(ctx context.Context, consumerAddress, chainID string, epoch uint64) (maxCu uint64, err error)

func (*ProviderStateTracker) GetProtocolVersion

func (pst *ProviderStateTracker) GetProtocolVersion(ctx context.Context) (*updaters.ProtocolVersionResponse, error)

func (*ProviderStateTracker) GetRecommendedEpochNumToCollectPayment

func (pst *ProviderStateTracker) GetRecommendedEpochNumToCollectPayment(ctx context.Context) (uint64, error)

func (*ProviderStateTracker) LatestBlock

func (pst *ProviderStateTracker) LatestBlock() int64

func (*ProviderStateTracker) RegisterForDowntimeParamsUpdates

func (pst *ProviderStateTracker) RegisterForDowntimeParamsUpdates(ctx context.Context, downtimeParamsUpdatable updaters.DowntimeParamsUpdatable) error

func (*ProviderStateTracker) RegisterForEpochUpdates

func (pst *ProviderStateTracker) RegisterForEpochUpdates(ctx context.Context, epochUpdatable updaters.EpochUpdatable)

func (*ProviderStateTracker) RegisterForSpecUpdates

func (pst *ProviderStateTracker) RegisterForSpecUpdates(ctx context.Context, specUpdatable updaters.SpecUpdatable, endpoint lavasession.RPCEndpoint) error

func (*ProviderStateTracker) RegisterForSpecVerifications

func (pst *ProviderStateTracker) RegisterForSpecVerifications(ctx context.Context, specVerifier updaters.SpecVerifier, chainId string) error

func (*ProviderStateTracker) RegisterForVersionUpdates

func (pst *ProviderStateTracker) RegisterForVersionUpdates(ctx context.Context, version *protocoltypes.Version, versionValidator updaters.VersionValidationInf)

func (*ProviderStateTracker) RegisterPaymentUpdatableForPayments

func (pst *ProviderStateTracker) RegisterPaymentUpdatableForPayments(ctx context.Context, paymentUpdatable updaters.PaymentUpdatable)

func (*ProviderStateTracker) RegisterReliabilityManagerForVoteUpdates

func (pst *ProviderStateTracker) RegisterReliabilityManagerForVoteUpdates(ctx context.Context, voteUpdatable updaters.VoteUpdatable, endpointP *lavasession.RPCProviderEndpoint)

func (*ProviderStateTracker) SendVoteCommitment

func (pst *ProviderStateTracker) SendVoteCommitment(voteID string, vote *reliabilitymanager.VoteData) error

func (*ProviderStateTracker) SendVoteReveal

func (pst *ProviderStateTracker) SendVoteReveal(voteID string, vote *reliabilitymanager.VoteData) error

func (*ProviderStateTracker) TxRelayPayment

func (pst *ProviderStateTracker) TxRelayPayment(ctx context.Context, relayRequests []*pairingtypes.RelaySession, description string, latestBlocks []*pairingtypes.LatestBlockReport) error

func (*ProviderStateTracker) VerifyPairing

func (pst *ProviderStateTracker) VerifyPairing(ctx context.Context, consumerAddress, providerAddress string, epoch uint64, chainID string) (valid bool, total int64, projectId string, err error)

type ProviderTxSender

type ProviderTxSender struct {
	*TxSender
}

func NewProviderTxSender

func NewProviderTxSender(ctx context.Context, clientCtx client.Context, txFactory tx.Factory) (ret *ProviderTxSender, err error)

func (*ProviderTxSender) SendVoteCommitment

func (pts *ProviderTxSender) SendVoteCommitment(voteID string, vote *reliabilitymanager.VoteData) error

func (*ProviderTxSender) SendVoteReveal

func (pts *ProviderTxSender) SendVoteReveal(voteID string, vote *reliabilitymanager.VoteData) error

func (*ProviderTxSender) TxRelayPayment

func (pts *ProviderTxSender) TxRelayPayment(ctx context.Context, relayRequests []*pairingtypes.RelaySession, description string, latestBlocks []*pairingtypes.LatestBlockReport) error

type StateTracker

type StateTracker struct {
	EventTracker     *updaters.EventTracker
	AverageBlockTime time.Duration
	// contains filtered or unexported fields
}

ConsumerStateTracker CSTis a class for tracking consumer data from the lava blockchain, such as epoch changes. it allows also to query specific data form the blockchain and acts as a single place to send transactions

func NewStateTracker

func NewStateTracker(ctx context.Context, txFactory tx.Factory, clientCtx client.Context, chainFetcher chaintracker.ChainFetcher, blockNotFoundCallback func(latestBlockTime time.Time)) (ret *StateTracker, err error)

func (*StateTracker) GetAverageBlockTime

func (st *StateTracker) GetAverageBlockTime() time.Duration

func (*StateTracker) GetEventTracker

func (st *StateTracker) GetEventTracker() *updaters.EventTracker

For lavavisor access

func (*StateTracker) RegisterForUpdates

func (st *StateTracker) RegisterForUpdates(ctx context.Context, updater Updater) Updater

func (*StateTracker) UpdateBlockTime

func (st *StateTracker) UpdateBlockTime(blockTime time.Duration)

type TxSender

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

func NewTxSender

func NewTxSender(ctx context.Context, clientCtx client.Context, txFactory tx.Factory) (ret *TxSender, err error)

func (*TxSender) SendTxAndVerifyCommit

func (ts *TxSender) SendTxAndVerifyCommit(txfactory tx.Factory, msg sdk.Msg) (parsedResult common.TxResultData, err error)

func (*TxSender) SimulateAndBroadCastTxWithRetryOnSeqMismatch

func (ts *TxSender) SimulateAndBroadCastTxWithRetryOnSeqMismatch(msg sdk.Msg, checkProfitability bool) error

type Updater

type Updater interface {
	Update(int64)
	Reset(int64)
	UpdaterKey() string
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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