Documentation
¶
Index ¶
- type Calculator
- type LockedCalculator
- func (lc *LockedCalculator) CalculateUptime(nodeID ids.NodeID, startTime time.Time, endTime time.Time, connected bool) (float64, time.Duration, error)
- func (lc *LockedCalculator) CalculateUptimePercent(nodeID ids.NodeID, startTime time.Time, endTime time.Time) (float64, error)
- func (lc *LockedCalculator) SetCalculator(bootstrapped *bool, chainLock *sync.RWMutex, calculator Calculator)
- type Manager
- type NoOpCalculator
- type State
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Calculator ¶
type Calculator interface {
// CalculateUptime calculates the uptime of a validator given their connected status
CalculateUptime(nodeID ids.NodeID, startTime time.Time, endTime time.Time, connected bool) (float64, time.Duration, error)
// CalculateUptimePercent calculates the uptime percentage of a validator
CalculateUptimePercent(nodeID ids.NodeID, startTime time.Time, endTime time.Time) (float64, error)
}
Calculator calculates uptime scores
type LockedCalculator ¶
type LockedCalculator struct {
// contains filtered or unexported fields
}
LockedCalculator is a thread-safe wrapper for Calculator
func NewLockedCalculator ¶
func NewLockedCalculator() LockedCalculator
NewLockedCalculator returns a new LockedCalculator
func (*LockedCalculator) CalculateUptime ¶
func (lc *LockedCalculator) CalculateUptime(nodeID ids.NodeID, startTime time.Time, endTime time.Time, connected bool) (float64, time.Duration, error)
CalculateUptime calculates the uptime of a validator
func (*LockedCalculator) CalculateUptimePercent ¶
func (lc *LockedCalculator) CalculateUptimePercent(nodeID ids.NodeID, startTime time.Time, endTime time.Time) (float64, error)
CalculateUptimePercent calculates the uptime percentage of a validator
func (*LockedCalculator) SetCalculator ¶
func (lc *LockedCalculator) SetCalculator(bootstrapped *bool, chainLock *sync.RWMutex, calculator Calculator)
SetCalculator sets the calculator to use once the chain is bootstrapped
type Manager ¶
type Manager interface {
// StartTracking starts tracking a validator's uptime
StartTracking(nodeID ids.NodeID) error
// StopTracking stops tracking a validator's uptime
StopTracking(nodeID ids.NodeID) error
// Connect marks a validator as connected
Connect(nodeID ids.NodeID) error
// Disconnect marks a validator as disconnected
Disconnect(nodeID ids.NodeID) error
// CalculateUptime calculates a validator's uptime percentage
CalculateUptime(nodeID ids.NodeID) (float64, error)
// CalculateUptimePercent calculates uptime percentage for a duration
CalculateUptimePercent(nodeID ids.NodeID, startTime time.Time) (float64, error)
// GetTrackedValidators returns the set of tracked validators
GetTrackedValidators() set.Set[ids.NodeID]
}
Manager calculates validator uptimes
type NoOpCalculator ¶
type NoOpCalculator struct{}
NoOpCalculator is a no-op implementation of Calculator
type State ¶
type State interface {
// AddNode adds a node to track uptime for
AddNode(nodeID ids.NodeID, startTime time.Time) error
// RemoveNode removes a node from uptime tracking
RemoveNode(nodeID ids.NodeID) error
// IsConnected returns whether a node is connected
IsConnected(nodeID ids.NodeID) bool
// SetConnected sets a node's connected status
SetConnected(nodeID ids.NodeID, connected bool) error
// GetUptime returns a node's uptime percentage
GetUptime(nodeID ids.NodeID) (float64, error)
// GetUptimes returns all uptimes
GetUptimes() (map[ids.NodeID]float64, error)
// GetStartTime returns when a node started being tracked
GetStartTime(nodeID ids.NodeID) (time.Time, error)
}
State represents the uptime state of validators
Directories
¶
| Path | Synopsis |
|---|---|
|
Package uptimemock is a generated GoMock package.
|
Package uptimemock is a generated GoMock package. |
Click to show internal directories.
Click to hide internal directories.