This repository has been archived by the owner on Jun 16, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdisc.go
70 lines (62 loc) · 1.9 KB
/
disc.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package main
import (
"crypto/ecdsa"
"log"
"net"
"github.com/vipnode/ethboot/forked/discv5"
)
func startDiscv4() {
// How to start a discv4 server, which does not support replacing the
// bootnodes yet so we're using only v5 for now. Also, light clients require v5?
/*
config := discover.Config{
PrivateKey: nodeKey,
}
if _, err := discover.ListenUDP(conn, config); err != nil {
exit(4, "failed to start discovery server: %s", err)
}
*/
}
func startDiscv5(nodeKey *ecdsa.PrivateKey, conn *net.UDPConn) (*discv5.Network, error) {
network, err := discv5.ListenUDP(
nodeKey,
conn,
conn.LocalAddr().(*net.UDPAddr),
"<no database>", // TODO: Do we want a database?
nil,
)
if err != nil {
return nil, err
}
// Must be run with discv5?
nodes := []string{
// vipnode
//"enode://19b5013d24243a659bda7f1df13933bb05820ab6c3ebf6b5e0854848b97e1f7e308f703466e72486c5bc7fe8ed402eb62f6303418e05d330a5df80738ac974f6@163.172.138.100:30303?discport=30301",
// local
//"enode://4ec357a8409303a0fcced83ed2751ff14ed17c3764c617bf98bbef3f048bbd3e03d6732d234ab7c1c5426a22efa6934997c1f8979482d2360ffeef9fc7cc2c94@127.0.0.1:30303?discport=30301",
// infura server
"enode://5177285d3cfa92945c1b515e476717d65a809799cd6138a3331154f8607b7073d851704c9f3837ee23db853baf5df746b7af6541ac53fce7523f97dbf278ca8c@18.207.134.211:30303",
}
remoteNodes := []*discv5.Node{}
for _, remoteURL := range nodes {
remoteNode, err := discv5.ParseNode(remoteURL)
if err != nil {
exit(5, "failed to parse remote node URL: %s", err)
}
remoteNodes = append(remoteNodes, remoteNode)
}
log.Printf("adding remote nodes: %s", remoteNodes)
network.SetFallbackNodes(remoteNodes)
return network, err
}
/*
func startNodiscover(nodeKey *ecdsa.PrivateKey, conn *net.UDPConn) error {
config := nodiscover.Config{
PrivateKey: nodeKey,
}
if _, err := nodiscover.ListenUDP(conn, config); err != nil {
return err
}
return nil
}
*/