fedn
fedn copied to clipboard
Which communication protocol and serialization method is supported?
Dear FedN Team,
I am currently writing a survey paper on Federated Computing. One part of it describes existing FL frameworks. Could you please let me know which communication protocol (e.g., gRPC, WebSocket, HTTP, GLOO) and serialization method (e.g., Pickle, JSON, Protobuf, FOBS) you supports I already saw in your documentation that you support gRPC, but maybe there is more.
Any help is highly appreciated.
Hi Rene, we use gRPC for communication between aggregation server (combiner) and clients, controller. Clients use HTTP to assign to the FL network, and users use HTTP to interact with the REST API for managing exeperimens.
For model serialization, you as a user/developer can decide this by implementing a custom "helper". The default Python3 helper represents parameters as lists of numpy arrays and we serialize to bytes. The framework will then chunk-up the blob and uses gRPC streaming under the hood to send it to/from the server (combiner). The Android/Kotlin helper uses JSON. We strongly advice against using pickle for marshalling in any production-like setting, since it is insecure. For more information see here: https://fedn.readthedocs.io/en/stable/helpers.html
If you have more questions, just jump into our Discord server and interact with our core developers.