evidence

package
v0.33.6 Latest Latest
Warning

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

Go to latest
Published: Jul 2, 2020 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	EvidenceChannel = byte(0x38)
)

Variables

This section is empty.

Functions

func RegisterMessages added in v0.33.0

func RegisterMessages(cdc *amino.Codec)

func RegisterMockEvidences

func RegisterMockEvidences()

For testing purposes only

Types

type ErrEvidenceAlreadyStored added in v0.33.4

type ErrEvidenceAlreadyStored struct{}

ErrEvidenceAlreadyStored indicates that the evidence has already been stored in the evidence db

func (ErrEvidenceAlreadyStored) Error added in v0.33.4

func (e ErrEvidenceAlreadyStored) Error() string

type ErrInvalidEvidence added in v0.33.4

type ErrInvalidEvidence struct {
	Reason error
}

ErrInvalidEvidence returns when evidence failed to validate

func (ErrInvalidEvidence) Error added in v0.33.4

func (e ErrInvalidEvidence) Error() string

type Info added in v0.33.0

type Info struct {
	Committed bool
	Priority  int64
	Evidence  types.Evidence
}

type ListMessage added in v0.33.0

type ListMessage struct {
	Evidence []types.Evidence
}

ListMessage contains a list of evidence.

func (*ListMessage) String added in v0.33.0

func (m *ListMessage) String() string

String returns a string representation of the ListMessage.

func (*ListMessage) ValidateBasic added in v0.33.0

func (m *ListMessage) ValidateBasic() error

ValidateBasic performs basic validation.

type Message added in v0.33.0

type Message interface {
	ValidateBasic() error
}

Message is a message sent or received by the Reactor.

type PeerState

type PeerState interface {
	GetHeight() int64
}

PeerState describes the state of a peer.

type Pool added in v0.33.0

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

Pool maintains a pool of valid evidence in an Store.

func NewPool added in v0.33.0

func NewPool(stateDB, evidenceDB dbm.DB) *Pool

func (*Pool) AddEvidence added in v0.33.0

func (evpool *Pool) AddEvidence(evidence types.Evidence) error

AddEvidence checks the evidence is valid and adds it to the pool.

func (*Pool) EvidenceFront added in v0.33.0

func (evpool *Pool) EvidenceFront() *clist.CElement

func (*Pool) EvidenceWaitChan added in v0.33.0

func (evpool *Pool) EvidenceWaitChan() <-chan struct{}

func (*Pool) IsCommitted added in v0.33.0

func (evpool *Pool) IsCommitted(evidence types.Evidence) bool

IsCommitted returns true if we have already seen this exact evidence and it is already marked as committed.

func (*Pool) MarkEvidenceAsCommitted added in v0.33.0

func (evpool *Pool) MarkEvidenceAsCommitted(height int64, lastBlockTime time.Time, evidence []types.Evidence)

MarkEvidenceAsCommitted marks all the evidence as committed and removes it from the queue.

func (*Pool) PendingEvidence added in v0.33.0

func (evpool *Pool) PendingEvidence(maxNum int64) []types.Evidence

PendingEvidence returns up to maxNum uncommitted evidence. If maxNum is -1, all evidence is returned.

func (*Pool) PriorityEvidence added in v0.33.0

func (evpool *Pool) PriorityEvidence() []types.Evidence

PriorityEvidence returns the priority evidence.

func (*Pool) SetLogger added in v0.33.0

func (evpool *Pool) SetLogger(l log.Logger)

SetLogger sets the Logger.

func (*Pool) State added in v0.33.0

func (evpool *Pool) State() sm.State

State returns the current state of the evpool.

func (*Pool) Update added in v0.33.0

func (evpool *Pool) Update(block *types.Block, state sm.State)

Update loads the latest

type Reactor added in v0.33.0

type Reactor struct {
	p2p.BaseReactor
	// contains filtered or unexported fields
}

Reactor handles evpool evidence broadcasting amongst peers.

func NewReactor added in v0.33.0

func NewReactor(evpool *Pool) *Reactor

NewReactor returns a new Reactor with the given config and evpool.

func (*Reactor) AddPeer added in v0.33.0

func (evR *Reactor) AddPeer(peer p2p.Peer)

AddPeer implements Reactor.

func (*Reactor) GetChannels added in v0.33.0

func (evR *Reactor) GetChannels() []*p2p.ChannelDescriptor

GetChannels implements Reactor. It returns the list of channels for this reactor.

func (*Reactor) Receive added in v0.33.0

func (evR *Reactor) Receive(chID byte, src p2p.Peer, msgBytes []byte)

Receive implements Reactor. It adds any received evidence to the evpool.

func (*Reactor) SetEventBus added in v0.33.0

func (evR *Reactor) SetEventBus(b *types.EventBus)

SetEventBus implements events.Eventable.

func (*Reactor) SetLogger added in v0.33.0

func (evR *Reactor) SetLogger(l log.Logger)

SetLogger sets the Logger on the reactor and the underlying Evidence.

type Store added in v0.33.0

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

Store is a store of all the evidence we've seen, including evidence that has been committed, evidence that has been verified but not broadcast, and evidence that has been broadcast but not yet committed.

func NewStore added in v0.33.0

func NewStore(db dbm.DB) *Store

func (*Store) AddNewEvidence added in v0.33.0

func (store *Store) AddNewEvidence(evidence types.Evidence, priority int64) (bool, error)

AddNewEvidence adds the given evidence to the database. It returns false if the evidence is already stored.

func (*Store) GetInfo added in v0.33.0

func (store *Store) GetInfo(height int64, hash []byte) Info

GetInfo fetches the Info with the given height and hash. If not found, ei.Evidence is nil.

func (*Store) Has added in v0.33.4

func (store *Store) Has(evidence types.Evidence) bool

Has checks if the evidence is already stored

func (*Store) MarkEvidenceAsBroadcasted added in v0.33.0

func (store *Store) MarkEvidenceAsBroadcasted(evidence types.Evidence)

MarkEvidenceAsBroadcasted removes evidence from Outqueue.

func (*Store) MarkEvidenceAsCommitted added in v0.33.0

func (store *Store) MarkEvidenceAsCommitted(evidence types.Evidence)

MarkEvidenceAsCommitted removes evidence from pending and outqueue and sets the state to committed.

func (*Store) PendingEvidence added in v0.33.0

func (store *Store) PendingEvidence(maxNum int64) (evidence []types.Evidence)

PendingEvidence returns up to maxNum known, uncommitted evidence. If maxNum is -1, all evidence is returned.

func (*Store) PriorityEvidence added in v0.33.0

func (store *Store) PriorityEvidence() (evidence []types.Evidence)

PriorityEvidence returns the evidence from the outqueue, sorted by highest priority.

Jump to

Keyboard shortcuts

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