type SnapshotStatus …
const SnapshotFinish …
const SnapshotFailure …
var emptyState …
var ErrStopped …
type SoftState …
func (a *SoftState) equal(b *SoftState) bool { … }
type Ready …
func isHardStateEqual(a, b pb.HardState) bool { … }
func IsEmptyHardState(st pb.HardState) bool { … }
func IsEmptySnap(sp pb.Snapshot) bool { … }
func (rd Ready) containsUpdates() bool { … }
func (rd Ready) appliedCursor() uint64 { … }
type Node …
type Peer …
func StartNode(c *Config, peers []Peer) Node { … }
func RestartNode(c *Config) Node { … }
type msgWithResult …
type node …
func newNode(rn *RawNode) node { … }
func (n *node) Stop() { … }
func (n *node) run() { … }
func (n *node) Tick() { … }
func (n *node) Campaign(ctx context.Context) error { … }
func (n *node) Propose(ctx context.Context, data []byte) error { … }
func (n *node) Step(ctx context.Context, m pb.Message) error { … }
func confChangeToMsg(c pb.ConfChangeI) (pb.Message, error) { … }
func (n *node) ProposeConfChange(ctx context.Context, cc pb.ConfChangeI) error { … }
func (n *node) step(ctx context.Context, m pb.Message) error { … }
func (n *node) stepWait(ctx context.Context, m pb.Message) error { … }
func (n *node) stepWithWaitOption(ctx context.Context, m pb.Message, wait bool) error { … }
func (n *node) Ready() <-chan Ready { … }
func (n *node) Advance() { … }
func (n *node) ApplyConfChange(cc pb.ConfChangeI) *pb.ConfState { … }
func (n *node) Status() Status { … }
func (n *node) ReportUnreachable(id uint64) { … }
func (n *node) ReportSnapshot(id uint64, status SnapshotStatus) { … }
func (n *node) TransferLeadership(ctx context.Context, lead, transferee uint64) { … }
func (n *node) ReadIndex(ctx context.Context, rctx []byte) error { … }
func newReady(r *raft, prevSoftSt *SoftState, prevHardSt pb.HardState) Ready { … }
func MustSync(st, prevst pb.HardState, entsnum int) bool { … }