Documentation
¶
Index ¶
- type API
- type Manager
- func (m *Manager) GetAllCandidateNodes() []string
- func (m *Manager) GetAllEdgeNode() []*Node
- func (m *Manager) GetCandidateNode(nodeID string) *Node
- func (m *Manager) GetCandidateNodes(n int) []*Node
- func (m *Manager) GetEdgeNode(nodeID string) *Node
- func (m *Manager) GetNode(nodeID string) *Node
- func (m *Manager) GetOnlineNodeCount(nodeType types.NodeType) int
- func (m *Manager) GetRandomCandidate() (*Node, int)
- func (m *Manager) GetRandomEdge() (*Node, int)
- func (m *Manager) NodeOnline(node *Node, info *types.NodeInfo) error
- type Node
- func (n *Node) ConnectRPC(addr string, nodeType types.NodeType) error
- func (n *Node) DownloadAddr() string
- func (n *Node) LastRequestTime() time.Time
- func (n *Node) RPCURL() string
- func (n *Node) SelectWeights() []int
- func (n *Node) SetLastRequestTime(t time.Time)
- func (n *Node) SetToken(t string)
- func (n *Node) TCPAddr() string
- func (n *Node) Token(cid, clientID string, titanRsa *titanrsa.Rsa, privateKey *rsa.PrivateKey) (*types.Token, *types.TokenPayload, error)
- func (n *Node) UpdateNodePort(port string)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type API ¶
type API struct {
// common api
api.Common
api.Device
api.Validation
api.DataSync
api.Asset
WaitQuiet func(ctx context.Context) error
// edge api
ExternalServiceAddress func(ctx context.Context, candidateURL string) (string, error)
UserNATPunch func(ctx context.Context, sourceURL string, req *types.NatPunchReq) error
// candidate api
GetBlocksOfAsset func(ctx context.Context, assetCID string, randomSeed int64, randomCount int) ([]string, error)
CheckNetworkConnectivity func(ctx context.Context, network, targetURL string) error
}
API represents the node API
func APIFromCandidate ¶
APIFromCandidate creates a new API from a Candidate API
func APIFromEdge ¶
APIFromEdge creates a new API from an Edge API
type Manager ¶
type Manager struct {
Edges int // online edge node count
Candidates int // online candidate node count
*db.SQLDB
*rsa.PrivateKey // scheduler privateKey
dtypes.ServerID // scheduler server id
// contains filtered or unexported fields
}
Manager is the node manager responsible for managing the online nodes
func NewManager ¶
func NewManager(sdb *db.SQLDB, serverID dtypes.ServerID, pk *rsa.PrivateKey, pb *pubsub.PubSub, config dtypes.GetSchedulerConfigFunc, lmgr *leadership.Manager) *Manager
NewManager creates a new instance of the node manager
func (*Manager) GetAllCandidateNodes ¶
GetAllCandidateNodes returns a list of all candidate nodes
func (*Manager) GetAllEdgeNode ¶ added in v0.1.10
GetAllEdgeNode load all edge node
func (*Manager) GetCandidateNode ¶
GetCandidateNode retrieves a candidate node with the given node ID
func (*Manager) GetCandidateNodes ¶
GetCandidateNodes return n candidate node
func (*Manager) GetEdgeNode ¶
GetEdgeNode retrieves an edge node with the given node ID
func (*Manager) GetOnlineNodeCount ¶
GetOnlineNodeCount returns online node count of the given type
func (*Manager) GetRandomCandidate ¶
GetRandomCandidate returns a random candidate node
func (*Manager) GetRandomEdge ¶
GetRandomEdge returns a random edge node
type Node ¶
type Node struct {
NodeID string
*API
jsonrpc.ClientCloser
// node info
PublicKey *rsa.PublicKey
RemoteAddr string
TCPPort int
NATType types.NatType
CPUUsage float64
MemoryUsage float64
DiskUsage float64
ExternalIP string
OnlineDuration int
Type types.NodeType
PortMapping string
BandwidthDown int64
BandwidthUp int64
DiskSpace float64
// contains filtered or unexported fields
}
Node represents an Edge or Candidate node
func (*Node) ConnectRPC ¶
ConnectRPC connects to the node RPC
func (*Node) DownloadAddr ¶
DownloadAddr returns the download address of the node
func (*Node) LastRequestTime ¶
LastRequestTime returns the last request time of the node
func (*Node) SelectWeights ¶ added in v0.1.10
SelectWeights get node select weights
func (*Node) SetLastRequestTime ¶
SetLastRequestTime sets the last request time of the node
func (*Node) Token ¶
func (n *Node) Token(cid, clientID string, titanRsa *titanrsa.Rsa, privateKey *rsa.PrivateKey) (*types.Token, *types.TokenPayload, error)
Token returns the token of the node
func (*Node) UpdateNodePort ¶
UpdateNodePort updates the node port