antifraud

package
v0.4.31 Latest Latest
Warning

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

Go to latest
Published: May 15, 2020 License: GPL-3.0 Imports: 28 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AllChecks = iota
	SkipBlacklisting
)
View Source
const (
	LogFormatCommon         = "common"
	PoolFormatDwarf         = "dwarf"
	PoolFormatUley          = "uley"
	ProcessorFormatDisabled = "disabled"
)

Variables

This section is empty.

Functions

func NewBlacklistWatcher added in v0.4.9

func NewBlacklistWatcher(addr common.Address, cc *grpc.ClientConn, log *zap.Logger) *blacklistWatcher

Types

type AntiFraud

type AntiFraud interface {
	Run(ctx context.Context) error
	DealOpened(deal *sonm.Deal) error
	TrackTask(ctx context.Context, deal *sonm.Deal, taskID string) error
	FinishDeal(ctx context.Context, deal *sonm.Deal, optsFlags flags) error
}

func NewAntiFraud

func NewAntiFraud(cfg Config, log *zap.Logger, processors ProcessorFactory, dealFactory types.DealFactory, nodeConnection *grpc.ClientConn) AntiFraud

type Config

type Config struct {
	TaskQuality            float64             `yaml:"task_quality" required:"true"`
	QualityCheckInterval   time.Duration       `yaml:"quality_check_interval" default:"15s"`
	BlacklistCheckInterval time.Duration       `yaml:"blacklist_check_interval" default:"5m"`
	ConnectionTimeout      time.Duration       `yaml:"connection_timeout" default:"60s"`
	LogProcessorConfig     LogProcessorConfig  `yaml:"log_processor"`
	PoolProcessorConfig    PoolProcessorConfig `yaml:"pool_processor"`
	Whitelist              []common.Address    `yaml:"whitelist"`
}

func (Config) Validate added in v0.4.11

func (c Config) Validate() error

type LogProcessorConfig

type LogProcessorConfig struct {
	ProcessorConfig `yaml:",inline"`
	Pattern         string  `yaml:"pattern" required:"true"`
	Field           int     `yaml:"field"`
	Multiplier      float64 `yaml:"multiplier" required:"true"`
	LogDir          string  `yaml:"log_dir"`
}

type Option added in v0.4.9

type Option func(options *processorOpts)

func WithClientConn added in v0.4.9

func WithClientConn(cc *grpc.ClientConn) Option

func WithLogger added in v0.4.9

func WithLogger(log *zap.Logger) Option

type PoolProcessorConfig added in v0.4.13

type PoolProcessorConfig struct {
	ProcessorConfig `yaml:",inline"`
	URL             string `yaml:"url"`
}

type Processor added in v0.4.9

type Processor interface {
	Run(ctx context.Context) error
	TaskID() string
	TaskQuality() (accurate bool, quality float64)
}

Processor is part of AntiFraud module that continuously processing results of container execution (like logs, pool reports, etc) and calculate task quality value.

type ProcessorConfig added in v0.4.9

type ProcessorConfig struct {
	Format          string        `yaml:"format" required:"true"`
	TrackInterval   time.Duration `yaml:"track_interval" default:"10s"`
	TaskWarmupDelay time.Duration `yaml:"warmup_delay" required:"true"`
	DecayTime       float64       `yaml:"decay_time" required:"true"`
}

type ProcessorFactory added in v0.4.9

type ProcessorFactory interface {
	LogProcessor(deal *types.Deal, taskID string, opts ...Option) Processor
	PoolProcessor(deal *types.Deal, taskID string, opts ...Option) Processor
}

ProcessorFactory builds particular processors for the anti-fraud

func NewProcessorFactory added in v0.4.9

func NewProcessorFactory(cfg *Config) ProcessorFactory

Jump to

Keyboard shortcuts

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