OSDN Git Service

Merge branch 'dev' into backup
[bytom/bytom.git] / api / nodeinfo.go
1 package api
2
3 type NetInfo struct {
4         Listening    bool   `json:"listening"`
5         Syncing      bool   `json:"syncing"`
6         Mining       bool   `json:"mining"`
7         PeerCount    int    `json:"peer_count"`
8         CurrentBlock uint64 `json:"current_block"`
9         HighestBlock uint64 `json:"highest_block"`
10         NetWorkID    string `json:"network_id"`
11 }
12
13 func (a *API) GetNodeInfo() *NetInfo {
14         info := &NetInfo{
15                 Listening:    a.sync.Switch().IsListening(),
16                 Syncing:      a.sync.BlockKeeper().IsCaughtUp(),
17                 Mining:       a.cpuMiner.IsMining(),
18                 PeerCount:    len(a.sync.Switch().Peers().List()),
19                 CurrentBlock: a.chain.BestBlockHeight(),
20                 NetWorkID:    a.sync.NodeInfo().Network,
21         }
22         _, info.HighestBlock = a.sync.Peers().BestPeer()
23         if info.CurrentBlock > info.HighestBlock {
24                 info.HighestBlock = info.CurrentBlock
25         }
26         return info
27 }
28
29 // return network infomation
30 func (a *API) getNetInfo() Response {
31         return NewSuccessResponse(a.GetNodeInfo())
32 }
33
34 // return is in mining or not
35 func (a *API) isMining() Response {
36         IsMining := map[string]bool{"is_mining": a.IsMining()}
37         return NewSuccessResponse(IsMining)
38 }
39
40 func (a *API) IsMining() bool {
41         return a.cpuMiner.IsMining()
42 }