rpc: add n_peers to /net_info

This commit is contained in:
Ethan Buchman 2018-04-28 16:09:12 -04:00
parent 6805ddf1b8
commit c90bf77566
4 changed files with 11 additions and 4 deletions

View File

@ -29,15 +29,18 @@ BUG FIXES:
FEATURES: FEATURES:
- [p2p] Allow peers with different Minor versions to connect - [p2p] Allow peers with different Minor versions to connect
- [rpc] `/net_info` includes `n_peers`
IMPROVEMENTS: IMPROVEMENTS:
- [p2p] Various code comments cleanup - [p2p] Various code comments, cleanup, error types
- [p2p] Change some Error logs to Debug
BUG FIXES: BUG FIXES:
- [p2p] Fix reconnect to persistent peer when first dial fails - [p2p] Fix reconnect to persistent peer when first dial fails
- [p2p] Validate NodeInfo.ListenAddr - [p2p] Validate NodeInfo.ListenAddr
- [p2p] Only allow (MaxNumPeers - MaxNumOutboundPeers) inbound peers
- [p2p/pex] Limit max msg size to 64kB - [p2p/pex] Limit max msg size to 64kB
## 0.19.1 (April 27th, 2018) ## 0.19.1 (April 27th, 2018)

View File

@ -401,7 +401,7 @@ func (sw *Switch) DialPeersAsync(addrBook AddrBook, peers []string, persistent b
sw.randomSleep(0) sw.randomSleep(0)
err := sw.DialPeerWithAddress(addr, persistent) err := sw.DialPeerWithAddress(addr, persistent)
if err != nil { if err != nil {
switch err.(type) { switch err {
case ErrSwitchConnectToSelf, ErrSwitchDuplicatePeer: case ErrSwitchConnectToSelf, ErrSwitchDuplicatePeer:
sw.Logger.Debug("Error dialing peer", "err", err) sw.Logger.Debug("Error dialing peer", "err", err)
default: default:

View File

@ -23,6 +23,7 @@ import (
// { // {
// "error": "", // "error": "",
// "result": { // "result": {
// "n_peers": 0,
// "peers": [], // "peers": [],
// "listeners": [ // "listeners": [
// "Listener(@10.0.2.15:46656)" // "Listener(@10.0.2.15:46656)"
@ -47,11 +48,13 @@ func NetInfo() (*ctypes.ResultNetInfo, error) {
ConnectionStatus: peer.Status(), ConnectionStatus: peer.Status(),
}) })
} }
// TODO: should we include "num_peers" field for convenience ? // TODO: Should we include PersistentPeers and Seeds in here?
// Let's also include the PersistentPeers and Seeds in here. // PRO: useful info
// CON: privacy
return &ctypes.ResultNetInfo{ return &ctypes.ResultNetInfo{
Listening: listening, Listening: listening,
Listeners: listeners, Listeners: listeners,
NPeers: len(peers),
Peers: peers, Peers: peers,
}, nil }, nil
} }

View File

@ -100,6 +100,7 @@ func (s *ResultStatus) TxIndexEnabled() bool {
type ResultNetInfo struct { type ResultNetInfo struct {
Listening bool `json:"listening"` Listening bool `json:"listening"`
Listeners []string `json:"listeners"` Listeners []string `json:"listeners"`
NPeers int `json:"n_peers"`
Peers []Peer `json:"peers"` Peers []Peer `json:"peers"`
} }