detection

package
v0.0.0-...-d79950a Latest Latest
Warning

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

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

Documentation

Overview

Package detection defines a service that reacts to incoming blocks/attestations by running slashing detection for double proposals, double votes, and surround votes according to the eth2 specification. As soon as slashing objects are found, they are sent over a feed for the beaconclient service to submit to a beacon node via gRPC.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Config

type Config struct {
	Notifier              beaconclient.Notifier
	SlasherDB             db.Database
	ChainFetcher          beaconclient.ChainFetcher
	BeaconClient          *beaconclient.Service
	AttesterSlashingsFeed *event.Feed
	ProposerSlashingsFeed *event.Feed
}

Config options for the detection service.

type Service

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

Service struct for the detection service of the slasher.

func NewDetectionService

func NewDetectionService(ctx context.Context, cfg *Config) *Service

NewDetectionService instantiation.

func (*Service) DetectAttesterSlashings

func (ds *Service) DetectAttesterSlashings(
	ctx context.Context,
	att *ethpb.IndexedAttestation,
) ([]*ethpb.AttesterSlashing, error)

DetectAttesterSlashings detects double, surround and surrounding attestation offences given an attestation.

func (*Service) DetectDoubleProposals

func (ds *Service) DetectDoubleProposals(ctx context.Context, incomingBlock *ethpb.SignedBeaconBlockHeader) (*ethpb.ProposerSlashing, error)

DetectDoubleProposals checks if the given signed beacon block is a slashable offense and returns the slashing.

func (*Service) Start

func (ds *Service) Start()

Start the detection service runtime.

func (*Service) Status

func (ds *Service) Status() error

Status returns an error if there exists an error in the notifier service.

func (*Service) Stop

func (ds *Service) Stop() error

Stop the notifier service.

func (*Service) UpdateSpans

func (ds *Service) UpdateSpans(ctx context.Context, att *ethpb.IndexedAttestation) error

UpdateSpans passthrough function that updates span maps given an indexed attestation.

Directories

Path Synopsis
Package attestations defines an implementation of a slashable attestation detector using min-max surround vote checking.
Package attestations defines an implementation of a slashable attestation detector using min-max surround vote checking.
iface
Package iface defines an interface for a slashable attestation detector struct.
Package iface defines an interface for a slashable attestation detector struct.
types
Package types includes important type definitions for slashable objects detected by slasher.
Package types includes important type definitions for slashable objects detected by slasher.
Package proposals defines an implementation of a double-propose detector in the slasher runtime.
Package proposals defines an implementation of a double-propose detector in the slasher runtime.
iface
Package iface defines an interface for a double-proposal detector struct.
Package iface defines an interface for a double-proposal detector struct.
Package testing includes useful helpers for slasher-related unit tests.
Package testing includes useful helpers for slasher-related unit tests.

Jump to

Keyboard shortcuts

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