reputation

package
v1.112.1-rc Latest Latest
Warning

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

Go to latest
Published: Sep 3, 2024 License: AGPL-3.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AuditHistory added in v1.20.1

type AuditHistory struct {
	Score   float64              `json:"score"`
	Windows []AuditHistoryWindow `json:"windows"`
}

AuditHistory encapsulates storagenode audit history.

func GetAuditHistoryFromPB added in v1.20.1

func GetAuditHistoryFromPB(auditHistoryPB *pb.AuditHistory) AuditHistory

GetAuditHistoryFromPB creates the AuditHistory json struct from a protobuf.

type AuditHistoryWindow added in v1.20.1

type AuditHistoryWindow struct {
	WindowStart time.Time `json:"windowStart"`
	TotalCount  int32     `json:"totalCount"`
	OnlineCount int32     `json:"onlineCount"`
}

AuditHistoryWindow encapsulates storagenode audit history window.

type DB

type DB interface {
	// Store inserts or updates reputation stats into the DB
	Store(ctx context.Context, stats Stats) error
	// Get retrieves stats for specific satellite
	Get(ctx context.Context, satelliteID storj.NodeID) (*Stats, error)
	// All retrieves all stats from DB
	All(ctx context.Context) ([]Stats, error)
	// Delete removes stats for specific satellite
	Delete(ctx context.Context, satelliteID storj.NodeID) error
}

DB works with reputation database.

architecture: Database

type Metric

type Metric struct {
	TotalCount   int64 `json:"totalCount"`
	SuccessCount int64 `json:"successCount"`

	Alpha        float64 `json:"alpha"`
	Beta         float64 `json:"beta"`
	UnknownAlpha float64 `json:"unknownAlpha"`
	UnknownBeta  float64 `json:"unknownBeta"`
	Score        float64 `json:"score"`
	UnknownScore float64 `json:"unknownScore"`
}

Metric encapsulates storagenode reputation metrics.

type Service added in v1.17.1

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

Service is the reputation service.

architecture: Service

func NewService added in v1.17.1

func NewService(log *zap.Logger, db DB, nodeID storj.NodeID, notifications *notifications.Service) *Service

NewService creates new instance of service.

func (*Service) Store added in v1.17.1

func (s *Service) Store(ctx context.Context, stats Stats, satelliteID storj.NodeID) error

Store stores reputation stats into db, and notify's in case of offline suspension.

type Stats

type Stats struct {
	SatelliteID storj.NodeID

	Audit       Metric
	OnlineScore float64

	DisqualifiedAt       *time.Time
	SuspendedAt          *time.Time
	OfflineSuspendedAt   *time.Time
	OfflineUnderReviewAt *time.Time
	VettedAt             *time.Time
	AuditHistory         *pb.AuditHistory

	UpdatedAt time.Time
	JoinedAt  time.Time
}

Stats consist of reputation metrics.

Jump to

Keyboard shortcuts

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