Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type NodeKeeper ¶
type NodeKeeper interface {
// GetActiveNode get active node by its reference. Returns nil if node is not found.
GetActiveNode(ref core.RecordRef) *core.ActiveNode
// GetActiveNodes get active nodes.
GetActiveNodes() []*core.ActiveNode
// AddActiveNodes set active nodes.
AddActiveNodes([]*core.ActiveNode)
// GetUnsyncHash get hash computed based on the list of unsync nodes, and the size of this list.
GetUnsyncHash() (hash []byte, unsyncCount int, err error)
// GetUnsync gets the local unsync list (excluding other nodes unsync lists).
GetUnsync() []*core.ActiveNode
// SetPulse sets internal PulseNumber to number.
SetPulse(number core.PulseNumber)
// Sync initiate transferring unsync -> sync, sync -> active. If approved is false, unsync is not transferred to sync.
Sync(approved bool)
// AddUnsync add unsync node to the local unsync list.
// Returns error if node's PulseNumber is not equal to the NodeKeeper internal PulseNumber.
AddUnsync(*core.ActiveNode) error
// AddUnsyncGossip merge unsync list from another node to the local unsync list.
// Returns error if:
// 1. One of the nodes' PulseNumber is not equal to the NodeKeeper internal PulseNumber;
// 2. One of the nodes' reference is equal to one of the local unsync nodes' reference.
AddUnsyncGossip([]*core.ActiveNode) error
}
func NewNodeKeeper ¶ added in v0.5.0
func NewNodeKeeper(unsyncDiscardAfter time.Duration) NodeKeeper
NewNodeKeeper create new NodeKeeper. unsyncDiscardAfter = timeout after which each unsync node is discarded.
Click to show internal directories.
Click to hide internal directories.