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)
22 nodes := make([]*dht.Node, nodesToDiscv)
23 num := m.sw.GetDiscv().ReadRandomNodes(nodes)
24 for _, node := range nodes[:num] {
25 if n, ok := m.discvMap[node.ID.String()]; ok && n.String() == node.String() {
29 log.WithFields(log.Fields{"new node": node}).Info("discover")
30 m.saveDiscoveredNode(node)
37 func (m *monitor) saveDiscoveredNode(node *dht.Node) {
38 if err := m.upSertNode(&config.Node{
39 PublicKey: node.ID.String(),
43 m.discvMap[node.ID.String()] = node
45 log.WithFields(log.Fields{
48 }).Error("upSertNode")