updaters

package
v1.2.4 Latest Latest
Warning

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

Go to latest
Published: Apr 22, 2024 License: Apache-2.0 Imports: 27 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CacheMaxCost                = 10 * 1024 // 10K cost
	CacheNumCounters            = 100000    // expect 10K items
	DefaultTimeToLiveExpiration = 30 * time.Minute
	PairingRespKey              = "pairing-resp"
	VerifyPairingRespKey        = "verify-pairing-resp"
	MaxCuResponseKey            = "max-cu-resp"
	EffectivePolicyRespKey      = "effective-policy-resp"
)
View Source
const (
	BlockResultRetry = 20
)
View Source
const (
	CallbackKeyForDowntimeParamsUpdate = "downtime-params-update"
)
View Source
const (
	CallbackKeyForEpochUpdate = "epoch-update"
)
View Source
const (
	CallbackKeyForFinalizationConsensusUpdate = "finalization-consensus-update"
)
View Source
const (
	CallbackKeyForMetricUpdate = "metric-update"
)
View Source
const (
	CallbackKeyForPairingUpdate = "pairing-update"
)
View Source
const (
	CallbackKeyForPaymentUpdate = "payment-update"
)
View Source
const (
	CallbackKeyForPolicyUpdate = "policy-update"
)
View Source
const (
	CallbackKeyForSpecUpdate = "spec-update"
)
View Source
const (
	CallbackKeyForVersionUpdate = "version-update"
)
View Source
const (
	CallbackKeyForVoteUpdate = "vote-update"
)

Variables

View Source
var TimeOutForFetchingLavaBlocks = time.Second * 5

Functions

func TryIntoTendermintRPC

func TryIntoTendermintRPC(cl client.TendermintRPC) (tendermintRPC, error)

Types

type ConsumerStateQuery

type ConsumerStateQuery struct {
	StateQuery
	// contains filtered or unexported fields
}

func NewConsumerStateQuery

func NewConsumerStateQuery(ctx context.Context, clientCtx client.Context) *ConsumerStateQuery

func (*ConsumerStateQuery) GetEffectivePolicy

func (csq *ConsumerStateQuery) GetEffectivePolicy(ctx context.Context, consumerAddress, specID string) (*plantypes.Policy, error)

func (*ConsumerStateQuery) GetMaxCUForUser

func (csq *ConsumerStateQuery) GetMaxCUForUser(ctx context.Context, chainID string, epoch uint64) (maxCu uint64, err error)

func (*ConsumerStateQuery) GetPairing

func (csq *ConsumerStateQuery) GetPairing(ctx context.Context, chainID string, latestBlock int64) (pairingList []epochstoragetypes.StakeEntry, epoch, nextBlockForUpdate uint64, errRet error)

type DowntimeParamsStateQuery

type DowntimeParamsStateQuery interface {
	GetDowntimeParams(ctx context.Context) (*downtimev1.Params, error)
}

type DowntimeParamsUpdatable

type DowntimeParamsUpdatable interface {
	SetDowntimeParams(downtimev1.Params)
}

type DowntimeParamsUpdater

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

DowntimeParamsUpdater update downtime params for registered updatables after params change proposals

func NewDowntimeParamsUpdater

func NewDowntimeParamsUpdater(downtimeParamsStateQuery DowntimeParamsStateQuery, eventTracker *EventTracker) *DowntimeParamsUpdater

func (*DowntimeParamsUpdater) RegisterDowntimeParamsUpdatable

func (dpu *DowntimeParamsUpdater) RegisterDowntimeParamsUpdatable(ctx context.Context, downtimeParamsUpdatable *DowntimeParamsUpdatable) error

func (*DowntimeParamsUpdater) Reset

func (dpu *DowntimeParamsUpdater) Reset(latestBlock int64)

func (*DowntimeParamsUpdater) Update

func (dpu *DowntimeParamsUpdater) Update(latestBlock int64)

func (*DowntimeParamsUpdater) UpdaterKey

func (dpu *DowntimeParamsUpdater) UpdaterKey() string

type EpochStateQuery

type EpochStateQuery struct {
	StateQuery
}

func NewEpochStateQuery

func NewEpochStateQuery(stateQuery *StateQuery) *EpochStateQuery

func (*EpochStateQuery) CurrentEpochStart

func (esq *EpochStateQuery) CurrentEpochStart(ctx context.Context) (uint64, error)

type EpochStateQueryInterface

type EpochStateQueryInterface interface {
	CurrentEpochStart(ctx context.Context) (uint64, error)
}

type EpochUpdatable

type EpochUpdatable interface {
	UpdateEpoch(epoch uint64)
}

type EpochUpdatableWithBlockDelay

type EpochUpdatableWithBlockDelay struct {
	EpochUpdatable
	// contains filtered or unexported fields
}

func (*EpochUpdatableWithBlockDelay) UpdateOnBlock

func (euwbd *EpochUpdatableWithBlockDelay) UpdateOnBlock(currentEpoch uint64, latestBlock int64)

Add a method to EpochUpdatableWithBlockDelay to update based on block delay.

type EpochUpdater

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

func NewEpochUpdater

func NewEpochUpdater(stateQuery EpochStateQueryInterface) *EpochUpdater

func (*EpochUpdater) RegisterEpochUpdatable

func (eu *EpochUpdater) RegisterEpochUpdatable(ctx context.Context, epochUpdatable EpochUpdatable, blocksUpdateDelay int64)

func (*EpochUpdater) Reset

func (eu *EpochUpdater) Reset(latestBlock int64)

func (*EpochUpdater) Update

func (eu *EpochUpdater) Update(latestBlock int64)

func (*EpochUpdater) UpdaterKey

func (eu *EpochUpdater) UpdaterKey() string

type EventTracker

type EventTracker struct {
	ClientCtx client.Context
	// contains filtered or unexported fields
}

func (*EventTracker) UpdateBlockResults

func (et *EventTracker) UpdateBlockResults(latestBlock int64) (err error)

type FinalizationConsensusUpdater

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

func NewFinalizationConsensusUpdater

func NewFinalizationConsensusUpdater(stateQuery *ConsumerStateQuery) *FinalizationConsensusUpdater

func (*FinalizationConsensusUpdater) RegisterFinalizationConsensus

func (fcu *FinalizationConsensusUpdater) RegisterFinalizationConsensus(finalizationConsensus *lavaprotocol.FinalizationConsensus)

func (*FinalizationConsensusUpdater) Reset

func (fcu *FinalizationConsensusUpdater) Reset(latestBlock int64)

func (*FinalizationConsensusUpdater) Update

func (fcu *FinalizationConsensusUpdater) Update(latestBlock int64)

func (*FinalizationConsensusUpdater) UpdaterKey

func (fcu *FinalizationConsensusUpdater) UpdaterKey() string

type MetricsManagerInf

type MetricsManagerInf interface {
	SetBlock(int64)
}

type MetricsUpdater

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

func NewMetricsUpdater

func NewMetricsUpdater(consumerMetricsManager MetricsManagerInf) *MetricsUpdater

func (*MetricsUpdater) Reset

func (mu *MetricsUpdater) Reset(latestBlock int64)

func (*MetricsUpdater) Update

func (mu *MetricsUpdater) Update(latestBlock int64)

func (*MetricsUpdater) UpdaterKey

func (mu *MetricsUpdater) UpdaterKey() string

type PairingUpdatable

type PairingUpdatable interface {
	UpdateEpoch(epoch uint64)
}

type PairingUpdater

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

func NewPairingUpdater

func NewPairingUpdater(stateQuery *ConsumerStateQuery) *PairingUpdater

func (*PairingUpdater) RegisterPairing

func (pu *PairingUpdater) RegisterPairing(ctx context.Context, consumerSessionManager *lavasession.ConsumerSessionManager) error

func (*PairingUpdater) RegisterPairingUpdatable

func (pu *PairingUpdater) RegisterPairingUpdatable(ctx context.Context, pairingUpdatable *PairingUpdatable) error

func (*PairingUpdater) Reset

func (pu *PairingUpdater) Reset(latestBlock int64)

func (*PairingUpdater) Update

func (pu *PairingUpdater) Update(latestBlock int64)

func (*PairingUpdater) UpdaterKey

func (pu *PairingUpdater) UpdaterKey() string

type PaymentUpdatable

type PaymentUpdatable interface {
	PaymentHandler(*rewardserver.PaymentRequest)
	Description() string
}

type PaymentUpdater

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

func NewPaymentUpdater

func NewPaymentUpdater(eventTracker *EventTracker) *PaymentUpdater

func (*PaymentUpdater) RegisterPaymentUpdatable

func (pu *PaymentUpdater) RegisterPaymentUpdatable(ctx context.Context, paymentUpdatable *PaymentUpdatable)

func (*PaymentUpdater) Reset

func (pu *PaymentUpdater) Reset(latestBlock int64)

func (*PaymentUpdater) Update

func (pu *PaymentUpdater) Update(latestBlock int64)

func (*PaymentUpdater) UpdaterKey

func (pu *PaymentUpdater) UpdaterKey() string

type PolicyFetcher

type PolicyFetcher interface {
	GetConsumerPolicy(ctx context.Context, consumerAddress, chainID string) (*plantypes.Policy, error)
}

type PolicySetter

type PolicySetter interface {
	SetPolicy(policy chainlib.PolicyInf, chainId string, apiInterface string) error
}

type PolicyUpdater

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

func NewPolicyUpdater

func NewPolicyUpdater(chainId string, policyFetcher PolicyFetcher, consumerAddress string, policyUpdatable PolicySetter, endpoint lavasession.RPCEndpoint) *PolicyUpdater

func (*PolicyUpdater) AddPolicySetter

func (pu *PolicyUpdater) AddPolicySetter(policyUpdatable PolicySetter, endpoint lavasession.RPCEndpoint) error

func (*PolicyUpdater) UpdateEpoch

func (pu *PolicyUpdater) UpdateEpoch(epoch uint64)

func (*PolicyUpdater) UpdaterKey

func (pu *PolicyUpdater) UpdaterKey() string

type ProtocolVersionResponse

type ProtocolVersionResponse struct {
	Version     *protocoltypes.Version
	BlockNumber string
}

type ProviderStateQuery

type ProviderStateQuery struct {
	StateQuery
	EpochStateQuery
	// contains filtered or unexported fields
}

func NewProviderStateQuery

func NewProviderStateQuery(ctx context.Context, clientCtx client.Context) *ProviderStateQuery

func (*ProviderStateQuery) EarliestBlockInMemory

func (psq *ProviderStateQuery) EarliestBlockInMemory(ctx context.Context) (uint64, error)

func (*ProviderStateQuery) GetEpochSize

func (psq *ProviderStateQuery) GetEpochSize(ctx context.Context) (uint64, error)

func (*ProviderStateQuery) GetEpochSizeMultipliedByRecommendedEpochNumToCollectPayment

func (psq *ProviderStateQuery) GetEpochSizeMultipliedByRecommendedEpochNumToCollectPayment(ctx context.Context) (uint64, error)

func (*ProviderStateQuery) GetMaxCuForUser

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

func (*ProviderStateQuery) GetRecommendedEpochNumToCollectPayment

func (psq *ProviderStateQuery) GetRecommendedEpochNumToCollectPayment(ctx context.Context) (uint64, error)

func (*ProviderStateQuery) VerifyPairing

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

func (*ProviderStateQuery) VoteEvents

func (psq *ProviderStateQuery) VoteEvents(ctx context.Context, latestBlock int64) (votes []*reliabilitymanager.VoteParams, err error)

type SpecGetter

type SpecGetter interface {
	GetSpec(ctx context.Context, chainID string) (*spectypes.Spec, error)
}

type SpecUpdatable

type SpecUpdatable interface {
	SetSpec(spectypes.Spec)
	Active() bool
	GetUniqueName() string
}

type SpecUpdater

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

func NewSpecUpdater

func NewSpecUpdater(chainId string, specGetter SpecGetter, eventTracker *EventTracker) *SpecUpdater

func (*SpecUpdater) RegisterSpecUpdatable

func (su *SpecUpdater) RegisterSpecUpdatable(ctx context.Context, specUpdatable *SpecUpdatable, endpoint lavasession.RPCEndpoint) error

func (*SpecUpdater) RegisterSpecVerifier

func (su *SpecUpdater) RegisterSpecVerifier(ctx context.Context, specVerifier *SpecVerifier, chainId string) error

func (*SpecUpdater) Reset

func (su *SpecUpdater) Reset(latestBlock int64)

func (*SpecUpdater) Update

func (su *SpecUpdater) Update(latestBlock int64)

func (*SpecUpdater) UpdaterKey

func (su *SpecUpdater) UpdaterKey() string

type SpecVerifier

type SpecVerifier interface {
	VerifySpec(spectypes.Spec)
	GetUniqueName() string
}

type StateQuery

type StateQuery struct {
	SpecQueryClient         spectypes.QueryClient
	PairingQueryClient      pairingtypes.QueryClient
	EpochStorageQueryClient epochstoragetypes.QueryClient
	ProtocolClient          protocoltypes.QueryClient
	DowntimeClient          downtimev1.QueryClient
	ResponsesCache          *ristretto.Cache
}

func NewStateQuery

func NewStateQuery(ctx context.Context, clientCtx client.Context) *StateQuery

func (*StateQuery) GetDowntimeParams

func (csq *StateQuery) GetDowntimeParams(ctx context.Context) (*downtimev1.Params, error)

func (*StateQuery) GetProtocolVersion

func (csq *StateQuery) GetProtocolVersion(ctx context.Context) (*ProtocolVersionResponse, error)

func (*StateQuery) GetSpec

func (csq *StateQuery) GetSpec(ctx context.Context, chainID string) (*spectypes.Spec, error)

type VersionStateQuery

type VersionStateQuery interface {
	GetProtocolVersion(ctx context.Context) (*ProtocolVersionResponse, error)
}

type VersionUpdater

type VersionUpdater struct {
	Lock sync.RWMutex

	VersionStateQuery    VersionStateQuery
	LastKnownVersion     *ProtocolVersionResponse
	VersionValidationInf // embedding the interface, this tells: VersionUpdater has ValidateProtocolVersion method
	// contains filtered or unexported fields
}

func NewVersionUpdater

func NewVersionUpdater(versionStateQuery VersionStateQuery, eventTracker *EventTracker, version *protocoltypes.Version, versionValidator VersionValidationInf) *VersionUpdater

func (*VersionUpdater) RegisterVersionUpdatable

func (vu *VersionUpdater) RegisterVersionUpdatable()

func (*VersionUpdater) Reset

func (vu *VersionUpdater) Reset(latestBlock int64)

func (*VersionUpdater) Update

func (vu *VersionUpdater) Update(latestBlock int64)

func (*VersionUpdater) UpdaterKey

func (vu *VersionUpdater) UpdaterKey() string

type VersionValidationInf

type VersionValidationInf interface {
	ValidateProtocolVersion(lastKnownVersion *ProtocolVersionResponse) error
}

type VoteUpdatable

type VoteUpdatable interface {
	VoteHandler(*reliabilitymanager.VoteParams, uint64) error
}

type VoteUpdater

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

func NewVoteUpdater

func NewVoteUpdater(eventTracker *EventTracker) *VoteUpdater

func (*VoteUpdater) RegisterVoteUpdatable

func (vu *VoteUpdater) RegisterVoteUpdatable(ctx context.Context, voteUpdatable *VoteUpdatable, endpoint lavasession.RPCEndpoint)

func (*VoteUpdater) Reset

func (vu *VoteUpdater) Reset(latestBlock int64)

func (*VoteUpdater) Update

func (vu *VoteUpdater) Update(latestBlock int64)

func (*VoteUpdater) UpdaterKey

func (vu *VoteUpdater) UpdaterKey() string

Jump to

Keyboard shortcuts

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