From 4c9b7627fe18ec3d1dbbc1c4127f350b8094d031 Mon Sep 17 00:00:00 2001 From: HAOYUatHZ Date: Mon, 12 Aug 2019 19:50:19 +0800 Subject: [PATCH] add --- p2p/switch.go | 10 +++++----- toolbar/precog/monitor/monitor.go | 16 +++++++++++++++- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/p2p/switch.go b/p2p/switch.go index 9e8ba44a..5df815a4 100644 --- a/p2p/switch.go +++ b/p2p/switch.go @@ -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() { diff --git a/toolbar/precog/monitor/monitor.go b/toolbar/precog/monitor/monitor.go index f4555d0c..ab553234 100644 --- a/toolbar/precog/monitor/monitor.go +++ b/toolbar/precog/monitor/monitor.go @@ -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 -- 2.11.0