mirror of
https://github.com/luxfi/evmgpu.git
synced 2026-10-30 16:57:11 +00:00
35 lines
1.1 KiB
Go
35 lines
1.1 KiB
Go
// Copyright (C) 2019-2025, Lux Industries, Inc. All rights reserved.
|
|
// See the file LICENSE for licensing terms.
|
|
|
|
package interfaces
|
|
|
|
import (
|
|
"context"
|
|
"sync"
|
|
"time"
|
|
|
|
stateinterfaces "github.com/luxfi/evmgpu/plugin/evm/validators/state/interfaces"
|
|
"github.com/luxfi/ids"
|
|
"github.com/luxfi/validators/uptime"
|
|
)
|
|
|
|
type ValidatorReader interface {
|
|
// GetValidatorAndUptime returns the calculated uptime of the validator specified by validationID
|
|
// and the last updated time.
|
|
// GetValidatorAndUptime holds the VM lock while performing the operation and can be called concurrently.
|
|
GetValidatorAndUptime(validationID ids.ID) (stateinterfaces.Validator, time.Duration, time.Time, error)
|
|
}
|
|
|
|
type Manager interface {
|
|
stateinterfaces.StateReader
|
|
uptime.Calculator
|
|
// Initialize initializes the validator manager
|
|
// by syncing the validator state with the current validator set
|
|
// and starting the uptime tracking.
|
|
Initialize(ctx context.Context) error
|
|
// Shutdown stops the uptime tracking and writes the validator state to the database.
|
|
Shutdown() error
|
|
// DispatchSync starts the sync process
|
|
DispatchSync(ctx context.Context, lock sync.Locker)
|
|
}
|