grpc

package
v0.53.1 Latest Latest
Warning

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

Go to latest
Published: Jan 22, 2026 License: Unlicense Imports: 14 Imported by: 0

Documentation

Overview

Package grpc provides a gRPC client that implements the database.Database interface. This allows the relay to use a remote database server via gRPC.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewFromConfig

func NewFromConfig(ctx context.Context, cancel context.CancelFunc, cfg *database.DatabaseConfig) (database.Database, error)

NewFromConfig creates a new gRPC database client from the database config.

Types

type Client

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

Client implements the database.Database interface via gRPC.

func New

func New(ctx context.Context, cfg *ClientConfig) (*Client, error)

New creates a new gRPC database client.

func (*Client) AddNIP43Member

func (c *Client) AddNIP43Member(pubkey []byte, inviteCode string) error

func (*Client) CacheEvents

func (c *Client) CacheEvents(f *filter.F, events event.S)

func (*Client) CacheMarshaledJSON

func (c *Client) CacheMarshaledJSON(f *filter.F, marshaledJSON [][]byte)

func (*Client) CheckForDeleted

func (c *Client) CheckForDeleted(ev *event.E, admins [][]byte) error

func (*Client) Close

func (c *Client) Close() error

func (*Client) CountEvents

func (c *Client) CountEvents(ctx context.Context, f *filter.F) (count int, approximate bool, err error)

func (*Client) DeleteBlob

func (c *Client) DeleteBlob(sha256Hash []byte, pubkey []byte) error

func (*Client) DeleteEvent

func (c *Client) DeleteEvent(ctx context.Context, eid []byte) error

func (*Client) DeleteEventBySerial

func (c *Client) DeleteEventBySerial(ctx context.Context, ser *indextypes.Uint40, ev *event.E) error

func (*Client) DeleteExpired

func (c *Client) DeleteExpired()

func (*Client) DeleteInviteCode

func (c *Client) DeleteInviteCode(code string) error

func (*Client) DeleteMarker

func (c *Client) DeleteMarker(key string) error

func (*Client) EventIdsBySerial

func (c *Client) EventIdsBySerial(start uint64, count int) (evs []uint64, err error)

func (*Client) Export

func (c *Client) Export(ctx context.Context, w io.Writer, pubkeys ...[]byte)

func (*Client) ExtendBlossomSubscription

func (c *Client) ExtendBlossomSubscription(pubkey []byte, tier string, storageMB int64, daysExtended int) error

func (*Client) ExtendSubscription

func (c *Client) ExtendSubscription(pubkey []byte, days int) error

func (*Client) FetchEventBySerial

func (c *Client) FetchEventBySerial(ser *indextypes.Uint40) (ev *event.E, err error)

func (*Client) FetchEventsBySerials

func (c *Client) FetchEventsBySerials(serials []*indextypes.Uint40) (events map[uint64]*event.E, err error)

func (*Client) GetAllNIP43Members

func (c *Client) GetAllNIP43Members() ([][]byte, error)

func (*Client) GetBlob

func (c *Client) GetBlob(sha256Hash []byte) (data []byte, metadata *database.BlobMetadata, err error)

func (*Client) GetBlobMetadata

func (c *Client) GetBlobMetadata(sha256Hash []byte) (*database.BlobMetadata, error)

func (*Client) GetBlossomStorageQuota

func (c *Client) GetBlossomStorageQuota(pubkey []byte) (quotaMB int64, err error)

func (*Client) GetCachedEvents

func (c *Client) GetCachedEvents(f *filter.F) (event.S, bool)

func (*Client) GetCachedJSON

func (c *Client) GetCachedJSON(f *filter.F) ([][]byte, bool)

func (*Client) GetEventAccessInfo

func (c *Client) GetEventAccessInfo(serial uint64) (lastAccess int64, accessCount uint32, err error)

func (*Client) GetFullIdPubkeyBySerial

func (c *Client) GetFullIdPubkeyBySerial(ser *indextypes.Uint40) (fidpk *store.IdPkTs, err error)

func (*Client) GetFullIdPubkeyBySerials

func (c *Client) GetFullIdPubkeyBySerials(sers []*indextypes.Uint40) (fidpks []*store.IdPkTs, err error)

func (*Client) GetLeastAccessedEvents

func (c *Client) GetLeastAccessedEvents(limit int, minAgeSec int64) (serials []uint64, err error)

func (*Client) GetMarker

func (c *Client) GetMarker(key string) (value []byte, err error)

func (*Client) GetNIP43Membership

func (c *Client) GetNIP43Membership(pubkey []byte) (*database.NIP43Membership, error)

func (*Client) GetOrCreateRelayIdentitySecret

func (c *Client) GetOrCreateRelayIdentitySecret() (skb []byte, err error)

func (*Client) GetPaymentHistory

func (c *Client) GetPaymentHistory(pubkey []byte) ([]database.Payment, error)

func (*Client) GetRelayIdentitySecret

func (c *Client) GetRelayIdentitySecret() (skb []byte, err error)

func (*Client) GetSerialById

func (c *Client) GetSerialById(id []byte) (ser *indextypes.Uint40, err error)

func (*Client) GetSerialsByIds

func (c *Client) GetSerialsByIds(ids *tag.T) (serials map[string]*indextypes.Uint40, err error)

func (*Client) GetSerialsByIdsWithFilter

func (c *Client) GetSerialsByIdsWithFilter(ids *tag.T, fn func(ev *event.E, ser *indextypes.Uint40) bool) (serials map[string]*indextypes.Uint40, err error)

func (*Client) GetSerialsByRange

func (c *Client) GetSerialsByRange(idx database.Range) (serials indextypes.Uint40s, err error)

func (*Client) GetSerialsFromFilter

func (c *Client) GetSerialsFromFilter(f *filter.F) (serials indextypes.Uint40s, err error)

func (*Client) GetSubscription

func (c *Client) GetSubscription(pubkey []byte) (*database.Subscription, error)

func (*Client) GetTotalBlobStorageUsed

func (c *Client) GetTotalBlobStorageUsed(pubkey []byte) (totalMB int64, err error)

func (*Client) HasBlob

func (c *Client) HasBlob(sha256Hash []byte) (exists bool, err error)

func (*Client) HasMarker

func (c *Client) HasMarker(key string) bool

func (*Client) Import

func (c *Client) Import(rr io.Reader)

func (*Client) ImportEventsFromReader

func (c *Client) ImportEventsFromReader(ctx context.Context, rr io.Reader) error

func (*Client) ImportEventsFromStrings

func (c *Client) ImportEventsFromStrings(ctx context.Context, eventJSONs []string, policyManager interface {
	CheckPolicy(action string, ev *event.E, pubkey []byte, remote string) (bool, error)
}) error

func (*Client) Init

func (c *Client) Init(path string) error

func (*Client) InvalidateQueryCache

func (c *Client) InvalidateQueryCache()

func (*Client) IsFirstTimeUser

func (c *Client) IsFirstTimeUser(pubkey []byte) (bool, error)

func (*Client) IsNIP43Member

func (c *Client) IsNIP43Member(pubkey []byte) (isMember bool, err error)

func (*Client) IsSubscriptionActive

func (c *Client) IsSubscriptionActive(pubkey []byte) (bool, error)

func (*Client) ListAllBlobUserStats

func (c *Client) ListAllBlobUserStats() ([]*database.UserBlobStats, error)

func (*Client) ListBlobs

func (c *Client) ListBlobs(pubkey []byte, since, until int64) ([]*database.BlobDescriptor, error)

func (*Client) Path

func (c *Client) Path() string

func (*Client) ProcessDelete

func (c *Client) ProcessDelete(ev *event.E, admins [][]byte) error

func (*Client) PublishNIP43MembershipEvent

func (c *Client) PublishNIP43MembershipEvent(kind int, pubkey []byte) error

func (*Client) QueryAllVersions

func (c *Client) QueryAllVersions(ctx context.Context, f *filter.F) (evs event.S, err error)

func (*Client) QueryDeleteEventsByTargetId

func (c *Client) QueryDeleteEventsByTargetId(ctx context.Context, targetEventId []byte) (evs event.S, err error)

func (*Client) QueryEvents

func (c *Client) QueryEvents(ctx context.Context, f *filter.F) (evs event.S, err error)

func (*Client) QueryEventsWithOptions

func (c *Client) QueryEventsWithOptions(ctx context.Context, f *filter.F, includeDeleteEvents bool, showAllVersions bool) (evs event.S, err error)

func (*Client) QueryForIds

func (c *Client) QueryForIds(ctx context.Context, f *filter.F) (idPkTs []*store.IdPkTs, err error)

func (*Client) QueryForSerials

func (c *Client) QueryForSerials(ctx context.Context, f *filter.F) (serials indextypes.Uint40s, err error)

func (*Client) Ready

func (c *Client) Ready() <-chan struct{}

func (*Client) RecordEventAccess

func (c *Client) RecordEventAccess(serial uint64, connectionID string) error

func (*Client) RecordPayment

func (c *Client) RecordPayment(pubkey []byte, amount int64, invoice, preimage string) error

func (*Client) RemoveNIP43Member

func (c *Client) RemoveNIP43Member(pubkey []byte) error

func (*Client) RunMigrations

func (c *Client) RunMigrations()

func (*Client) SaveBlob

func (c *Client) SaveBlob(sha256Hash []byte, data []byte, pubkey []byte, mimeType string, extension string) error

func (*Client) SaveBlobReport

func (c *Client) SaveBlobReport(sha256Hash []byte, reportData []byte) error

func (*Client) SaveEvent

func (c *Client) SaveEvent(ctx context.Context, ev *event.E) (exists bool, err error)

func (*Client) SetLogLevel

func (c *Client) SetLogLevel(level string)

func (*Client) SetMarker

func (c *Client) SetMarker(key string, value []byte) error

func (*Client) SetRelayIdentitySecret

func (c *Client) SetRelayIdentitySecret(skb []byte) error

func (*Client) StoreInviteCode

func (c *Client) StoreInviteCode(code string, expiresAt time.Time) error

func (*Client) Sync

func (c *Client) Sync() error

func (*Client) ValidateInviteCode

func (c *Client) ValidateInviteCode(code string) (valid bool, err error)

func (*Client) Wipe

func (c *Client) Wipe() error

func (*Client) WouldReplaceEvent

func (c *Client) WouldReplaceEvent(ev *event.E) (bool, indextypes.Uint40s, error)

type ClientConfig

type ClientConfig struct {
	ServerAddress  string
	ConnectTimeout time.Duration
}

ClientConfig holds configuration for the gRPC client.

Source Files

  • client.go
  • init.go

Jump to

Keyboard shortcuts

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