Documentation
¶
Index ¶
- Constants
- func RegisterMessages(cdc *amino.Codec)
- func RegisterMockEvidences()
- type ErrEvidenceAlreadyStored
- type ErrInvalidEvidence
- type Info
- type ListMessage
- type Message
- type PeerState
- type Pool
- func (evpool *Pool) AddEvidence(evidence types.Evidence) error
- func (evpool *Pool) EvidenceFront() *clist.CElement
- func (evpool *Pool) EvidenceWaitChan() <-chan struct{}
- func (evpool *Pool) IsCommitted(evidence types.Evidence) bool
- func (evpool *Pool) MarkEvidenceAsCommitted(height int64, lastBlockTime time.Time, evidence []types.Evidence)
- func (evpool *Pool) PendingEvidence(maxNum int64) []types.Evidence
- func (evpool *Pool) PriorityEvidence() []types.Evidence
- func (evpool *Pool) SetLogger(l log.Logger)
- func (evpool *Pool) State() sm.State
- func (evpool *Pool) Update(block *types.Block, state sm.State)
- type Reactor
- type Store
- func (store *Store) AddNewEvidence(evidence types.Evidence, priority int64) (bool, error)
- func (store *Store) GetInfo(height int64, hash []byte) Info
- func (store *Store) Has(evidence types.Evidence) bool
- func (store *Store) MarkEvidenceAsBroadcasted(evidence types.Evidence)
- func (store *Store) MarkEvidenceAsCommitted(evidence types.Evidence)
- func (store *Store) PendingEvidence(maxNum int64) (evidence []types.Evidence)
- func (store *Store) PriorityEvidence() (evidence []types.Evidence)
Constants ¶
const (
EvidenceChannel = byte(0x38)
)
Variables ¶
This section is empty.
Functions ¶
func RegisterMessages ¶
Types ¶
type ErrEvidenceAlreadyStored ¶
type ErrEvidenceAlreadyStored struct{}
ErrEvidenceAlreadyStored indicates that the evidence has already been stored in the evidence db
func (ErrEvidenceAlreadyStored) Error ¶
func (e ErrEvidenceAlreadyStored) Error() string
type ErrInvalidEvidence ¶
type ErrInvalidEvidence struct {
Reason error
}
ErrInvalidEvidence returns when evidence failed to validate
func (ErrInvalidEvidence) Error ¶
func (e ErrInvalidEvidence) Error() string
type ListMessage ¶
ListMessage 证据集合.
func (*ListMessage) String ¶
func (m *ListMessage) String() string
String returns a string representation of the ListMessage.
func (*ListMessage) ValidateBasic ¶
func (m *ListMessage) ValidateBasic() error
ValidateBasic performs basic validation.
type Message ¶
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 ¶
type Pool struct {
// contains filtered or unexported fields
}
Pool maintains a pool of valid evidence in an Store.
func (*Pool) AddEvidence ¶
AddEvidence checks the evidence is valid and adds it to the pool.
func (*Pool) EvidenceFront ¶
func (*Pool) EvidenceWaitChan ¶
func (evpool *Pool) EvidenceWaitChan() <-chan struct{}
func (*Pool) IsCommitted ¶
IsCommitted returns true if we have already seen this exact evidence and it is already marked as committed.
func (*Pool) MarkEvidenceAsCommitted ¶
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 ¶
PendingEvidence 返回maxNum个未提交的证据. -1返回全部
func (*Pool) PriorityEvidence ¶
PriorityEvidence 返回按高到低优先级排序的证据。
type Reactor ¶
type Reactor struct { p2p.BaseReactor // contains filtered or unexported fields }
Reactor handles evpool evidence broadcasting amongst peers.
func NewReactor ¶
NewReactor returns a new Reactor with the given config and evpool.
func (*Reactor) GetChannels ¶
func (evR *Reactor) GetChannels() []*p2p.ChannelDescriptor
GetChannels implements Reactor. It returns the list of channels for this reactor.
func (*Reactor) SetEventBus ¶
SetEventBus implements events.Eventable.
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
Store 用于存储我们看见的所有证据,包括已经提交的证据、已经验证但是没有广播的证据 和已经广播但是没有提交的证据。
func (*Store) AddNewEvidence ¶
AddNewEvidence 把证据保存到数据库。如果证据已经存在,返回false。
func (*Store) MarkEvidenceAsBroadcasted ¶
MarkEvidenceAsBroadcasted 把证据从Outqueued中删除
func (*Store) MarkEvidenceAsCommitted ¶
MarkEvidenceAsCommitted removes evidence from pending and outqueue and sets the state to committed.
func (*Store) PendingEvidence ¶
PendingEvidence 返回maxNum个已知,但是未提交的证据。 如果maxNum为-1,返回所有证据。
func (*Store) PriorityEvidence ¶
PriorityEvidence returns the evidence from the outqueue, sorted by highest priority.