6 log "github.com/sirupsen/logrus"
8 "github.com/vapor/p2p/discover/dht"
9 "github.com/vapor/toolbar/precog/config"
17 func (m *monitor) discoveryRoutine() {
18 ticker := time.NewTicker(time.Duration(discvFreqSec) * time.Second)
20 nodes := make([]*dht.Node, nodesToDiscv)
21 n := m.sw.GetDiscv().ReadRandomNodes(nodes)
22 for i := 0; i < n; i++ {
28 func (m *monitor) collectDiscoveredNodes() {
29 // nodeMap maps a node's public key to the node itself
30 nodeMap := make(map[string]*dht.Node)
31 for node := range m.discvCh {
32 if n, ok := nodeMap[node.ID.String()]; ok && n.String() == node.String() {
35 log.Info("discover new node: ", node)
37 if err := m.upSertNode(&config.Node{
38 PublicKey: node.ID.String(),
39 Host: node.IP.String(),
42 nodeMap[node.ID.String()] = node