add node structure (cmd, config...)

This commit is contained in:
arnaucube
2019-12-07 17:27:30 +01:00
parent 5a4d536f0d
commit a3d1d8db78
11 changed files with 419 additions and 54 deletions

55
node/node.go Normal file
View File

@@ -0,0 +1,55 @@
package node
import (
"go-dht/kademlia"
)
type Node struct {
port string
kademlia *kademlia.Kademlia
}
func NewNode() (Node, error) {
id, err := kademlia.NewID()
if err != nil {
return Node{}, err
}
var n Node
n.kademlia = kademlia.NewKademliaTable(id)
return n, nil
}
func LoadNode(idStr string) (Node, error) {
id, err := kademlia.IDFromString(idStr)
if err != nil {
return Node{}, err
}
var n Node
n.kademlia = kademlia.NewKademliaTable(id)
return n, nil
}
func (n Node) ID() kademlia.ID {
return n.kademlia.ID
}
// Exposed RPC calls: Ping, Store, FindNode, FindValue
func (n *Node) Ping(ln kademlia.ListedNode, ack *bool) error {
n.kademlia.Update(ln)
return nil
}
func (n *Node) Store(data []byte, ack *bool) error {
return nil
}
func (n *Node) FindNode() {
}
func (n *Node) FindValue() {
}