"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"
)
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"`
// 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(),
}
// 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 {
}
// 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())
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