diff --git a/nucypher/characters.py b/nucypher/characters.py index 6792535a1..09f2b8b4a 100644 --- a/nucypher/characters.py +++ b/nucypher/characters.py @@ -200,6 +200,7 @@ class Character: self._dht_server = self._dht_server_class(node_storage=self._known_nodes, # TODO: 340 treasure_map_storage=self._stored_treasure_maps, # TODO: 340 + federated_only=self.federated_only, ksize=ksize, alpha=alpha, id=id, storage=storage, *args, **kwargs) diff --git a/nucypher/network/protocols.py b/nucypher/network/protocols.py index 3cec6de11..236c13443 100644 --- a/nucypher/network/protocols.py +++ b/nucypher/network/protocols.py @@ -58,7 +58,7 @@ class NucypherHashProtocol(KademliaProtocol): if header == constants.BYTESTRING_IS_URSULA_IFACE_INFO: from nucypher.characters import Ursula stranger_ursula = Ursula.from_bytes(payload, - federated_only=True) # TODO: Is federated_only the right thing here? + federated_only=self.sourceNode.federated_only) # TODO: Is federated_only the right thing here? if stranger_ursula.verify_interface() and key == digest(stranger_ursula.canonical_public_address): self.sourceNode._node_storage[key] = stranger_ursula # TODO: 340 diff --git a/nucypher/network/server.py b/nucypher/network/server.py index 856cf1794..a0adf7963 100644 --- a/nucypher/network/server.py +++ b/nucypher/network/server.py @@ -30,7 +30,7 @@ class NucypherDHTServer(Server): capabilities = () digests_set = 0 - def __init__(self, node_storage, treasure_map_storage, id=None, *args, **kwargs): + def __init__(self, node_storage, treasure_map_storage, federated_only=False, id=None, *args, **kwargs): super().__init__(ksize=20, alpha=3, id=None, storage=None) self.node = kademlia.node.Node(id=id or digest( random.getrandbits(255))) # TODO: Assume that this can be attacked to get closer to desired kFrags. @@ -39,6 +39,8 @@ class NucypherDHTServer(Server): self.node._node_storage = node_storage self.node._treasure_maps = treasure_map_storage + self.node.federated_only = federated_only + async def set_digest(self, dkey, value): """ Set the given SHA1 digest key (bytes) to the given value in the network.