X-Git-Url: http://git.osdn.net/view?p=bytom%2Fvapor.git;a=blobdiff_plain;f=api%2Fnodeinfo.go;h=591f7af594ccb8e095f38dc053927da0af0063c8;hp=c0b55c1edad5a14965b8a9ab2c2a7aeb10dcc2bb;hb=f2188c229db6ddc9974d51759eaac6f0d2826609;hpb=08281341c2cb02ba11d4218576256688854790fc diff --git a/api/nodeinfo.go b/api/nodeinfo.go index c0b55c1e..591f7af5 100644 --- a/api/nodeinfo.go +++ b/api/nodeinfo.go @@ -4,8 +4,9 @@ import ( "context" "net" + cfg "github.com/vapor/config" "github.com/vapor/errors" - "github.com/vapor/netsync" + "github.com/vapor/netsync/peers" "github.com/vapor/p2p" "github.com/vapor/version" ) @@ -21,6 +22,7 @@ type NetInfo struct { Listening bool `json:"listening"` Syncing bool `json:"syncing"` Mining bool `json:"mining"` + NodeXPub string `json:"node_xpub"` PeerCount int `json:"peer_count"` CurrentBlock uint64 `json:"current_block"` HighestBlock uint64 `json:"highest_block"` @@ -30,13 +32,15 @@ type NetInfo struct { // GetNodeInfo return net information func (a *API) GetNodeInfo() *NetInfo { + nodeXPub := cfg.CommonConfig.PrivateKey().XPub() info := &NetInfo{ - Listening: a.sync.Switch().IsListening(), + Listening: a.sync.IsListening(), Syncing: !a.sync.IsCaughtUp(), - Mining: a.cpuMiner.IsMining(), - PeerCount: len(a.sync.Switch().Peers().List()), + Mining: a.blockProposer.IsProposing(), + NodeXPub: nodeXPub.String(), + PeerCount: a.sync.PeerCount(), CurrentBlock: a.chain.BestBlockHeight(), - NetWorkID: a.sync.NodeInfo().Network, + NetWorkID: a.sync.GetNetwork(), Version: &VersionInfo{ Version: version.Version, Update: version.Status.VersionStatus(), @@ -53,7 +57,7 @@ func (a *API) GetNodeInfo() *NetInfo { } // return the currently connected peers with net address -func (a *API) getPeerInfoByAddr(addr string) *netsync.PeerInfo { +func (a *API) getPeerInfoByAddr(addr string) *peers.PeerInfo { peerInfos := a.sync.GetPeerInfos() for _, peerInfo := range peerInfos { if peerInfo.RemoteAddr == addr { @@ -69,16 +73,15 @@ func (a *API) disconnectPeerById(peerID string) error { } // connect peer b y net address -func (a *API) connectPeerByIpAndPort(ip string, port uint16) (*netsync.PeerInfo, error) { +func (a *API) connectPeerByIpAndPort(ip string, port uint16) (*peers.PeerInfo, error) { netIp := net.ParseIP(ip) if netIp == nil { return nil, errors.New("invalid ip address") } addr := p2p.NewNetAddressIPPort(netIp, port) - sw := a.sync.Switch() - if err := sw.DialPeerWithAddress(addr); err != nil { + if err := a.sync.DialPeerWithAddress(addr); err != nil { return nil, errors.Wrap(err, "can not connect to the address") } peer := a.getPeerInfoByAddr(addr.String()) @@ -99,9 +102,9 @@ func (a *API) isMining() Response { return NewSuccessResponse(IsMining) } -// IsMining return mining status +// IsProposing return mining status func (a *API) IsMining() bool { - return a.cpuMiner.IsMining() + return a.blockProposer.IsProposing() } // return the peers of current node