Documentation ¶
Index ¶
- Constants
- Variables
- func CreateRPCProviderCobraCommand() *cobra.Command
- func CreateTestRPCProviderCobraCommand() *cobra.Command
- func ParseEndpoints(viper_endpoints *viper.Viper, geolocation uint64) (endpoints []*lavasession.RPCProviderEndpoint, err error)
- type ProviderListener
- type ProviderStateTrackerInf
- type RPCProvider
- type RPCProviderServer
- func (rpcps *RPCProviderServer) Relay(ctx context.Context, request *pairingtypes.RelayRequest) (*pairingtypes.RelayReply, error)
- func (rpcps *RPCProviderServer) RelaySubscribe(request *pairingtypes.RelayRequest, ...) error
- func (rpcps *RPCProviderServer) SendProof(ctx context.Context, epoch uint64, request *pairingtypes.RelayRequest, ...) error
- func (rpcps *RPCProviderServer) ServeRPCRequests(ctx context.Context, rpcProviderEndpoint *lavasession.RPCProviderEndpoint, ...)
- func (rpcps *RPCProviderServer) TryRelay(ctx context.Context, request *pairingtypes.RelayRequest, ...) (*pairingtypes.RelayReply, error)
- func (rpcps *RPCProviderServer) TryRelaySubscribe(ctx context.Context, requestBlockHeight uint64, ...) (subscribed bool, errRet error)
- type RelayReceiver
- type ReliabilityManagerInf
- type RewardServerInf
- type StateTrackerInf
Constants ¶
View Source
const ( ChainTrackerDefaultMemory = 100 DEFAULT_ALLOWED_MISSING_CU = 0.2 )
Variables ¶
View Source
var ( Yaml_config_properties = []string{"network-address", "chain-id", "api-interface", "node-urls.url"} DefaultRPCProviderFileName = "rpcprovider.yml" )
Functions ¶
func ParseEndpoints ¶
func ParseEndpoints(viper_endpoints *viper.Viper, geolocation uint64) (endpoints []*lavasession.RPCProviderEndpoint, err error)
Types ¶
type ProviderListener ¶
type ProviderListener struct {
// contains filtered or unexported fields
}
func NewProviderListener ¶
func NewProviderListener(ctx context.Context, networkAddress string) *ProviderListener
func (*ProviderListener) Key ¶
func (pl *ProviderListener) Key() string
func (*ProviderListener) RegisterReceiver ¶
func (pl *ProviderListener) RegisterReceiver(existingReceiver RelayReceiver, endpoint *lavasession.RPCProviderEndpoint) error
type ProviderStateTrackerInf ¶
type ProviderStateTrackerInf interface { RegisterForSpecUpdates(ctx context.Context, specUpdatable statetracker.SpecUpdatable, endpoint lavasession.RPCEndpoint) error RegisterReliabilityManagerForVoteUpdates(ctx context.Context, voteUpdatable statetracker.VoteUpdatable, endpointP *lavasession.RPCProviderEndpoint) RegisterForEpochUpdates(ctx context.Context, epochUpdatable statetracker.EpochUpdatable) TxRelayPayment(ctx context.Context, relayRequests []*pairingtypes.RelaySession, description string) error SendVoteReveal(voteID string, vote *reliabilitymanager.VoteData) error SendVoteCommitment(voteID string, vote *reliabilitymanager.VoteData) error LatestBlock() int64 GetMaxCuForUser(ctx context.Context, consumerAddress string, chainID string, epocu uint64) (maxCu uint64, err error) VerifyPairing(ctx context.Context, consumerAddress string, providerAddress string, epoch uint64, chainID string) (valid bool, total int64, err error) GetProvidersCountForConsumer(ctx context.Context, consumerAddress string, epoch uint64, chainID string) (uint32, error) GetEpochSize(ctx context.Context) (uint64, error) EarliestBlockInMemory(ctx context.Context) (uint64, error) RegisterPaymentUpdatableForPayments(ctx context.Context, paymentUpdatable statetracker.PaymentUpdatable) GetRecommendedEpochNumToCollectPayment(ctx context.Context) (uint64, error) GetEpochSizeMultipliedByRecommendedEpochNumToCollectPayment(ctx context.Context) (uint64, error) }
type RPCProvider ¶
type RPCProvider struct {
// contains filtered or unexported fields
}
func (*RPCProvider) Start ¶
func (rpcp *RPCProvider) Start(ctx context.Context, txFactory tx.Factory, clientCtx client.Context, rpcProviderEndpoints []*lavasession.RPCProviderEndpoint, cache *performance.Cache, parallelConnections uint, metricsListenAddress string) (err error)
type RPCProviderServer ¶
type RPCProviderServer struct {
// contains filtered or unexported fields
}
func (*RPCProviderServer) Relay ¶
func (rpcps *RPCProviderServer) Relay(ctx context.Context, request *pairingtypes.RelayRequest) (*pairingtypes.RelayReply, error)
function used to handle relay requests from a consumer, it is called by a provider_listener by calling RegisterReceiver
func (*RPCProviderServer) RelaySubscribe ¶
func (rpcps *RPCProviderServer) RelaySubscribe(request *pairingtypes.RelayRequest, srv pairingtypes.Relayer_RelaySubscribeServer) error
func (*RPCProviderServer) SendProof ¶
func (rpcps *RPCProviderServer) SendProof(ctx context.Context, epoch uint64, request *pairingtypes.RelayRequest, consumerAddress sdk.AccAddress, apiInterface string) error
func (*RPCProviderServer) ServeRPCRequests ¶
func (rpcps *RPCProviderServer) ServeRPCRequests( ctx context.Context, rpcProviderEndpoint *lavasession.RPCProviderEndpoint, chainParser chainlib.ChainParser, rewardServer RewardServerInf, providerSessionManager *lavasession.ProviderSessionManager, reliabilityManager ReliabilityManagerInf, privKey *btcec.PrivateKey, cache *performance.Cache, chainProxy chainlib.ChainProxy, stateTracker StateTrackerInf, providerAddress sdk.AccAddress, lavaChainID string, allowedMissingCUThreshold float64, providerMetrics *metrics.ProviderMetrics, )
func (*RPCProviderServer) TryRelay ¶
func (rpcps *RPCProviderServer) TryRelay(ctx context.Context, request *pairingtypes.RelayRequest, consumerAddr sdk.AccAddress, chainMsg chainlib.ChainMessage) (*pairingtypes.RelayReply, error)
func (*RPCProviderServer) TryRelaySubscribe ¶
func (rpcps *RPCProviderServer) TryRelaySubscribe(ctx context.Context, requestBlockHeight uint64, srv pairingtypes.Relayer_RelaySubscribeServer, chainMessage chainlib.ChainMessage, consumerAddress sdk.AccAddress, relaySession *lavasession.SingleProviderSession, relayNumber uint64) (subscribed bool, errRet error)
type RelayReceiver ¶
type RelayReceiver interface { Relay(ctx context.Context, request *pairingtypes.RelayRequest) (*pairingtypes.RelayReply, error) RelaySubscribe(request *pairingtypes.RelayRequest, srv pairingtypes.Relayer_RelaySubscribeServer) error }
type ReliabilityManagerInf ¶
type ReliabilityManagerInf interface { GetLatestBlockData(fromBlock int64, toBlock int64, specificBlock int64) (latestBlock int64, requestedHashes []*chaintracker.BlockStore, err error) GetLatestBlockNum() int64 }
type RewardServerInf ¶
type RewardServerInf interface { SendNewProof(ctx context.Context, proof *pairingtypes.RelaySession, epoch uint64, consumerAddr string, apiInterface string) (existingCU uint64, updatedWithProof bool) SubscribeStarted(consumer string, epoch uint64, subscribeID string) SubscribeEnded(consumer string, epoch uint64, subscribeID string) }
type StateTrackerInf ¶
type StateTrackerInf interface { LatestBlock() int64 GetMaxCuForUser(ctx context.Context, consumerAddress string, chainID string, epocu uint64) (maxCu uint64, err error) VerifyPairing(ctx context.Context, consumerAddress string, providerAddress string, epoch uint64, chainID string) (valid bool, total int64, err error) GetProvidersCountForConsumer(ctx context.Context, consumerAddress string, epoch uint64, chainID string) (uint32, error) }
Source Files ¶
Click to show internal directories.
Click to hide internal directories.