How to set up Raven Distribution Framework(RDF)?

Kailash Ahirwar
Published in
2 min readFeb 15, 2022


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
cd raven-distribution-framework

Install dependencies

For the stable build


For the latest build


2. Configure Paths

Navigate to ravsock/ 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.


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.


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



Kailash Ahirwar

Artificial Intelligence Research | Author - Generative Adversarial Networks Projects | Co-founder - Raven Protocol | Mate Labs