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() { }