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
62
api/types.go
62
api/types.go
|
@ -230,27 +230,29 @@ func (ids *IPFSIDSerial) ToIPFSID() IPFSID {
|
||||||
|
|
||||||
// ID holds information about the Cluster peer
|
// ID holds information about the Cluster peer
|
||||||
type ID struct {
|
type ID struct {
|
||||||
ID peer.ID
|
ID peer.ID
|
||||||
Addresses []ma.Multiaddr
|
Addresses []ma.Multiaddr
|
||||||
ClusterPeers []ma.Multiaddr
|
ClusterPeers []peer.ID
|
||||||
Version string
|
ClusterPeersAddresses []ma.Multiaddr
|
||||||
Commit string
|
Version string
|
||||||
RPCProtocolVersion protocol.ID
|
Commit string
|
||||||
Error string
|
RPCProtocolVersion protocol.ID
|
||||||
IPFS IPFSID
|
Error string
|
||||||
|
IPFS IPFSID
|
||||||
//PublicKey crypto.PubKey
|
//PublicKey crypto.PubKey
|
||||||
}
|
}
|
||||||
|
|
||||||
// IDSerial is the serializable ID counterpart for RPC requests
|
// IDSerial is the serializable ID counterpart for RPC requests
|
||||||
type IDSerial struct {
|
type IDSerial struct {
|
||||||
ID string `json:"id"`
|
ID string `json:"id"`
|
||||||
Addresses MultiaddrsSerial `json:"addresses"`
|
Addresses MultiaddrsSerial `json:"addresses"`
|
||||||
ClusterPeers MultiaddrsSerial `json:"cluster_peers"`
|
ClusterPeers []string `json:"cluster_peers"`
|
||||||
Version string `json:"version"`
|
ClusterPeersAddresses MultiaddrsSerial `json:"cluster_peers_addresses"`
|
||||||
Commit string `json:"commit"`
|
Version string `json:"version"`
|
||||||
RPCProtocolVersion string `json:"rpc_protocol_version"`
|
Commit string `json:"commit"`
|
||||||
Error string `json:"error"`
|
RPCProtocolVersion string `json:"rpc_protocol_version"`
|
||||||
IPFS IPFSIDSerial `json:"ipfs"`
|
Error string `json:"error"`
|
||||||
|
IPFS IPFSIDSerial `json:"ipfs"`
|
||||||
//PublicKey []byte
|
//PublicKey []byte
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -261,16 +263,22 @@ func (id ID) ToSerial() IDSerial {
|
||||||
// pkey, _ = id.PublicKey.Bytes()
|
// 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{
|
return IDSerial{
|
||||||
ID: peer.IDB58Encode(id.ID),
|
ID: peer.IDB58Encode(id.ID),
|
||||||
//PublicKey: pkey,
|
//PublicKey: pkey,
|
||||||
Addresses: MultiaddrsToSerial(id.Addresses),
|
Addresses: MultiaddrsToSerial(id.Addresses),
|
||||||
ClusterPeers: MultiaddrsToSerial(id.ClusterPeers),
|
ClusterPeers: peers,
|
||||||
Version: id.Version,
|
ClusterPeersAddresses: MultiaddrsToSerial(id.ClusterPeersAddresses),
|
||||||
Commit: id.Commit,
|
Version: id.Version,
|
||||||
RPCProtocolVersion: string(id.RPCProtocolVersion),
|
Commit: id.Commit,
|
||||||
Error: id.Error,
|
RPCProtocolVersion: string(id.RPCProtocolVersion),
|
||||||
IPFS: id.IPFS.ToSerial(),
|
Error: id.Error,
|
||||||
|
IPFS: id.IPFS.ToSerial(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -285,8 +293,14 @@ func (ids IDSerial) ToID() ID {
|
||||||
// id.PublicKey = pkey
|
// 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.Addresses = ids.Addresses.ToMultiaddrs()
|
||||||
id.ClusterPeers = ids.ClusterPeers.ToMultiaddrs()
|
id.ClusterPeers = peers
|
||||||
|
id.ClusterPeersAddresses = ids.ClusterPeersAddresses.ToMultiaddrs()
|
||||||
id.Version = ids.Version
|
id.Version = ids.Version
|
||||||
id.Commit = ids.Commit
|
id.Commit = ids.Commit
|
||||||
id.RPCProtocolVersion = protocol.ID(ids.RPCProtocolVersion)
|
id.RPCProtocolVersion = protocol.ID(ids.RPCProtocolVersion)
|
||||||
|
|
16
cluster.go
16
cluster.go
|
@ -590,15 +590,13 @@ func (c *Cluster) ID() api.ID {
|
||||||
return api.ID{
|
return api.ID{
|
||||||
ID: c.id,
|
ID: c.id,
|
||||||
//PublicKey: c.host.Peerstore().PubKey(c.id),
|
//PublicKey: c.host.Peerstore().PubKey(c.id),
|
||||||
Addresses: addrs,
|
Addresses: addrs,
|
||||||
// TODO: These are not peers but addresses. There could be
|
ClusterPeers: peers,
|
||||||
// several addresses for a single peer. Do we want to provide
|
ClusterPeersAddresses: c.peerManager.addresses(peers),
|
||||||
// only PIDs? Another key in this object for addresses?
|
Version: Version,
|
||||||
ClusterPeers: c.peerManager.addresses(peers),
|
Commit: Commit,
|
||||||
Version: Version,
|
RPCProtocolVersion: RPCProtocol,
|
||||||
Commit: Commit,
|
IPFS: ipfsID,
|
||||||
RPCProtocolVersion: RPCProtocol,
|
|
||||||
IPFS: ipfsID,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -81,7 +81,7 @@ func textFormatPrintIDSerial(obj *api.IDSerial) {
|
||||||
return
|
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))
|
addrs := make(sort.StringSlice, 0, len(obj.Addresses))
|
||||||
for _, a := range obj.Addresses {
|
for _, a := range obj.Addresses {
|
||||||
addrs = append(addrs, string(a))
|
addrs = append(addrs, string(a))
|
||||||
|
|
Loading…
Reference in New Issue
Block a user