NEBULA: A Platform for Decentralized Federated Learning
nebula-dfl.com |
nebula-dfl.eu |
federatedlearning.inf.um.es
## 🌌 About NEBULA
[](LICENSE)
[](https://docs.nebula-dfl.com)

[](https://github.com/CyberDataLab/nebula/issues)
**NEBULA** (previously known as Fedstellar[^1]) is a cutting-edge platform designed to facilitate the training of federated models within both centralized and decentralized architectures. It streamlines the development, deployment, and management of federated applications across physical and virtualized devices.
**NEBULA** is currently developed by **[Enrique Tomás Martínez Beltrán](https://enriquetomasmb.com)**, **[Alberto Huertas Celdrán](#)**, **[Fernando Torres Vega](#)**, and **[Juan Jesús Torralba Mateos](#)** in collaboration with the [University of Murcia](https://www.um.es/en), [armasuisse](https://www.armasuisse.ch/en), and the [University of Zurich](https://www.uzh.ch/).
## 🚀 Key Components
NEBULA boasts a **modular architecture** that consists of three core elements:
- **Frontend**: A user-friendly interface for setting up experiments and monitoring progress.
- **Controller**: An orchestrator that ensures efficient operation management.
- **Core**: The fundamental component deployed on each device to handle federated learning processes.
## 🌟 Main Features
- **Decentralized**: Train models without a central server, leveraging decentralized federated learning.
- **Privacy-preserving**: Maintain data privacy by training on-device and only sharing model updates.
- **Topology-agnostic**: Support for various network topologies including star, ring, and mesh.
- **Model-agnostic**: Compatible with a wide range of machine learning algorithms, from deep learning to traditional methods.
- **Network communication**: Secure and efficient device communication with features like compression, network failure tolerance, and condition simulation.
- **Trustworthiness**: Ensure the integrity of the learning process by verifying the reliability of the federation.
- **Security**: Implement security mechanisms to protect the learning process from adversarial attacks.
- **Real-time monitoring**: Provides live performance metrics and visualizations during the learning process.
## 🌍 Scenario Applications
- 🏥 **Healthcare**: Train models on medical devices such as wearables, smartphones, and sensors.
- 🏭 **Industry 4.0**: Implement on industrial devices like robots, drones, and constrained devices.
- 📱 **Mobile services**: Optimize for mobile devices including smartphones, tablets, and laptops.
- 🛡️ **Military**: Apply to military equipment such as drones, robots, and sensors.
- 🚗 **Vehicular scenarios**: Utilize in vehicles including cars, trucks, and drones.
[^1]: Fedstellar was our first version of the platform. We have redesigned the previous functionalities and added new capabilities based on our research. The platform is now called NEBULA and is available as an open-source project.
## 🎯 Get Started
To start using NEBULA, follow our detailed [Installation Guide](https://docs.nebula-dfl.com/installation/) and [User Manual](https://docs.nebula-dfl.com/usage/). For any queries or contributions, check out our [Contribution Guide](https://docs.nebula-dfl.com/contributing/).
## 🤝 Contributing
We welcome contributions from the community to enhance NEBULA. If you are interested in contributing, please follow the next steps:
1. Fork the repository
2. Create a new branch with your feature or bug fix (`git checkout -b feature/your-feature`).
3. Commit your changes (`git commit -am 'Add new feature'`).
4. Push to the branch (`git push origin feature/your-feature`).
5. Create a new Pull Request.
### Former NEBULA developers
- **[Alejandro Avilés Serrano](#)**
## 📚 Citation
If you use NEBULA (or Fedstellar) in a scientific publication, we would appreciate using the following citations:
```
@article{MartinezBeltran:DFL:2023,
title = {{Decentralized Federated Learning: Fundamentals, State of the Art, Frameworks, Trends, and Challenges}},
author = {Mart{\'i}nez Beltr{\'a}n, Enrique Tom{\'a}s and Quiles P{\'e}rez, Mario and S{\'a}nchez S{\'a}nchez, Pedro Miguel and L{\'o}pez Bernal, Sergio and Bovet, G{\'e}r{\^o}me and Gil P{\'e}rez, Manuel and Mart{\'i}nez P{\'e}rez, Gregorio and Huertas Celdr{\'a}n, Alberto},
year = 2023,
volume = {25},
number = {4},
pages = {2983-3013},
journal = {IEEE Communications Surveys & Tutorials},
doi = {10.1109/COMST.2023.3315746},
preprint = {https://arxiv.org/abs/2211.08413}
}
```
```
@article{MartinezBeltran:fedstellar:2024,
title = {{Fedstellar: A Platform for Decentralized Federated Learning}},
author = {Mart{\'i}nez Beltr{\'a}n, Enrique Tom{\'a}s and Perales G{\'o}mez, {\'A}ngel Luis and Feng, Chao and S{\'a}nchez S{\'a}nchez, Pedro Miguel and L{\'o}pez Bernal, Sergio and Bovet, G{\'e}r{\^o}me and Gil P{\'e}rez, Manuel and Mart{\'i}nez P{\'e}rez, Gregorio and Huertas Celdr{\'a}n, Alberto},
year = 2024,
volume = {242},
issn = {0957-4174},
pages = {122861},
journal = {Expert Systems with Applications},
doi = {10.1016/j.eswa.2023.122861},
preprint = {https://arxiv.org/abs/2306.09750}
}
```
```
@inproceedings{MartinezBeltran:fedstellar_demo:2023,
title = {{Fedstellar: A Platform for Training Models in a Privacy-preserving and Decentralized Fashion}},
author = {Mart{\'i}nez Beltr{\'a}n, Enrique Tom{\'a}s and S{\'a}nchez S{\'a}nchez, Pedro Miguel and L{\'o}pez Bernal, Sergio and Bovet, G{\'e}r{\^o}me and Gil P{\'e}rez, Manuel and Mart{\'i}nez P{\'e}rez, Gregorio and Huertas Celdr{\'a}n, Alberto},
year = 2023,
month = aug,
booktitle = {Proceedings of the Thirty-Second International Joint Conference on Artificial Intelligence, {IJCAI-23}},
publisher = {International Joint Conferences on Artificial Intelligence Organization},
pages = {7154--7157},
doi = {10.24963/ijcai.2023/838},
note = {Demo Track},
editor = {Edith Elkind}
}
```
```
@article{MartinezBeltran:DFL_mitigating_threats:2023,
title = {{Mitigating Communications Threats in Decentralized Federated Learning through Moving Target Defense}},
author = {Mart{\'i}nez Beltr{\'a}n, Enrique Tom{\'a}s and S{\'a}nchez S{\'a}nchez, Pedro Miguel and L{\'o}pez Bernal, Sergio and Bovet, G{\'e}r{\^o}me and Gil P{\'e}rez, Manuel and Mart{\'i}nez P{\'e}rez, Gregorio and Huertas Celdr{\'a}n, Alberto},
year = 2024,
journal = {Wireless Networks},
doi = {10.1007/s11276-024-03667-8}
preprint = {https://arxiv.org/abs/2307.11730}
}
```
## 📝 License
Distributed under the GNU AGPLv3 License. See `LICENSE` for more information.
* **Community Edition** — released under the **GNU Affero GPL v3.0**.
* **Enterprise Edition** — proprietary license & premium support available.
Contact **enriquetomas@um.es** and **alberto.huertas@um.es** for commercial terms.
## 🙏 Acknowledgements
We would like to thank the following projects for their contributions which have helped shape NEBULA:
- [PyTorch Lightning](https://github.com/Lightning-AI/pytorch-lightning) for the training loop and model management
- [Tensorboard](https://github.com/tensorflow/tensorboard) for the visualization tools and monitoring capabilities
- Different datasets ([nebula/core/datasets](https://github.com/CyberDataLab/nebula/tree/main/nebula/core/datasets)) and models ([nebula/core/models](https://github.com/CyberDataLab/nebula/tree/main/nebula/core/models)) for testing and validation purposes
- [FastAPI](https://github.com/tiangolo/fastapi) for the RESTful API
- [Fedstellar](https://github.com/CyberDataLab/fedstellar) platform and [p2pfl](https://github.com/pguijas/p2pfl/) library
- [Adversarial Robustness Toolbox (ART)](https://github.com/Trusted-AI/adversarial-robustness-toolbox) for the implementation of adversarial attacks
- [Opacus](https://github.com/meta-pytorch/opacus) for differential privacy training support
- [AI Fairness 360 (AIF360)](https://github.com/Trusted-AI/AIF360) for fairness metric definitions
- [HolisticAI](https://github.com/holistic-ai/holisticai) for trustworthiness and fairness metric definitions
- [D3.js](https://github.com/d3/d3-force) for the network visualizations
## Third-party Differential Privacy
NEBULA uses Opacus for differential privacy training:
- Yousefpour, A., Shilov, I., Sablayrolles, A., Testuggine, D., Prasad, K., Malek, M., Nguyen, J., Ghosh, S., Bharadwaj, A., Zhao, J., Cormode, G., & Mironov, I. (2021). Opacus: User-Friendly Differential Privacy Library in PyTorch. arXiv:2109.12298. Licensed under Apache License 2.0: https://github.com/meta-pytorch/opacus/blob/main/LICENSE
## Third-party Trustworthiness Metrics
NEBULA implements some trustworthiness and fairness metrics following definitions documented in external toolkits:
- AI Fairness 360 (AIF360). AI Fairness 360 [Software]. https://github.com/Trusted-AI/AIF360. Licensed under Apache License 2.0: https://github.com/Trusted-AI/AIF360/blob/main/LICENSE
- Holistic AI. HolisticAI [Software]. https://github.com/holistic-ai/holisticai. Licensed under Apache License 2.0: https://github.com/holistic-ai/holisticai/blob/main/LICENSE
## Third-party Tabular Datasets
NEBULA preprocesses these datasets for experiments, including splitting, scaling, encoding, label mapping, filtering, and/or sample limiting depending on the dataset.
- Becker, B. & Kohavi, R. (1996). Adult [Dataset]. UCI Machine Learning Repository. https://doi.org/10.24432/C5XW20. Licensed under CC BY 4.0: https://creativecommons.org/licenses/by/4.0/
- Blackard, J. (1998). Covertype [Dataset]. UCI Machine Learning Repository. https://doi.org/10.24432/C50K5N. Licensed under CC BY 4.0: https://creativecommons.org/licenses/by/4.0/
- Wolberg, W., Mangasarian, O., Street, N., & Street, W. (1993). Breast Cancer Wisconsin (Diagnostic) [Dataset]. UCI Machine Learning Repository. https://doi.org/10.24432/C5DW2B. Licensed under CC BY 4.0: https://creativecommons.org/licenses/by/4.0/
- Stolfo, S., Fan, W., Lee, W., Prodromidis, A., & Chan, P. (1999). KDD Cup 1999 Data [Dataset]. UCI Machine Learning Repository. https://doi.org/10.24432/C51C7N. Licensed under CC BY 4.0: https://creativecommons.org/licenses/by/4.0/