- if err := m.upSertNode(&config.Node{
- PublicKey: node.ID.String(),
- Host: node.IP.String(),
- Port: node.TCP,
- }); err != nil {
- log.Error(err)
- }
-
- nodeMap[node.ID.String()] = node
- }
-}
-
-func (m *monitor) connectNodesRoutine() {
- // TODO: change name?
- ticker := time.NewTicker(time.Duration(m.cfg.CheckFreqSeconds) * time.Second)
- for ; true; <-ticker.C {
- if err := m.dialNodes(); err != nil {
- log.Error(err)
- }
- }
-}
-
-func (m *monitor) dialNodes() error {
- var nodes []*orm.Node
- if err := m.db.Model(&orm.Node{}).Find(&nodes).Error; err != nil {
- return err
- }
-
- addresses := make([]*p2p.NetAddress, 0)
- for i := 0; i < len(nodes); i++ {
- ips, err := net.LookupIP(nodes[i].Host)
- if err != nil {
- log.Error(err)
- continue
- }
- if len(ips) == 0 {
- log.Errorf("fail to look up ip for %s", nodes[i].Host)
- continue
- }
-
- address := p2p.NewNetAddressIPPort(ips[0], nodes[i].Port)
- addresses = append(addresses, address)
- }
-
- m.sw.DialPeers(addresses)