From: HAOYUatHZ Date: Mon, 19 Aug 2019 02:42:10 +0000 (+0800) Subject: add moniker X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=bd3ab0af72e7f91febc3938150f2b165fbbb2443;p=bytom%2Fvapor.git add moniker --- diff --git a/netsync/peers/peer.go b/netsync/peers/peer.go index 4db047d6..6fd6bb7c 100644 --- a/netsync/peers/peer.go +++ b/netsync/peers/peer.go @@ -35,6 +35,7 @@ var ( //BasePeer is the interface for connection level peer type BasePeer interface { + Moniker() string Addr() net.Addr ID() string RemoteAddrHost() string @@ -61,6 +62,7 @@ type BroadcastMsg interface { // PeerInfo indicate peer status snap type PeerInfo struct { ID string `json:"peer_id"` + Moniker string `json:"moniker"` RemoteAddr string `json:"remote_addr"` Height uint64 `json:"height"` Ping string `json:"ping"` @@ -169,6 +171,7 @@ func (p *Peer) GetPeerInfo() *PeerInfo { return &PeerInfo{ ID: p.ID(), + Moniker: p.BasePeer.Moniker(), RemoteAddr: p.Addr().String(), Height: p.bestHeight, Ping: ping.String(), diff --git a/p2p/peer.go b/p2p/peer.go index 856d1e96..fbb663b3 100644 --- a/p2p/peer.go +++ b/p2p/peer.go @@ -194,6 +194,11 @@ func (p *Peer) IsLAN() bool { return p.isLAN } +// Moniker returns peer's moniker. +func (p *Peer) Moniker() string { + return p.NodeInfo.Moniker +} + // PubKey returns peer's public key. func (p *Peer) PubKey() string { return p.conn.(*connection.SecretConnection).RemotePubKey().String() diff --git a/toolbar/precog/monitor/stats.go b/toolbar/precog/monitor/stats.go index 5bf9eb8c..cf1250d2 100644 --- a/toolbar/precog/monitor/stats.go +++ b/toolbar/precog/monitor/stats.go @@ -47,13 +47,15 @@ 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 { + if err := xPub.UnmarshalText([]byte(peerInfo.ID)); err != nil { return err } ormNode := &orm.Node{} - if err := m.db.Model(&orm.Node{}).Where(&orm.Node{PublicKey: xPub.PublicKey.String()}). + if err := m.db.Model(&orm.Node{}).Where(&orm.Node{PublicKey: xPub.PublicKey().String()}). UpdateColumn(&orm.Node{ + Alias: peerInfo.Moniker, + Xpub: peerInfo.ID, BestHeight: peerInfo.Height, // LatestDailyUptimeMinutes uint64 }).First(ormNode).Error; err != nil {