How to set up Raven Distribution Framework(RDF)?

Kailash Ahirwar
RavenProtocol
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 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

--

--

Kailash Ahirwar
RavenProtocol

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