OSDN Git Service

add
authorHAOYUatHZ <haoyu@protonmail.com>
Mon, 12 Aug 2019 11:50:19 +0000 (19:50 +0800)
committerHAOYUatHZ <haoyu@protonmail.com>
Mon, 12 Aug 2019 11:50:19 +0000 (19:50 +0800)
p2p/switch.go
toolbar/precog/monitor/monitor.go

index 9e8ba44..5df815a 100644 (file)
@@ -354,7 +354,7 @@ func (sw *Switch) connectLANPeers(lanPeer mdns.LANPeerEvent) {
        for i := 0; i < len(lanPeer.IP); i++ {
                addresses = append(addresses, NewLANNetAddressIPPort(lanPeer.IP[i], uint16(lanPeer.Port)))
        }
-       sw.dialPeers(addresses)
+       sw.DialPeers(addresses)
 }
 
 func (sw *Switch) connectLANPeersRoutine() {
@@ -418,8 +418,8 @@ func (sw *Switch) dialPeerWorker(a *NetAddress, wg *sync.WaitGroup) {
        wg.Done()
 }
 
-func (sw *Switch) dialPeers(addresses []*NetAddress) {
-       log.Info("dialPeers:", addresses)
+func (sw *Switch) DialPeers(addresses []*NetAddress) {
+       log.Info("DialPeers:", addresses)
 
        connectedPeers := make(map[string]struct{})
        for _, peer := range sw.Peers().List() {
@@ -456,7 +456,7 @@ func (sw *Switch) ensureKeepConnectPeers() {
                addresses = append(addresses, address)
        }
 
-       sw.dialPeers(addresses)
+       sw.DialPeers(addresses)
 }
 
 func (sw *Switch) ensureOutboundPeers() {
@@ -474,7 +474,7 @@ func (sw *Switch) ensureOutboundPeers() {
                address := NewNetAddressIPPort(nodes[i].IP, nodes[i].TCP)
                addresses = append(addresses, address)
        }
-       sw.dialPeers(addresses)
+       sw.DialPeers(addresses)
 }
 
 func (sw *Switch) ensureOutboundPeersRoutine() {
index f4555d0..ab55323 100644 (file)
@@ -123,7 +123,6 @@ func (m *monitor) discovery() {
        }
 }
 
-// whatz the pubKey?
 func (m *monitor) collectDiscv() {
        // nodeMap maps a node's public key to the node itself
        nodeMap := make(map[string]*dht.Node)
@@ -143,6 +142,21 @@ func (m *monitor) collectDiscv() {
 }
 
 func (m *monitor) monitorRountine() error {
+       sw := &p2p.Switch{}
+
+       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++ {
+               // TODO: Host to IP
+               address := p2p.NewNetAddressIPPort(nodes[i].Host, nodes[i].Port)
+               addresses = append(addresses, address)
+       }
+       sw.DialPeers(addresses)
+
        // TODO: dail nodes, get lantency & best_height
        // TODO: decide check_height("best best_height" - "confirmations")
        // TODO: get blockhash by check_height, get latency