Versions in this module Expand all Collapse all v0 v0.3.0 Aug 16, 2021 Changes in this version + const ABORT + const COMMITTED + const PREPARED + const PROPOSED + func CheckInFlight(messages []*protos.ViewData, f int, quorum int, N uint64, ...) (ok, noInFlight bool, inFlightProposal *protos.Proposal, err error) + func CommitSignaturesDigest(sigs []*protos.Signature) []byte + func MarshalOrPanic(msg proto.Message) []byte + func MsgToString(m *protos.Message) string + func ValidateInFlight(inFlightProposal *protos.Proposal, lastSequence uint64) error + func ValidateLastDecision(vd *protos.ViewData, quorum int, N uint64, verifier api.Verifier) (lastSequence uint64, err error) + type ApplicationMock interface + type AssemblerMock interface + type BatchBuilder struct + func NewBatchBuilder(pool RequestPool, submittedChan chan struct{}, maxMsgCount uint64, ...) *BatchBuilder + func (b *BatchBuilder) Close() + func (b *BatchBuilder) Closed() bool + func (b *BatchBuilder) NextBatch() [][]byte + func (b *BatchBuilder) Reset() + type Batcher interface + Close func() + Closed func() bool + NextBatch func() [][]byte + Reset func() + type CheckpointRetriever func() (protos.Proposal, []*protos.Signature) + type Comm interface + BroadcastConsensus func(m *protos.Message) + type CommMock interface + BroadcastConsensus func(m *smartbftprotos.Message) + type Controller struct + Application api.Application + Assembler api.Assembler + Batcher Batcher + Checkpoint *types.Checkpoint + Collector *StateCollector + DecisionsPerLeader uint64 + FailureDetector FailureDetector + ID uint64 + LeaderMonitor LeaderMonitor + LeaderRotation bool + Logger api.Logger + N uint64 + NodesList []uint64 + ProposerBuilder ProposerBuilder + RequestInspector api.RequestInspector + RequestPool RequestPool + Signer api.Signer + StartedWG *sync.WaitGroup + State State + Synchronizer api.Synchronizer + Verifier api.Verifier + ViewChanger *ViewChanger + ViewSequences *atomic.Value + WAL api.WriteAheadLog + func (c *Controller) AbortView(view uint64) + func (c *Controller) BroadcastConsensus(m *protos.Message) + func (c *Controller) Decide(proposal types.Proposal, signatures []types.Signature, ...) + func (c *Controller) GetLeaderID() uint64 + func (c *Controller) HandleRequest(sender uint64, req []byte) + func (c *Controller) MaybePruneRevokedRequests() + func (c *Controller) OnAutoRemoveTimeout(requestInfo types.RequestInfo) + func (c *Controller) OnHeartbeatTimeout(view uint64, leaderID uint64) + func (c *Controller) OnLeaderFwdRequestTimeout(request []byte, info types.RequestInfo) + func (c *Controller) OnRequestTimeout(request []byte, info types.RequestInfo) + func (c *Controller) ProcessMessages(sender uint64, m *protos.Message) + func (c *Controller) Start(startViewNumber uint64, startProposalSequence uint64, ...) + func (c *Controller) Stop() + func (c *Controller) StopWithPoolPause() + func (c *Controller) SubmitRequest(request []byte) error + func (c *Controller) Sync() + func (c *Controller) ViewChanged(newViewNumber uint64, newProposalSequence uint64) + type Decider interface + Decide func(proposal types.Proposal, signatures []types.Signature, ...) + type FailureDetector interface + Complain func(viewNum uint64, stopView bool) + type HeartbeatEventHandler interface + OnHeartbeatTimeout func(view uint64, leaderID uint64) + Sync func() + type HeartbeatMonitor struct + func NewHeartbeatMonitor(scheduler <-chan time.Time, logger api.Logger, heartbeatTimeout time.Duration, ...) *HeartbeatMonitor + func (hm *HeartbeatMonitor) ChangeRole(follower Role, view uint64, leaderID uint64) + func (hm *HeartbeatMonitor) Close() + func (hm *HeartbeatMonitor) HeartbeatWasSent() + func (hm *HeartbeatMonitor) InjectArtificialHeartbeat(sender uint64, msg *smartbftprotos.Message) + func (hm *HeartbeatMonitor) ProcessMsg(sender uint64, msg *smartbftprotos.Message) + type InFlightData struct + func (ifp *InFlightData) InFlightProposal() *types.Proposal + func (ifp *InFlightData) IsInFlightPrepared() bool + func (ifp *InFlightData) StorePrepares(view, seq uint64) + func (ifp *InFlightData) StoreProposal(prop types.Proposal) + type IntDoubleByte struct + A int64 + B []byte + C []byte + type IntDoubleBytes struct + A []IntDoubleByte + type LeaderMonitor interface + ChangeRole func(role Role, view uint64, leaderID uint64) + Close func() + HeartbeatWasSent func() + InjectArtificialHeartbeat func(sender uint64, msg *protos.Message) + ProcessMsg func(sender uint64, msg *protos.Message) + type MembershipNotifierMock interface + type PersistedState struct + Entries [][]byte + InFlightProposal *InFlightData + Logger api.Logger + WAL api.WriteAheadLog + func (ps *PersistedState) LoadNewViewIfApplicable() (*types.ViewAndSeq, error) + func (ps *PersistedState) LoadViewChangeIfApplicable() (*protos.ViewChange, error) + func (ps *PersistedState) Restore(v *View) error + func (ps *PersistedState) Save(msgToSave *protos.SavedMessage) error + type Phase uint8 + type Pool struct + func NewPool(log api.Logger, inspector api.RequestInspector, th RequestTimeoutHandler, ...) *Pool + func (rp *Pool) ChangeTimeouts(th RequestTimeoutHandler, options PoolOptions) + func (rp *Pool) Close() + func (rp *Pool) NextRequests(maxCount int, maxSizeBytes uint64, check bool) (batch [][]byte, full bool) + func (rp *Pool) Prune(predicate func([]byte) error) + func (rp *Pool) RemoveRequest(requestInfo types.RequestInfo) error + func (rp *Pool) RestartTimers() + func (rp *Pool) Size() int + func (rp *Pool) StopTimers() + func (rp *Pool) Submit(request []byte) error + type PoolOptions struct + AutoRemoveTimeout time.Duration + ComplainTimeout time.Duration + ForwardTimeout time.Duration + QueueSize int64 + type ProposalMaker struct + Checkpoint *types.Checkpoint + Comm Comm + Decider Decider + DecisionsPerLeader uint64 + FailureDetector FailureDetector + InMsqQSize int + Logger api.Logger + MembershipNotifier api.MembershipNotifier + N uint64 + SelfID uint64 + Signer api.Signer + State State + Sync Synchronizer + Verifier api.Verifier + ViewSequences *atomic.Value + func (pm *ProposalMaker) NewProposer(leader, proposalSequence, viewNum, decisionsInView uint64, quorumSize int) Proposer + type Proposer interface + Abort func() + GetMetadata func() []byte + HandleMessage func(sender uint64, m *protos.Message) + Propose func(proposal types.Proposal) + Start func() + type ProposerBuilder interface + NewProposer func(leader, proposalSequence, viewNum, decisionsInView uint64, quorumSize int) Proposer + type Pruner interface + MaybePruneRevokedRequests func() + type RequestPool interface + Close func() + NextRequests func(maxCount int, maxSizeBytes uint64, check bool) (batch [][]byte, full bool) + Prune func(predicate func([]byte) error) + RemoveRequest func(request types.RequestInfo) error + RestartTimers func() + Size func() int + StopTimers func() + Submit func(request []byte) error + type RequestTimeoutHandler interface + OnAutoRemoveTimeout func(requestInfo types.RequestInfo) + OnLeaderFwdRequestTimeout func(request []byte, requestInfo types.RequestInfo) + OnRequestTimeout func(request []byte, requestInfo types.RequestInfo) + type RequestsTimer interface + RemoveRequest func(request types.RequestInfo) error + RestartTimers func() + StopTimers func() + type Role bool + const Follower + const Leader + type Scheduler struct + func NewScheduler(timeChan <-chan time.Time) *Scheduler + func (s *Scheduler) Schedule(timeout time.Duration, f func()) Stopper + func (s *Scheduler) Start() + func (s *Scheduler) Stop() + type SignerMock interface + type State interface + Restore func(*View) error + Save func(message *protos.SavedMessage) error + type StateCollector struct + CollectTimeout time.Duration + Logger api.Logger + N uint64 + SelfID uint64 + func (s *StateCollector) ClearCollected() + func (s *StateCollector) CollectStateResponses() *types.ViewAndSeq + func (s *StateCollector) HandleMessage(sender uint64, m *protos.Message) + func (s *StateCollector) Start() + func (s *StateCollector) Stop() + type StateRecorder struct + SavedMessages []*protos.SavedMessage + func (*StateRecorder) Restore(_ *View) error + func (sr *StateRecorder) Save(message *protos.SavedMessage) error + type Stopper interface + Stop func() + type Synchronizer interface + Sync func() + type SynchronizerMock interface + type Task struct + Deadline time.Time + F func() + func (t *Task) Stop() + type TaskQueue struct + func NewTaskQueue() *TaskQueue + func (q *TaskQueue) DeQueue() *Task + func (q *TaskQueue) Enqueue(t *Task) + func (q *TaskQueue) Top() *Task + func (q TaskQueue) Size() int + type VerifierMock interface + type View struct + Comm Comm + Decider Decider + DecisionsInView uint64 + DecisionsPerLeader uint64 + FailureDetector FailureDetector + InMsgQSize int + LeaderID uint64 + Logger api.Logger + MembershipNotifier api.MembershipNotifier + N uint64 + Number uint64 + Phase Phase + ProposalSequence uint64 + Quorum int + RetrieveCheckpoint CheckpointRetriever + SelfID uint64 + Signer api.Signer + State State + Sync Synchronizer + Verifier api.Verifier + ViewSequences *atomic.Value + func (v *View) Abort() + func (v *View) GetMetadata() []byte + func (v *View) HandleMessage(sender uint64, m *protos.Message) + func (v *View) Propose(proposal types.Proposal) + func (v *View) Start() + type ViewChanger struct + Application api.Application + Checkpoint *types.Checkpoint + Comm Comm + Controller ViewController + ControllerStartedWG sync.WaitGroup + DecisionsPerLeader uint64 + InFlight *InFlightData + InMsqQSize int + LeaderRotation bool + Logger api.Logger + N uint64 + NodesList []uint64 + Pruner Pruner + RequestsTimer RequestsTimer + ResendTimeout time.Duration + Restore chan struct{} + SelfID uint64 + Signer api.Signer + SpeedUpViewChange bool + State State + Synchronizer Synchronizer + Ticker <-chan time.Time + Verifier api.Verifier + ViewChangeTimeout time.Duration + ViewSequences *atomic.Value + func (v *ViewChanger) Complain(viewNum uint64, stopView bool) + func (v *ViewChanger) Decide(proposal types.Proposal, signatures []types.Signature, ...) + func (v *ViewChanger) HandleMessage(sender uint64, m *protos.Message) + func (v *ViewChanger) HandleViewMessage(sender uint64, m *protos.Message) + func (v *ViewChanger) InformNewView(view uint64) + func (v *ViewChanger) Start(startViewNumber uint64) + func (v *ViewChanger) StartViewChange(view uint64, stopView bool) + func (v *ViewChanger) Stop() + func (v *ViewChanger) Sync() + type ViewController interface + AbortView func(view uint64) + ViewChanged func(newViewNumber uint64, newProposalSequence uint64) + type ViewSequence struct + ProposalSeq uint64 + ViewActive bool Incompatible versions in this module v2.3.0+incompatible Aug 16, 2021 Other modules containing this package github.com/SmartBFT-Go/consensus/v2