From bb4111a0fbe67f0c0125f15762039ea16009a8d9 Mon Sep 17 00:00:00 2001 From: Paul Andrey <paul.andrey@inria.fr> Date: Mon, 10 Jun 2024 13:58:52 +0200 Subject: [PATCH] Fix SecAgg not being setup prior to Fairness setup. --- declearn/main/_client.py | 4 ++++ declearn/main/_server.py | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/declearn/main/_client.py b/declearn/main/_client.py index cbe48c2..14ae680 100644 --- a/declearn/main/_client.py +++ b/declearn/main/_client.py @@ -454,6 +454,10 @@ class FederatedClient: and should never be called in another context. """ assert self.trainmanager is not None + # When SecAgg is to be used, setup controllers first. + if self.secagg is not None: + received = await self.netwk.recv_message() + await self.setup_secagg(received) # Await and deserialize a FairnessSetupQuery. received = await self.netwk.recv_message() query = await verify_server_message_validity( diff --git a/declearn/main/_server.py b/declearn/main/_server.py index 1286103..11f157a 100644 --- a/declearn/main/_server.py +++ b/declearn/main/_server.py @@ -355,6 +355,10 @@ class FederatedServer: await self._initialize_dpsgd(config) # If fairness-aware federated learning is configured, set it up. if self.fairness is not None: + # When SecAgg is to be used, setup controllers first. + if self.secagg is not None: + await self.setup_secagg() + # Call the setup routine of the held fairness controller. self.aggrg = await self.fairness.setup_fairness( netwk=self.netwk, aggregator=self.aggrg, secagg=self._decrypter ) -- GitLab