relaygroup

package
v0.55.0 Latest Latest
Warning

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

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

Documentation

Overview

Package relaygroup provides relay group configuration management

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	Relays []string `json:"relays"`
}

Config represents a relay group configuration

type Manager

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

Manager handles relay group configuration

func NewManager

func NewManager(db *database.D, cfg *ManagerConfig) *Manager

NewManager creates a new relay group manager

func (*Manager) FindAuthoritativeConfig

func (rgm *Manager) FindAuthoritativeConfig(ctx context.Context) (*Config, error)

FindAuthoritativeConfig finds the authoritative relay group configuration by selecting the latest event by timestamp, with hash tie-breaking

func (*Manager) FindAuthoritativeRelays

func (rgm *Manager) FindAuthoritativeRelays(ctx context.Context) ([]string, error)

FindAuthoritativeRelays returns just the relay URLs from the authoritative config

func (*Manager) GetAuthorizedPubkeys

func (rgm *Manager) GetAuthorizedPubkeys() [][]byte

GetAuthorizedPubkeys returns all authorized pubkeys

func (*Manager) HandleRelayGroupEvent

func (rgm *Manager) HandleRelayGroupEvent(ev *event.E, peerUpdater PeerUpdater)

HandleRelayGroupEvent processes a relay group configuration event and updates peer lists

func (*Manager) IsAuthorizedPublisher

func (rgm *Manager) IsAuthorizedPublisher(pubkey []byte) bool

IsAuthorizedPublisher checks if a pubkey is authorized to publish relay group configs

func (*Manager) ValidateRelayGroupEvent

func (rgm *Manager) ValidateRelayGroupEvent(ev *event.E) error

ValidateRelayGroupEvent validates a relay group configuration event

type ManagerConfig

type ManagerConfig struct {
	AdminNpubs []string
}

ManagerConfig holds configuration for the relay group manager

type PeerUpdater

type PeerUpdater interface {
	UpdatePeers(peers []string)
}

PeerUpdater is an interface for updating peer lists

Source Files

  • manager.go

Directories

Path Synopsis
Package grpc provides a gRPC client for the relay group service.
Package grpc provides a gRPC client for the relay group service.
Package server provides the gRPC server implementation for relay group.
Package server provides the gRPC server implementation for relay group.

Jump to

Keyboard shortcuts

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