diff --git a/src/sakia/core/graph/explorer_graph.py b/src/sakia/core/graph/explorer_graph.py index 420b4b48a4cc9b106188fd30cb9d3cbad434231e..a698e4648330f54d67dfbc41ebd00f5677a3cf35 100644 --- a/src/sakia/core/graph/explorer_graph.py +++ b/src/sakia/core/graph/explorer_graph.py @@ -77,14 +77,17 @@ class ExplorerGraph(BaseGraph): logging.debug("New identity explored : {pubkey}".format(pubkey=current_identity.pubkey[:5])) self.graph_changed.emit() - certifier_list = await current_identity.unique_valid_certifiers_of(self.app.identities_registry, - self.community) + certifier_coro = asyncio.ensure_future(current_identity.unique_valid_certifiers_of(self.app.identities_registry, + self.community)) + + certified_coro = asyncio.ensure_future(current_identity.unique_valid_certified_by(self.app.identities_registry, + self.community)) + + certifier_list, certified_list = await asyncio.gather(certifier_coro, certified_coro) + await self.add_certifier_list(certifier_list, current_identity, identity) logging.debug("New identity certifiers : {pubkey}".format(pubkey=current_identity.pubkey[:5])) self.graph_changed.emit() - - certified_list = await current_identity.unique_valid_certified_by(self.app.identities_registry, - self.community) await self.add_certified_list(certified_list, current_identity, identity) logging.debug("New identity certified : {pubkey}".format(pubkey=current_identity.pubkey[:5])) self.graph_changed.emit() diff --git a/src/sakia/core/graph/wot_graph.py b/src/sakia/core/graph/wot_graph.py index 196c0f9188622b11e6a1eb13ecdf3829f6e13dc5..b80a6979f2b90ea4979eb9f8c08c07b7da77b958 100644 --- a/src/sakia/core/graph/wot_graph.py +++ b/src/sakia/core/graph/wot_graph.py @@ -1,4 +1,5 @@ import logging +import asyncio import networkx from .base_graph import BaseGraph from .constants import NodeStatus @@ -65,14 +66,17 @@ class WoTGraph(BaseGraph): while len(explorable) > 0: current = explorable.pop() - certifier_list = await current.unique_valid_certifiers_of(self.app.identities_registry, - self.community) + certifier_coro = asyncio.ensure_future(current.unique_valid_certifiers_of(self.app.identities_registry, + self.community)) + certified_coro = asyncio.ensure_future(current.unique_valid_certified_by(self.app.identities_registry, + self.community)) + + certifier_list, certified_list = await asyncio.gather(certifier_coro, certified_coro) + await self.add_certifier_list(certifier_list, current, account_identity) if to_identity.pubkey in [data['identity'].pubkey for data in certifier_list]: return True - certified_list = await current.unique_valid_certified_by(self.app.identities_registry, - self.community) await self.add_certified_list(certified_list, current, account_identity) if to_identity.pubkey in [data['identity'].pubkey for data in certified_list]: return True @@ -81,4 +85,5 @@ class WoTGraph(BaseGraph): for entry in certifier_list + certified_list: if entry['identity'] not in explored + explorable: explorable.append(entry['identity']) - return False \ No newline at end of file + + return False