audit

package
v0.10.2 Latest Latest
Warning

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

Go to latest
Published: Apr 25, 2019 License: AGPL-3.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Error = errs.Class("audit error")

Error is the default audit errs class

Functions

This section is empty.

Types

type Config

type Config struct {
	MaxRetriesStatDB  int           `help:"max number of times to attempt updating a statdb batch" default:"3"`
	Interval          time.Duration `help:"how frequently segments are audited" default:"30s"`
	MinBytesPerSecond memory.Size   `help:"the minimum acceptable bytes that storage nodes can transfer per second to the satellite" default:"128B"`
}

Config contains configurable values for audit service

type Cursor

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

Cursor keeps track of audit location in pointer db

func NewCursor

func NewCursor(pointerdb *pointerdb.Service) *Cursor

NewCursor creates a Cursor which iterates over pointer db

func (*Cursor) NextStripe

func (cursor *Cursor) NextStripe(ctx context.Context) (stripe *Stripe, err error)

NextStripe returns a random stripe to be audited

type RecordAuditsInfo

type RecordAuditsInfo struct {
	SuccessNodeIDs storj.NodeIDList
	FailNodeIDs    storj.NodeIDList
	OfflineNodeIDs storj.NodeIDList
}

RecordAuditsInfo is a struct containing arguments/return values for RecordAudits()

type Reporter

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

Reporter records audit reports in overlay and implements the reporter interface

func NewReporter

func NewReporter(overlay *overlay.Cache, maxRetries int) *Reporter

NewReporter instantiates a reporter

func (*Reporter) RecordAudits

func (reporter *Reporter) RecordAudits(ctx context.Context, req *RecordAuditsInfo) (failed *RecordAuditsInfo, err error)

RecordAudits saves failed audit details to overlay

type Service

type Service struct {
	Cursor   *Cursor
	Verifier *Verifier
	Reporter reporter

	Loop sync2.Cycle
	// contains filtered or unexported fields
}

Service helps coordinate Cursor and Verifier to run the audit process continuously

func NewService

func NewService(log *zap.Logger, config Config, pointerdb *pointerdb.Service,
	orders *orders.Service, transport transport.Client, overlay *overlay.Cache,
	identity *identity.FullIdentity) (service *Service, err error)

NewService instantiates a Service with access to a Cursor and Verifier

func (*Service) Close

func (service *Service) Close() error

Close halts the audit loop

func (*Service) Run

func (service *Service) Run(ctx context.Context) (err error)

Run runs auditing service

type Share

type Share struct {
	Error    error
	PieceNum int
	Data     []byte
}

Share represents required information about an audited share

type Stripe

type Stripe struct {
	Index       int64
	Segment     *pb.Pointer
	SegmentPath storj.Path
}

Stripe keeps track of a stripe's index and its parent segment

type Verifier

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

Verifier helps verify the correctness of a given stripe

func NewVerifier

func NewVerifier(log *zap.Logger, transport transport.Client, overlay *overlay.Cache, orders *orders.Service, id *identity.FullIdentity, minBytesPerSecond memory.Size) *Verifier

NewVerifier creates a Verifier

func (*Verifier) Verify

func (verifier *Verifier) Verify(ctx context.Context, stripe *Stripe) (verifiedNodes *RecordAuditsInfo, err error)

Verify downloads shares then verifies the data correctness at the given stripe

Jump to

Keyboard shortcuts

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