7 log "github.com/sirupsen/logrus"
9 "github.com/vapor/p2p/discover/dht"
10 "github.com/vapor/toolbar/precognitive/config"
18 func (m *monitor) discoveryRoutine() {
19 discvMap := make(map[string]*dht.Node)
20 ticker := time.NewTicker(time.Duration(discvFreqSec) * time.Second)
22 nodes := make([]*dht.Node, nodesToDiscv)
23 num := m.sw.GetDiscv().ReadRandomNodes(nodes)
24 for _, node := range nodes[:num] {
25 address := fmt.Sprintf("%s:%d", node.IP.String(), node.TCP)
26 if n, ok := discvMap[address]; ok && n.String() == node.String() {
30 log.WithFields(log.Fields{"new node": node}).Info("discover")
32 if err := m.upsertNode(&config.Node{
33 PublicKey: node.ID.String(),
37 log.WithFields(log.Fields{"node": node, "err": err}).Error("upsertNode")
39 discvMap[address] = node