Documentation ¶
Index ¶
- type API
- type Manager
- func (m *Manager) GetAllCandidateNodes() []string
- 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) NewNodeID(nType types.NodeType) (string, error)
- func (m *Manager) NodeOnline(node *Node) error
- type Node
- func (n *Node) ConnectRPC(addr string, nodeType types.NodeType) error
- func (n *Node) CurPullingCount() int
- func (n *Node) DownloadAddr() string
- func (n *Node) IncrCurPullingCount(v int)
- func (n *Node) LastRequestTime() time.Time
- func (n *Node) PublicKey() *rsa.PublicKey
- func (n *Node) RPCURL() string
- func (n *Node) RemoteAddr() string
- func (n *Node) SetCurPullingCount(t int)
- func (n *Node) SetLastRequestTime(t time.Time)
- func (n *Node) SetPublicKey(pKey *rsa.PublicKey)
- func (n *Node) SetRemoteAddr(addr string)
- func (n *Node) SetTCPPort(port int)
- func (n *Node) SetToken(t string)
- func (n *Node) TCPAddr() string
- func (n *Node) Token(cid 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, ec *etcdcli.Client) *Manager
NewManager creates a new instance of the node manager
func (*Manager) GetAllCandidateNodes ¶
GetAllCandidateNodes returns a list of all candidate nodes
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
func (*Manager) NodeOnline ¶
NodeOnline registers a node as online
type Node ¶
type Node struct { *API jsonrpc.ClientCloser *types.NodeInfo // contains filtered or unexported fields }
Node represents an Edge or Candidate node
func (*Node) ConnectRPC ¶
ConnectRPC connects to the node RPC
func (*Node) CurPullingCount ¶
CurPullingCount returns the number of assets being pulled by the node
func (*Node) DownloadAddr ¶
DownloadAddr returns the download address of the node
func (*Node) IncrCurPullingCount ¶
IncrCurPullingCount increments the number of assets being pulled by the node
func (*Node) LastRequestTime ¶
LastRequestTime returns the last request time of the node
func (*Node) RemoteAddr ¶
RemoteAddr returns the rpc address of the node
func (*Node) SetCurPullingCount ¶
SetCurPullingCount sets the number of assets being pulled by the node
func (*Node) SetLastRequestTime ¶
SetLastRequestTime sets the last request time of the node
func (*Node) SetPublicKey ¶
SetPublicKey sets the publicKey of the node
func (*Node) SetRemoteAddr ¶
SetRemoteAddr sets the remoteAddr of the node
func (*Node) SetTCPPort ¶
SetTCPPort sets the tcpPort of the node
func (*Node) Token ¶
func (n *Node) Token(cid 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