Reafactor Joye-Libert Implementation
MR description
Developer Certificate of Origin:
- Joye-Libert original code is now published with MIT License: https://github.com/MohamadMansouri/fault-tolerant-secure-agg/blob/main/LICENSE.md
- we received confirmation from Melek Onen that license is now settled
This merge request refactors Joye-Libert implementation which is implmentted as PoC in the branch joy_sec_agg.
-
Adds two new security parameters to node configuration as
secure_aggregation
andforce_secure_aggreagation
-
Introduces new way of sending Sklearn model parameters back to researcher. This implementation has been implemented as simple as posible since there will advance implementation with the task #481 (closed)
-
This merge request also refactor the codes belong to Eurocom. It can not be merged until the license agreement is clarified.
-
tested break points
Note: documentation will be added after the secagg milestone is completed
Developer Certificate Of Origin (DCO)
By opening this merge request, you agree the Developer Certificate of Origin (DCO)
This DCO essentially means that:
- you offer the changes under the same license agreement as the project, and
- you have the right to do that,
- you did not steal somebody else’s work.
License
Project code files should begin with these comment lines to help trace their origin:
# This file is originally part of Fed-BioMed
# SPDX-License-Identifier: Apache-2.0
Code files can be reused from another project with a compatible non-contaminating license.
They shall retain the original license and copyright mentions.
The CREDIT.md
file and credit/
directory shall be completed and updated accordingly.
Guidelines for MR review
General:
- give a glance to DoD
- check coding rules and coding style
- check docstrings (eg run
tests/docstrings/check_docstrings
)
Specific to some cases:
- update all conda envs consistently (
development
andvpn
, Linux and MacOS) - if modified researcher (eg new attributes in classes) check if breakpoint needs update (
breakpoint
/load_breakpoint
inExperiment()
,save_state
/load_state
in aggregators, strategies, secagg, etc.)