How to set up Raven Distribution Framework(RDF)?
Raven distribution framework(RDF) is really easy to install on a local machine, as long as you have a Linux or macOS device. Now there is no need to set up various components separately. This comprehensive repository contains scripts to install all dependencies and libraries in a single command.
While RDF is currently in the development stage, we will be constantly pushing new features. You can test out both the latest and stable builds available on Github. Learn more about RDF and its components here. Join our Discord server and Telegram channel to get regular updates.
How to set up RDF?
1. Install ravsock, ravop, ravftp and other dependencies
Create a virtual environment with Python 3.7 or later
conda create -n <env_name> python=3.*
conda activate <env_name>
Clone repository
git clone https://github.com/ravenprotocol/raven-distribution-framework.git
cd raven-distribution-framework
Install dependencies
For the stable build
sh setup_stable.sh
For the latest build
sh setup.sh
2. Configure Paths
Navigate to ravsock/config.py
and set the FTP_ENVIRON_DIR
variable to the bin
folder of your python virtual environment. For instance:
FTP_ENVIRON_DIR = "~/miniconda/envs/<env_name>/bin"
Note: Set ENCRYPTION = True
in the same file if a layer of homomorphic encryption needs to be added for Federated Analytics.
Set RDF_DATABASE_URI
in the same file.
RDF_DATABASE_URI = "sqlite:///rdf.db?check_same_thread=False"
3. Create the database
Create the database with tables required for the project.
python reset.py
4. Start Ravsock Server
Ravsock is a crucial component of RDF that facilitates both federated and distributed functionalities of the framework.
It sits between the developer(who creates ops and writes algorithms) and the contributor who contributes the idle computing power. Its scheduling algorithm oversees the distribution and statuses of different Ops, Graphs, and Subgraphs across multiple Clients.
python3 run_ravsock.py
How to run Federated Analytics?
Kindly visit FEDERATED ANALYTICS for more info on creating and working with custom Federated Ops.
How to run Distributed Computing?
Kindly visit DISTRIBUTED COMPUTING for more on creating graphs, initializing distributed clients in a web browser, and working with custom Ops to develop distributed ML algorithms.
Check out our repositories on Github.
Join our discord server to get updates on what comes next
Join us on Telegram