go-dht/rpc-test/test.go
rpc-test/test.goRaw
1package main
2
3import (
4 "fmt"
5 "go-dht/kademlia"
6 "log"
7 "net/rpc"
8)
9
10// Utility to test the Node RPC methods
11
12func prepareTestListedNodes() []kademlia.ListedNode {
13 lnIDs := []string{
14 "c48d8b53dbefb609ed4e94d386dd5b22efcb2c5b",
15 "420bfebd44fc62615253224328f40f29c9b225fa",
16 "6272bb67b1661abfa07d1d32cd9b810e531d42cd",
17 "07db608db033384895e48098a1bbe25266387463",
18 "c19c3285ab9ada4b420050ae1a204640b2bed508",
19 "f8971d5da24517c8cc5a316fb0658de8906c4155",
20 "04122a5f2dec42284147b1847ec1bc41ecd78626",
21 "407a90870d7b482a271446c85fda940ce78a4c7a",
22 "5ebe4539e7a33721a8623f7ebfab62600aa503e7",
23 "fc44a42879ef3a74d6bd8303bc3e4e205a92acf9",
24 "fc44a42879ef3a74d6bd8303bc3e4e205a92acf9",
25 "10c86f96ebaa1685a46a6417e6faa2ef34a68976",
26 "243c81515196a5b0e2d4675e73f0da3eead12793",
27 "0fd85ddddf15aeec2d5d8b01b013dbca030a18d7",
28 "0fd85ddddf15aeec2d5d8b01b013dbca030a18d5",
29 "0fd85ddddf15aeec2d5d8b01b013dbca030a18d0",
30 "0fd85ddddf15aeec2d5d8b01b013dbca030a1800",
31 "0750931c40a52a2facd220a02851f7d34f95e1fa",
32 "ebfba615ac50bcd0f5c2420741d032e885abf576",
33 }
34 var lns []kademlia.ListedNode
35 for i := 0; i < len(lnIDs); i++ {
36 idI, err := kademlia.IDFromString(lnIDs[i])
37 if err != nil {
38 panic(err)
39 }
40 lnI := kademlia.ListedNode{
41 ID: idI,
42 Addr: "",
43 }
44 lns = append(lns, lnI)
45 }
46 return lns
47}
48
49func main() {
50 lns := prepareTestListedNodes()
51
52 client, err := rpc.DialHTTP("tcp", "127.0.0.1:5000")
53 if err != nil {
54 log.Fatal("Connection error: ", err)
55 }
56
57 var reply kademlia.ListedNode
58 for _, ln := range lns {
59 err = client.Call("Node.Ping", ln, &reply)
60 if err != nil {
61 panic(err)
62 }
63 fmt.Println(reply)
64 }
65}