Issue #219: Provide a list of peers and a list of addresses in the ID object.
Fix cluster-ctl to show right number of peers License: MIT Signed-off-by: Hector Sanjuan <hector@protocol.ai>
This commit is contained in:
parent
289890ad6c
commit
2a616aeddb
22
api/types.go
22
api/types.go
|
@ -232,7 +232,8 @@ func (ids *IPFSIDSerial) ToIPFSID() IPFSID {
|
|||
type ID struct {
|
||||
ID peer.ID
|
||||
Addresses []ma.Multiaddr
|
||||
ClusterPeers []ma.Multiaddr
|
||||
ClusterPeers []peer.ID
|
||||
ClusterPeersAddresses []ma.Multiaddr
|
||||
Version string
|
||||
Commit string
|
||||
RPCProtocolVersion protocol.ID
|
||||
|
@ -245,7 +246,8 @@ type ID struct {
|
|||
type IDSerial struct {
|
||||
ID string `json:"id"`
|
||||
Addresses MultiaddrsSerial `json:"addresses"`
|
||||
ClusterPeers MultiaddrsSerial `json:"cluster_peers"`
|
||||
ClusterPeers []string `json:"cluster_peers"`
|
||||
ClusterPeersAddresses MultiaddrsSerial `json:"cluster_peers_addresses"`
|
||||
Version string `json:"version"`
|
||||
Commit string `json:"commit"`
|
||||
RPCProtocolVersion string `json:"rpc_protocol_version"`
|
||||
|
@ -261,11 +263,17 @@ func (id ID) ToSerial() IDSerial {
|
|||
// pkey, _ = id.PublicKey.Bytes()
|
||||
//}
|
||||
|
||||
peers := make([]string, len(id.ClusterPeers), len(id.ClusterPeers))
|
||||
for i, p := range id.ClusterPeers {
|
||||
peers[i] = peer.IDB58Encode(p)
|
||||
}
|
||||
|
||||
return IDSerial{
|
||||
ID: peer.IDB58Encode(id.ID),
|
||||
//PublicKey: pkey,
|
||||
Addresses: MultiaddrsToSerial(id.Addresses),
|
||||
ClusterPeers: MultiaddrsToSerial(id.ClusterPeers),
|
||||
ClusterPeers: peers,
|
||||
ClusterPeersAddresses: MultiaddrsToSerial(id.ClusterPeersAddresses),
|
||||
Version: id.Version,
|
||||
Commit: id.Commit,
|
||||
RPCProtocolVersion: string(id.RPCProtocolVersion),
|
||||
|
@ -285,8 +293,14 @@ func (ids IDSerial) ToID() ID {
|
|||
// id.PublicKey = pkey
|
||||
//}
|
||||
|
||||
peers := make([]peer.ID, len(ids.ClusterPeers), len(ids.ClusterPeers))
|
||||
for i, p := range ids.ClusterPeers {
|
||||
peers[i], _ = peer.IDB58Decode(p)
|
||||
}
|
||||
|
||||
id.Addresses = ids.Addresses.ToMultiaddrs()
|
||||
id.ClusterPeers = ids.ClusterPeers.ToMultiaddrs()
|
||||
id.ClusterPeers = peers
|
||||
id.ClusterPeersAddresses = ids.ClusterPeersAddresses.ToMultiaddrs()
|
||||
id.Version = ids.Version
|
||||
id.Commit = ids.Commit
|
||||
id.RPCProtocolVersion = protocol.ID(ids.RPCProtocolVersion)
|
||||
|
|
|
@ -591,10 +591,8 @@ func (c *Cluster) ID() api.ID {
|
|||
ID: c.id,
|
||||
//PublicKey: c.host.Peerstore().PubKey(c.id),
|
||||
Addresses: addrs,
|
||||
// TODO: These are not peers but addresses. There could be
|
||||
// several addresses for a single peer. Do we want to provide
|
||||
// only PIDs? Another key in this object for addresses?
|
||||
ClusterPeers: c.peerManager.addresses(peers),
|
||||
ClusterPeers: peers,
|
||||
ClusterPeersAddresses: c.peerManager.addresses(peers),
|
||||
Version: Version,
|
||||
Commit: Commit,
|
||||
RPCProtocolVersion: RPCProtocol,
|
||||
|
|
|
@ -81,7 +81,7 @@ func textFormatPrintIDSerial(obj *api.IDSerial) {
|
|||
return
|
||||
}
|
||||
|
||||
fmt.Printf("%s | %d peers\n", obj.ID, len(obj.ClusterPeers))
|
||||
fmt.Printf("%s | Sees %d other peers\n", obj.ID, len(obj.ClusterPeers)-1)
|
||||
addrs := make(sort.StringSlice, 0, len(obj.Addresses))
|
||||
for _, a := range obj.Addresses {
|
||||
addrs = append(addrs, string(a))
|
||||
|
|
Loading…
Reference in New Issue
Block a user