OSDN Git Service

rename
authorHAOYUatHZ <haoyu@protonmail.com>
Mon, 19 Aug 2019 02:25:37 +0000 (10:25 +0800)
committerHAOYUatHZ <haoyu@protonmail.com>
Mon, 19 Aug 2019 02:25:37 +0000 (10:25 +0800)
toolbar/precog/monitor/monitor.go
toolbar/precog/monitor/stats.go [moved from toolbar/precog/monitor/crud.go with 75% similarity]

index da4ad9b..0b604e8 100644 (file)
@@ -28,16 +28,14 @@ import (
 )
 
 type monitor struct {
-       cfg               *config.Config
-       db                *gorm.DB
-       nodeCfg           *vaporCfg.Config
-       sw                *p2p.Switch
-       discvCh           chan *dht.Node
-       privKey           chainkd.XPrv
-       chain             *mock.Chain
-       txPool            *mock.Mempool
-       tryConnectStartCh chan struct{}
-       tryConnectEndCh   chan struct{}
+       cfg     *config.Config
+       db      *gorm.DB
+       nodeCfg *vaporCfg.Config
+       sw      *p2p.Switch
+       discvCh chan *dht.Node
+       privKey chainkd.XPrv
+       chain   *mock.Chain
+       txPool  *mock.Mempool
 }
 
 // TODO: set myself as SPV?
@@ -69,15 +67,13 @@ func NewMonitor(cfg *config.Config, db *gorm.DB) *monitor {
        }
 
        return &monitor{
-               cfg:               cfg,
-               db:                db,
-               nodeCfg:           nodeCfg,
-               discvCh:           discvCh,
-               privKey:           privKey.(chainkd.XPrv),
-               chain:             chain,
-               txPool:            txPool,
-               tryConnectStartCh: make(chan struct{}, 1),
-               tryConnectEndCh:   make(chan struct{}, 1),
+               cfg:     cfg,
+               db:      db,
+               nodeCfg: nodeCfg,
+               discvCh: discvCh,
+               privKey: privKey.(chainkd.XPrv),
+               chain:   chain,
+               txPool:  txPool,
        }
 }
 
@@ -176,8 +172,9 @@ func (m *monitor) checkStatusRoutine() {
 
        bestHeight := uint64(0)
        ticker := time.NewTicker(time.Duration(m.cfg.CheckFreqSeconds) * time.Second)
-       // TODO: change back to start immediately
        for range ticker.C {
+               log.Info("m.sw.GetPeers().List()", m.sw.GetPeers().List())
+
                for _, peer := range m.sw.GetPeers().List() {
                        peer.Start()
                        protocolReactor.AddPeer(peer)
similarity index 75%
rename from toolbar/precog/monitor/crud.go
rename to toolbar/precog/monitor/stats.go
index 7796736..5bf9eb8 100644 (file)
@@ -5,6 +5,7 @@ import (
 
        "github.com/jinzhu/gorm"
 
+       "github.com/vapor/crypto/ed25519/chainkd"
        "github.com/vapor/netsync/peers"
        "github.com/vapor/toolbar/precog/config"
        "github.com/vapor/toolbar/precog/database/orm"
@@ -45,5 +46,19 @@ func (m *monitor) upSertNode(node *config.Node) error {
 }
 
 func (m *monitor) savePeerInfo(peerInfo *peers.PeerInfo) error {
+       xPub := &chainkd.XPub{}
+       if err := xPub.UnmarshalText([]peerInfo.ID()); err != nil {
+               return err
+       }
+
+       ormNode := &orm.Node{}
+       if err := m.db.Model(&orm.Node{}).Where(&orm.Node{PublicKey: xPub.PublicKey.String()}).
+               UpdateColumn(&orm.Node{
+                       BestHeight: peerInfo.Height,
+                       // LatestDailyUptimeMinutes uint64
+               }).First(ormNode).Error; err != nil {
+               return err
+       }
+
        return nil
 }