diff --git a/libp2p/host/basic_host.py b/libp2p/host/basic_host.py index f6157748..59662b4c 100644 --- a/libp2p/host/basic_host.py +++ b/libp2p/host/basic_host.py @@ -145,6 +145,9 @@ class BasicHost(IHost): addrs.append(addr.encapsulate(p2p_part)) return addrs + def get_connected_peers(self) -> List[ID]: + return list(self.get_network().connections.keys()) + @asynccontextmanager async def run( self, listen_addrs: Sequence[multiaddr.Multiaddr] diff --git a/libp2p/host/host_interface.py b/libp2p/host/host_interface.py index f71792b5..9187c5c5 100644 --- a/libp2p/host/host_interface.py +++ b/libp2p/host/host_interface.py @@ -71,6 +71,12 @@ class IHost(ABC): :return: all the multiaddr addresses this host is listening to """ + @abstractmethod + def get_connected_peers(self) -> List[ID]: + """ + :return: all the ids of peers this host is currently connected to + """ + @abstractmethod def run( self, listen_addrs: Sequence[multiaddr.Multiaddr]